当前位置: 首页 > 知识库问答 >
问题:

matplotlib savefig图像大小,带bbox_英寸class='tight'

卢作人
2023-03-14

我必须做一个矢量图,我只想看到没有轴、标题等的矢量,所以我试着这样做:

pyplot.figure(None, figsize=(10, 16), dpi=100)
pyplot.quiver(data['x'], data['y'], data['u'], data['v'], 
              pivot='tail', 
              units='dots', 
              scale=0.2,
              color='black')

pyplot.autoscale(tight=True)
pyplot.axis('off')
ax = pyplot.gca()
ax.xaxis.set_major_locator(pylab.NullLocator())
ax.yaxis.set_major_locator(pylab.NullLocator())
pyplot.savefig("test.png", 
               bbox_inches='tight', 
               transparent=True,
               pad_inches=0)

尽管我努力得到一个1000乘1600的图像,但我得到了一个775乘1280的图像。我如何使它成为所需的大小?谢谢你。

更新所提供的解决方案是可行的,但在我的情况下,我还必须手动设置轴限制。否则,matplotlib无法找到“紧密”边界框。

共有1个答案

韩宏朗
2023-03-14
import matplotlib.pyplot as plt
import numpy as np

sin, cos = np.sin, np.cos

fig = plt.figure(frameon = False)
fig.set_size_inches(5, 8)
ax = plt.Axes(fig, [0., 0., 1., 1.], )
ax.set_axis_off()
fig.add_axes(ax)

x = np.linspace(-4, 4, 20)
y = np.linspace(-4, 4, 20)
X, Y = np.meshgrid(x, y)
deg = np.arctan(Y**3-3*Y-X)
plt.quiver(X, Y, cos(deg), sin(deg), pivot='tail', units='dots', color='red')
plt.savefig('/tmp/test.png', dpi=200)

产量

您可以通过将图形设置为5x8英寸来生成1000x1600像素的图像

fig.set_size_inches(5, 8)

并用DPI=200保存:

plt.savefig('/tmp/test.png', dpi=200)

删除边界的代码是从这里获取的。

(由于1000x1600相当大,上面发布的图像无法缩放)。

 类似资料:
  • 问题内容: 我有一个固定的宽度和高度来调整图像大小。但是,我对此有一个问题,因为图像可以具有任何类型的尺寸比(可以是 垂直 或 水平 )。在这种情况下,固定的宽度和高度会引起问题。我想以更智能的方式计算 宽度和高度 。 例如,假设我定义了 width 1024px和height 768px 。我想调整垂直图像的尺寸 (高度1100px和宽度200px) 。因此,在我的情况下,它将调整为固定 大小(

  • 问题内容: 作为Web应用程序的一部分,一旦将图像下载并呈现在网页上,我需要确定浏览器上下文中图像的文件大小(kb)和分辨率(例如,我可以在页面上显示该信息)显然,这需要在客户端完成,必须能够在没有ActiveX控件或Java小程序(IE7 +,FF3 +,Safari 3 +,IE6不错)的情况下解决x浏览器,尽管它不必每个浏览器都是相同的解决方案。 理想情况下,这可以使用系统Javascrip

  • 我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?

  • 我想按英寸计算设备大小。我使用的是每次搜索都会出现的代码。但问题是,当我把设备放在4.5英寸时,我在android studio中的答案是4英寸。我尝试了5.2英寸的设备,得到了4.3英寸和10.1英寸-

  • 问题内容: 我在这里使用Go调整大小包:https://github.com/nfnt/resize 我正在从S3中提取图像,如下所示: // this gives me data []byte 之后,我需要调整图像大小: // problem is that the original_image has to be of type image.Image 将图像上传到我的S3存储桶 // pro

  • 我使用theme而不是layout来显示初始屏幕,但我不知道为不同的屏幕密度设置什么样的分辨率图像,因为标记的width和height属性可用API>22。 风格