web-dev-qa-db-ja.com

networkXとmatplotlibで巨大なグラフを描く

NetworkXとmatplotlibを使用して、約5Kノードのグラフを描画しています。 matplotlibのGTKウィンドウには、グラフをズームおよび視覚化するためのツールがあります。後で適切に視覚化するために拡大バージョンを保存する方法はありますか?

import matplotlib.pyplot as plt
import networkx as nx

pos=nx.spring_layout(G)   #G is my graph

nx.draw(G,pos,node_color='#A0CBE2',Edge_color='#BB0000',width=2,Edge_cmap=plt.cm.Blues,with_labels=True)
#plt.show()
plt.savefig("graph.png", dpi=500, facecolor='w', edgecolor='w',orientation='portrait', papertype=None, format=None,transparent=False, bbox_inches=None, pad_inches=0.1) 
18
Nihar Sarangi

2つの簡単なオプションがあります。

DPIを上げる

plt.savefig("graph.png", dpi=1000)

(画像ファイルサイズが大きい)

PDFとして保存

plt.savefig("graph.pdf")

最終的なグラフはラスタライズされないため、これが最適なオプションです。理論的には、無期限にズームインできるはずです。

29
Hooked

GTKにいない間は、 NetworkX Viewer をチェックアウトすることをお勧めします。

1
jsexauer

あなたはこれをチェックしたいかもしれません:

plt.savefig("name.svg")

品質は素晴らしいです。 dpiオプションはまだ有効ですが。

0