首页 > 解决方案 > Networkx 在图的边缘定位节点

问题描述

我对networkx图很陌生,所以对不起!我正在使用此代码创建加权网络图。哪个完美!但是,我想问是否有办法将所有节点的位置更改为图形的边缘(使用圆形布局),以便更清晰。关于我如何实现这一目标的任何想法?

标签: pythonmatplotlibnetworkx

解决方案


对于共享示例,这种布局对我来说似乎很好。然而,在 Networkx 中,您有多种布局可用于在图中定位节点。根据您的描述,您可能需要一个圆形布局 ( nx.circular_layout) 以使节点位于图的边缘

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

pos = nx.circular_layout(G)  # positions for all nodes
# nodes
nx.draw_networkx_nodes(G, pos, node_size=700)
# edges
nx.draw_networkx_edges(G, pos, edgelist=elarge, width=6)
nx.draw_networkx_edges(
    G, pos, edgelist=esmall, width=6, alpha=0.5, edge_color="b", style="dashed"
)
# labels
nx.draw_networkx_labels(G, pos, font_size=20, font_family="sans-serif")

plt.axis("off")
plt.show()

在此处输入图像描述


推荐阅读