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

时间:2015-05-20 08:45:17

标签: python networkx shapes

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

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

我对自定义形状感兴趣(或者它的大小可以适应它所包含的文本)。

2 个答案:

答案 0 :(得分: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')

有关完整示例,您可以查看networkx图库代码here

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

证明:

example

答案 1 :(得分:3)

我建议在标签周围放置一个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'))

您还可以考虑查看解决方案here