首页 > 解决方案 > 在networkx中绘制带有标签的可读图形

问题描述

我想在 networkx 中绘制一个带有 283 个节点和标签的图。我不知道是否有可能这样做,但我尝试使用以下代码:

def graph(list_edges,i):
    plt.figure(dpi=3000)    
    plt.tight_layout()
    plt.title('Siatka nr {}'.format(i))
    edges=list_edges
    G=nx.Graph()
    G.add_edges_from(edges)
    pos = nx.spring_layout(G)
    nx.draw(G,pos,edge_color='black',width=1,linewidths=1,\
        node_size=5,node_color='pink',alpha=0.9,\
        #labels={node:node for node in G.nodes()},\
        font_size=3)
    plt.savefig("plot__tr__{}.png".format(i), dpi=3000)

graph(edges,0)

我试过玩 dpi,但我没有帮助。使用注释掉的标签,我得到:在此处输入图像描述

是否有可能强制更好地分布节点并在一张图像上添加标签并保持可读性?或者也许有一个选项可以部分地绘制整个图像(这对我的情况也有帮助)?

标签: pythonmatplotlibnetworkx

解决方案


嘿,我不确定如何部分地绘制整个图像或如何获得更好的节点分布;如果您想为节点添加标签,这应该可以解决您的问题: -with_labels=True在绘制网络时添加为参数。希望这可以帮助。

例如

nx.draw(G, with_labels=True)

推荐阅读