![](/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.