首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >放大图形上的Matplotlib savefig()

放大图形上的Matplotlib savefig()
EN

Stack Overflow用户
提问于 2013-07-04 02:53:05
回答 2查看 5.6K关注 0票数 4

Drawing a huge graph with networkX and matplotlib

我本质上是在重新考虑这个相关的问题。我想我可以更好地解释这个问题。在大型图形上调用mathplotlib.show()时,缺省值是缩小的集群输出。我想要的结束状态是使用mathplotlib.savefig()保存绘图,以便在报告中使用。但是,savefig()输出过于缩小,过于笼统。更改图像大小或dpi无法解决此问题。只会使缩小的图像变大。有没有一种方法可以在不使用UI的情况下放大图形并保存它?使用UI,我可以放大、展开节点,并围绕有问题的节点居中,但我不知道如何自动执行此操作。

相关代码:

代码语言:javascript
复制
    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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-04 03:20:10

可以使用ax.set_xlimax.set_ylim来设置绘图的xy范围。例如,

代码语言:javascript
复制
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_xlimax.set_ylim之前),请使用

代码语言:javascript
复制
>>> ax.get_xlim()
(-0.20000000000000001, 1.2000000000000002)

ax.get_ylim()
(-0.20000000000000001, 1.2000000000000002)
票数 3
EN

Stack Overflow用户

发布于 2013-07-04 03:19:46

据我所知,你不能缩放,但你可以设置轴。例如,如果您的原始图形在两个轴上从1到100,您可以通过编程使其仅从30到40,然后保存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17455959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档