Python:获取所有节点的度数,然后在networkx中绘制箱线图
Posted
技术标签:
【中文标题】Python:获取所有节点的度数,然后在networkx中绘制箱线图【英文标题】:Python: get the degree of all nodes, then draw a boxplot in networkx 【发布时间】:2018-08-16 11:56:05 【问题描述】:我有一个作业需要调用Networkx的函数来获取所有节点的度数,然后为这些度数绘制一个箱线图。
但是箱线图没有显示,下面有错误:
"degree_values = list(my_degrees.values());
AttributeError: 'DegreeView' 对象没有属性 '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】: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中绘制箱线图的主要内容,如果未能解决你的问题,请参考以下文章