Python: 获取所有节点的度数,然后在networkx中绘制箱线图

5

我有一个作业需要调用Networkx的函数获取所有节点的度,并绘制这些度的箱线图。

但是箱线图没有显示,出现以下错误:

"degree_values = list(my_degrees.values());

AttributeError: 'DegreeView' object has no attribute 'values'"

如何解决这个问题? 谢谢。

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_edges_from([['9606.EN01','9606.EN02'],['9606.EN01','9606.EN03']])

fig = plt.figure();
nx.draw(G, with_labels=True, font_weight='bold')
plt.draw()

my_degrees = G.degree();
degree_values = list(my_degrees.values());
fig = plt.figure();
plt.boxplot(degree_values)
1个回答

7

DegreeView 在 NetworkX 2.1 中不是一个字典,但它是一个在节点和度数对上的迭代器。

尝试使用以下方式定义 degree_values

degree_values = [v for k, v in my_degrees]

或者,如果 degree_values 的顺序不重要,你可以使用

degree_values = dict(my_degrees).values()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接