【发布时间】:2018-06-22 21:27:57
【问题描述】:
我有一个包含这些节点的 csv 文件,每个节点都有相关的坐标,如下所示:
node x y
A1 67.8 15.53
A2 108.74 15.53
B1 67.8 25.33
B2 108.74 25.33
C1 67.8 30.22
C2 108.74 30.22
D1 67.8 37.99
D2 108.74 37.99
E1 67.8 43.84
对于这些节点中的每一个,我都有另一个带有边的文件,它表示每个连接节点之间的距离,如下所示:
node1 node2 distance
A1 A2 40.90
A1 B1 9.8
A2 B2 9.8
B1 A1 9.8
...
那么,我该怎么做才能将节点及其对应的边添加到同一个图中?
我试过了,但它不起作用:
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
import numpy
nodes = pd.read_csv('nodes.csv')
print nodes
G = nx.Graph()
for row in nodes.iterrows():
G.add_node(row[1][0], x=row[1][2],y=row[1][3])
edgelist = pd.read_csv('edges.csv')
print edgelist
for i, elrow in edgelist.iterrows():
G.add_edge(elrow.node1,elrow.node2,weight=elrow.distance)
G.nodes(data=True)
nx.draw(G)
plt.show()
我是 Python 新手,我需要将它作为我硕士论文代码的一部分。我使用的是 python 3.6,但我也安装了 2.7 版本。你能帮我完成这项工作吗?
【问题讨论】:
标签: python graph nodes networkx edges