1.Networkx是什么?
简单说一下,Networkx是一个构建网络和图的工具包,可以求解最短路问题,也可以求最大流,还可以专门用来画精美的网络图。这里我主要讲下Networkx构建图时,怎么用csv文件导入数据构建有权重的图。
2.构建一个图
from __future__ import print_function
import networkx as nx
import matplotlib.pyplot as plt
import csv
# 定义一个图
G = nx.Graph()
# 将边转换为元组!(u,v,w)均为数字,csv文件为三列,两列为起点和终点,第三列为权重。
f = open('文件路径.csv', 'r')
csv_reader = csv.reader(f)
font_weight = tuple(csv_reader)
# 将权重添加到边上
G.add_weighted_edges_from(font_weight)
# 另一种添加权重的方式
G = nx.read_weighted_edgelist('E:/Python-code/node_weight.edgelist')
其中node_weight.edgelist文件为
1 2 0.6
1 3 0.2
3 4 0.1
3 5 0.7
3 6 0.9
1 4 0.3
第一列为start,第二列为end,第三列为两点之间距离weight。
3.绘制一个图
# 画图,spring_layout是个布局方式,node_size是节点大小,with_lable是否显示图的标签。
nx.draw(G, pos=nx.spring_layout(G), node_size=80, with_labels=True, color='black&#