我有一个作业需要调用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)
最佳答案
DegreeView
不是字典(在 NetworkX 2.1 中),但它是(节点,度数)对的迭代器。
尝试定义 degree_values
使用degree_values = [v for k, v in my_degrees]
或者,如果 degree_values
的顺序没关系,你可以用degree_values = dict(my_degrees).values()
关于Python:获取所有节点的度数,然后在networkx中绘制boxplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49167874/