NetworkX - 如何更改节点的形状?

Dav*_*idK 4 python shapes networkx

我知道我们可以从中选择形状so^>v<dph8.

有没有办法修改节点的形状,使其包含节点的名称?

我对自定义形状(或者可以具有适合其包含的文本的大小)感兴趣.

Yur*_*let 7

我可以建议在标签周围有一个 bbox,而不是改变节点的形状。在这种情况下,节点将在框中“包含名称”,要实现这一点,您需要将 bbox 参数指定为字典

nx.draw(G, pos=pos, with_labels=True,  node_shape="s",  node_color="none", bbox=dict(facecolor="skyblue", edgecolor='black', boxstyle='round,pad=0.2'))
Run Code Online (Sandbox Code Playgroud)

您也可以考虑在此处查看解决方案


Kik*_*ohs 6

您可以使用以下代码绘制节点及其标签:

nx.draw_networkx_nodes(G, pos, node_size=600, node_color='w', alpha=0.4, node_shape='d')
nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif')
Run Code Online (Sandbox Code Playgroud)

有关完整示例,您可以在此处查看 networkx库的代码.

编辑:要使节点内的名称适合,您必须使用节点大小和字体大小.

证明:

例

  • 是否可以为每个节点指定一个形状? (3认同)