用networkx做网络关系可视化
创建图
第一步:图的声明
networkx有四种图 Graph 、DiGraph、MultiGraph、MultiDiGraph,分别为无多重边无向图、无多重边有向图、有多重边无向图、有多重边有向图。
import networkx as nx G = nx.Graph() G = nx.DiGraph() G = nx.MultiGraph() G = nx.MultiDiGraph()
第二步:添加节点和边
# 方法一-------------------------------------- G.add_node('a') # 添加点a G.add_node(1,1) # 用坐标来添加点 G.add_edge('x','y') # 添加边,起点为x,终点为y G.add_weight_edges_from([('x','y',1.0)]) # 第三个输入量为权值 # 方法二-------------------------------------- list = [[('a','b',5.0),('b','c',3.0),('a','c',1.0)] G.add_weight_edges_from([(list)]) # 方法三-------------------------------------- G = nx.from_pandas_edgelist(df_table, source = 'A', target = 'B', edge_attr = 'C', create_using = nx.DiGraph())
第三步:图的显示
import matplotlib import matplotlib.pyplot as plt nx.draw(G, pos = nx.random_layout(G), # pos 指的是布局,主要有spring_layout,random_layout,circle_layout,shell_layout node_color = 'b', # node_color指节点颜色,有rbykw,同理edge_color edge_color = 'r', with_labels = True, # with_labels指节点是否显示名字 font_size =18, # font_size表示字体大小,font_color表示字的颜色 node_size =20) # font_size表示字体大小,font_color表示字的颜色 plt.savefig("network.png") nx.write_gexf(G, 'network.gexf') # gexf格式文件可以导入gephi中进行分析 plt.show()
posted on 2020-10-06 10:35 Mint-Tremor 阅读(761) 评论(0) 编辑 收藏 举报