【发布时间】:2014-06-05 14:16:28
【问题描述】:
我运行了以下脚本:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edge(1, 1, weight=2)
G.add_edge(1, 3, weight=2)
G.add_edge(1, 4, weight=1)
G.add_edge(1, 5, weight=5)
G.add_edge(2, 3, weight=3)
G.add_edge(2, 4, weight=2)
G.add_edge(3, 5, weight=4)
d = G.degree(1)
print G.edge[1]
print "Degree of node 1:", \
G.degree(1)
print "Weighted degree of node 1:", \
G.degree(1, weight='weight')
nx.draw(G)
plt.show()
输出是:
{1: {'weight': 2}, 3: {'weight': 2}, 4: {'weight': 1}, 5: {'weight': 5}}
Weighted degree: 5
Weighted degree: 12
而绘图是这样的:
让我感到困惑的是:
既然节点1(包括自身)有4个节点,为什么度数是5?
既然节点1的相邻边的总权重是10(2+2+1+5),那么度数法为什么会产生12?
谢谢
【问题讨论】:
-
可能的解释:您的代码包含
2数字节点。这也是为什么您的总重量比预期大 2 的原因 -
@sshashank124 你好,我试过删除node2,问题依然存在。
标签: python python-2.7 graph networkx