![](/img/trans.png)
[英]How can I randomly permute the nodes of a graph with python in networkx?
[英]how can I visual a dense graph obviously in networkx python package?
我可以根据您的大小为您推荐几种改善图形可视化的方法。
如果您想可视化一个大图(> 1000个节点),则可以阅读另一个答案中的一些技巧。 在您的情况下,我建议您将图形导入到大型矢量图片中:
import networkx as nx import matplotlib.pyplot as plt fig = plt.figure(figsize=(40, 40)) G = nx.fast_gnp_random_graph(300, 0.02, seed=1337) nx.draw(G, node_size=30) plt.axis('equal') plt.show() fig.savefig('waka.svg')
如果您的图形相对较小(<1000个节点),则可以使用图形布局。
最适合您的图形布局是默认的spring_layout 。 它有k
参数来设置节点之间的最佳距离。 这是示例:
默认k值
import networkx as nx
import random
random.seed(1234)
G = nx.fast_gnp_random_graph(30, 0.4, seed=1337)
for i in range(20):
G.add_edge(i + 40, random.randint(1, 30))
G.add_edge(i + 40, random.randint(1, 30))
pos = nx.spring_layout(G, seed=4321)
nx.draw(G, pos=pos, node_size=30, node_color='red')
放大的k值
import networkx as nx
import random
random.seed(1234)
G = nx.fast_gnp_random_graph(30, 0.4, seed=1337)
for i in range(20):
G.add_edge(i + 40, random.randint(1, 30))
G.add_edge(i + 40, random.randint(1, 30))
pos = nx.spring_layout(G, seed=4321, k=2)
nx.draw(G, pos=pos, node_size=30, node_color='red')
如果需要高精度分析边缘,则可读性较低,但如果您更关心节点,则更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.