+-

Drawing a huge graph with networkX and matplotlib
我实质上是在考虑链接的问题.我认为我可以更好地解释这个问题.在大图上调用mathplotlib.show()时,默认值为缩小的群集输出.我想要的最终状态是使用mathplotlib.savefig()保存该图以在报告中使用.但是,savefig()输出过于缩小,过于笼统.更改图像尺寸或dpi不能解决此问题.仅使缩小的图像更大.有没有一种方法可以放大图形并保存而不使用UI?使用UI,我可以放大,展开节点并围绕所讨论的节点居中,但是我不知道如何自动执行此操作.
相关代码:
nx.draw(G,pos,node_color=colorvalues, with_labels = False,node_size=values)
fig.set_size_inches(11,8.5)
if show ==0:
plt.show()
if show ==1:
plt.savefig(name+" coremem.png",bbox_inches=0,orientation='landscape',pad_inches=0.1)
最佳答案
您可以使用ax.set_xlim和ax.set_ylim来设置绘图的x和y范围.例如,
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
filename = '/tmp/graph.png'
G = nx.complete_graph(10)
pos = nx.spring_layout(G)
xy = np.row_stack([point for key, point in pos.iteritems()])
x, y = np.median(xy, axis=0)
fig, ax = plt.subplots()
nx.draw(G, pos, with_labels=False, node_size=1)
ax.set_xlim(x-0.25, x+0.25)
ax.set_ylim(y-0.25, y+0.25)
plt.savefig(filename, bbox_inches=0, orientation='landscape', pad_inches=0.1)
要找出原始限制(在调用ax.set_xlim和ax.set_ylim之前),请使用
>>> ax.get_xlim()
(-0.20000000000000001, 1.2000000000000002)
ax.get_ylim()
(-0.20000000000000001, 1.2000000000000002)
点击查看更多相关文章
转载注明原文:放大图中的Matplotlib savefig() - 乐贴网