使用networkX和matplotlib绘制一个巨大的图形

Nih*_*ngi 18 python graph matplotlib networkx

我正在使用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) 
Run Code Online (Sandbox Code Playgroud)

Hoo*_*ked 29

你有两个简单的选择:

上传DPI

plt.savefig("graph.png", dpi=1000)
Run Code Online (Sandbox Code Playgroud)

(较大的图像文件大小)

另存为PDF

plt.savefig("graph.pdf")
Run Code Online (Sandbox Code Playgroud)

这是最佳选择,因为最终图形不是栅格化的.从理论上讲,你应该能够无限放大.

  • @NiharSarangi我觉得问题是"保存放大版本以便以后进行适当的可视化"_已被回答.如果图像很乱,你想自定义`networkx`,它可能是另一个问题的饲料.尝试在绘图命令中关闭标签`with_labels = True` - >`with_labels = False`来清理它. (3认同)