【发布时间】:2022-10-24 11:34:49
【问题描述】:
student_id 0 1 2 3 4 5 6 7 8 9 10 11 12
0 131X1319 1 14 6 16 1 10 8 15 15 17 15 18 16
1 13212YX3 1 1 4 8 11 9 14 7 0 3 0 17 13
2 13216131 1 1 13 9 15 17 0 9 3 15 11 8 10
3 132921W6 1 14 10 4 18 7 8 15 15 17 15 18 16
我有一个这样的数据框。我想用networkX制作一个图表。而且我想让边缘每次从一个节点到另一个节点时变厚。认为,15->15->17->15->18->16
在数据框中出现两次。所以,我想将厚度增加到两个。我制作了普通图,但无法增加图的厚度。
这是我创建普通图的代码:
columns=list(pattern_df.columns.values)
pattern_g = nx.empty_graph(0, nx.DiGraph())
for i in range(len(columns)-1):
pattern_g.add_edges_from(zip(pattern_df[columns[i]],
pattern_df[columns[i+1]]))
sum_val=pattern_df.sum(numeric_only=True, axis=0)
values = [sum_val.get(node, 0.25) for node in pattern_g.nodes()]
nx.draw(pattern_g, with_labels=True, font_color='black')
plt.show()
这是我为样本数据生成的图表:
【问题讨论】:
-
请提供足够的代码,以便其他人可以更好地理解或重现该问题。
-
你是指绘图时的线条粗细吗?
-
是的。我想增加从一个节点到另一个节点的厚度。
-
你能修复你发布的代码的缩进吗?
-
对不起。修复了缩进
标签: python pandas graph networkx data-analysis