微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NetworkX 中大图的可视化问题

如何解决NetworkX 中大图的可视化问题

我有一个有 47 个节点和 90 个加权边的无向图。我想得到这个图的图像,但我得到了一些奇怪的东西[1]:节点在彼此之上。我想修复它,但我不知道如何。绘制代码如下:

import networkx as nx
import matplotlib.pyplot as plt
import pylab


def show_graph(G):
    pos = nx.spring_layout(G)
    nx.draw(G,pos,node_color='#A0CBE2',edge_color='#BB0000',width=2,edge_cmap=plt.cm.Blues,with_labels=True)
    plt.savefig("graph.png",dpi=1000)
    # 2 way
    # nx.draw(G,with_labels=True)
    # plt.draw()
    # plt.show()


f = open("europe.txt")
G = nx.Graph()
lines = f.readlines()
edges = list()
for line in lines:
    tmp = line.split(',')
    tmp[2] = int(tmp[2])
    edges.append(tmp)
G.add_weighted_edges_from(edges)
show_graph(G)

图片 [1]:https://i.stack.imgur.com/B5Slx.png

解决方法

我的解决方案是:

import networkx as nx
import matplotlib.pyplot as plt

和函数

def show_graph(G):
    plt.subplot(111)
    nx.draw(G,pos=nx.planar_layout(G),node_color='r',edge_color='b',with_labels=True)
    plt.show()

平面布局适合我的情况

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。