如何更改节点大小和边缘权重 NetworkX?

Posted

技术标签:

【中文标题】如何更改节点大小和边缘权重 NetworkX?【英文标题】:How to change Nodes Size and Edge weight NetworkX? 【发布时间】:2021-11-19 14:14:24 【问题描述】:

如何根据重量调整边缘厚度和节点大小?

import networkx as nx
import matplotlib.pyplot as plt


G_weighted = nx.Graph()
G_weighted.add_edge('abc','lifestyle', weight=5)
G_weighted.add_edge('abc','livestream', weight=3)
G_weighted.add_edge('abc','sony', weight=1)


plt.figure(figsize=(25,18))
nx.draw_networkx(G_weighted)

【问题讨论】:

【参考方案1】:

需要设置widthnode_size属性:

G_weighted.nodes['abc']['weight'] = 500
G_weighted.nodes['lifestyle']['weight'] = 900
G_weighted.nodes['livestream']['weight'] = 700
G_weighted.nodes['sony']['weight'] = 1100

plt.figure(figsize=(10,10))

edge_weight = list(nx.get_edge_attributes(G_weighted,'weight').values())
node_weight = list(nx.get_node_attributes(G_weighted,'weight').values())

nx.draw_networkx(G_weighted, width=edge_weight, node_size=node_weight)

figsize 的大参数自动缩放图形显示以适应屏幕的节点,因此我减少了它们以保持节点和边缘的自然大小。

【讨论】:

以上是关于如何更改节点大小和边缘权重 NetworkX?的主要内容,如果未能解决你的问题,请参考以下文章

添加边缘权重以在 networkx 中绘制输出

使用networkx在两个节点之间绘制多条边

python—networkx:依据图的权重绘图

Python networkx:边缘收缩

标记外部节点,与networkx中的其他节点/边缘重叠最小

NetworkX DiGraph 边缘具有基于其初始节点的特定