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中绘制箱线图的主要内容,如果未能解决你的问题,请参考以下文章

每个节点都限定度数的最大生成树怎么求?求代码和详解

牛牛种小树

二叉树的链式存储

agc032_c

CodeForces 723E One-Way Reform

已知树中非叶子节点的度数和数量,如何计算树中叶子节点的个数?