首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枕木:无框、无轴、无内容的无花果

枕木:无框、无轴、无内容的无花果
EN

Stack Overflow用户
提问于 2011-11-21 21:13:47
回答 12查看 113.5K关注 0票数 108

在numpy/scipy中,我将图像存储在数组中。我可以显示它,我想保存它使用savefig没有任何边框,轴,标签,标题,.只是纯粹的形象,没有别的。

我想避免像PyPNGscipy.misc.imsave这样的软件包,它们有时是有问题的(它们并不总是安装得很好,只对我来说是基本的savefig() )

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-11-21 21:38:21

编辑

aspect='normal更改为aspect='auto',因为这在matplotlib的最新版本中发生了变化(多亏了@Luke19 19)。

假设:

代码语言:javascript
复制
import matplotlib.pyplot as plt

在没有框架的情况下制作一个图形:

代码语言:javascript
复制
fig = plt.figure(frameon=False)
fig.set_size_inches(w,h)

使内容填充整个数字

代码语言:javascript
复制
ax = plt.Axes(fig, [0., 0., 1., 1.])
ax.set_axis_off()
fig.add_axes(ax)

然后在上面画你的图像:

代码语言:javascript
复制
ax.imshow(your_image, aspect='auto')
fig.savefig(fname, dpi)

aspect参数更改像素大小,以确保它们填充fig.set_size_inches(…)中指定的图形大小。要了解如何处理这类事情,请阅读matplotlib文档,特别是关于轴、轴和艺术家的主题。

票数 133
EN

Stack Overflow用户

发布于 2012-12-04 16:51:23

一个更容易的解决办法似乎是:

代码语言:javascript
复制
fig.savefig('out.png', bbox_inches='tight', pad_inches=0)
票数 97
EN

Stack Overflow用户

发布于 2011-11-21 22:06:00

您可以在轴内找到图像的bbox (使用get_window_extent),并使用bbox_inches参数只保存图像的这一部分:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

data=np.arange(9).reshape((3,3))
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
plt.axis('off')
plt.imshow(data)

extent = ax.get_window_extent().transformed(fig.dpi_scale_trans.inverted())
plt.savefig('/tmp/test.png', bbox_inches=extent)

我从乔·金顿( Joe 这里 )那里学到了这个技巧。

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

https://stackoverflow.com/questions/8218608

复制
相关文章

相似问题

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