首先我的数据是.mat格式,讲讲如何用python读取.mat格式的数据(全套来)
我是python3版本
第一种读取方法:
import h5py
features_struct = h5py.File(r'C:\\Users\\Administrator\\Desktop\\xx\\MatlabProagramming\\co1p.mat')
出现了这个错误!!!最开始将.mat文件转换成.csv格式文件还好用,大家可以先试试这个方法
第二种方法:
import scipy.io
import pandas as pd
data = scipy.io.loadmat(r'C:\Users\Administrator\Desktop\xx\MatlabProagramming\co1.mat') # 读取mat文件(这个方法成功啦)(修改数据存储路径)
data1=list(data1.values())[-1]
dfdata = pd.DataFrame(data=data1)
datapath1 = 'C:\\Users\\Administrator\\Desktop\\c1.csv'#存储路径(需要修改此行代码)
dfdata.to_csv(datapath1, index=False)
第一步数据读取完毕
第二步需要了解networkx(附官网):https://networkx.org/documentation/stable/reference/introduction.html#drawing
绘图的一些函数:https://www.cnblogs.com/minglex/p/9205160.html
样式说明:https://www.cnblogs.com/gispathfinder/p/5790949.html
如果使用networkx库进行绘制网络,需要先在anaconda中pip install networkx就可以调用这个库中的函数进行绘制了
举一个例子
第二个例子:手动添加边及边的权重,可以直接调函数求点之间的最短路径长度
第三个例子:根据节点的度大小不同,显示不同深浅颜色的节点
以上代码是用python语言在pycharm或Jupyter Notebook环境下完成的,可以根据函数参数进行修改系数
总结一下networkx库绘制网络的缺点:
不能进行手动调节,函数样式较单一,如果绘制较大的网络图不方便
这是我根据我的数据绘制出的网络图,点及边较密集,不能进行手动拆分,需要手动添加点或边,痛点!!!
所以又另寻了一个较好的绘制复杂网络的工具,请参考下一篇博客内容。