Python Matplotlib - 使用 Imsave 施加形状尺寸 [英] Python Matplotlib - Impose shape dimensions with Imsave

查看:140
本文介绍了Python Matplotlib - 使用 Imsave 施加形状尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了制作视频,我用 matplotlib 绘制了大量图片,但是当我尝试制作视频时,我看到图片的形状在时间上不一样......它会导致一些错误.使用Imsave时是否有命令强加输出的形状?

I plot a great number of pictures with matplotlib in order to make video with it but when i try to make the video i saw the shape of the pictures is not the same in time...It induces some errors. Is there a command to impose the shape of the output when i use Imsave?

您可以看到我的代码的一部分:

You can see a part of my code :

plt.close()
fig, axes = plt.subplots(nrows=2, ncols=3)

###Figures composante X
plt.tight_layout(pad=0.05, w_pad=0.001, h_pad=2.0)
ax1 = plt.subplot(231) # creates first axis
ax1.set_xticks([0,2000,500,1000,1500])
ax1.set_yticks([0,2000,500,1000,1500])
ax1.tick_params(labelsize=8) 
i1 = ax1.imshow(U,cmap='hot',extent=(X.min(),2000,Y.min(),2000), vmin=U.min(), vmax=U.max())
cb1=plt.colorbar(i1,ax=ax1,ticks=[U.min(),(U.min()+U.max())/2., U.max()],fraction=0.046, pad=0.04,format='%.2f')
cb1.ax.tick_params(labelsize=8)

ax1.set_title("$ \mathrm{Ux_{mes} \/ (pix)}$", y=1.05, fontsize=12)
ax2 = plt.subplot(232) # creates second axis
ax2.set_xticks([0,2000,500,1000,1500])
ax2.set_yticks([0,2000,500,1000,1500])
i2=ax2.imshow(UU,cmap='hot',extent=(X.min(),2000,Y.min(),2000), vmin=UU.min(), vmax=UU.max())
ax2.set_title("$\mathrm{Ux_{cal} \/ (pix)}$", y=1.05, fontsize=12)
ax2.set_xticklabels([])
ax2.set_yticklabels([])
cb2=plt.colorbar(i2,ax=ax2,fraction=0.046, pad=0.04,ticks=[UU.min(),(UU.min()+UU.max())/2.,UU.max()],format='%.2f')
cb2.ax.tick_params(labelsize=8)

ax3 = plt.subplot(233) # creates first axis
ax3.set_xticks([0,2000,500,1000,1500])
ax3.set_yticks([0,2000,500,1000,1500])
i3 = ax3.imshow(resU,cmap='hot',extent=(X.min(),2000,Y.min(),2000),vmin=0.,vmax=0.1)
ax3.imshow(scipy.ndimage.filters.gaussian_filter(masquey2, 3),cmap='hot',alpha=0.2,extent=(X.min(),2000,Y.min(),2000))
ax3.set_title("$\mathrm{\mid \/ Ux_{mes} - Ux_{cal}\mid \/ (pix)}$ ", y=1.05, fontsize=12)
cb3=plt.colorbar(i3,ax=ax3,fraction=0.046, pad=0.04,ticks=[0.,0.1],format='%.2f')
ax3.set_xticklabels([])
ax3.set_yticklabels([])
cb3.ax.tick_params(labelsize=8)
plt.gcf().tight_layout()

我使用"plt.gcf().tight_layout()"来获得不重叠的图形...

I m using "plt.gcf().tight_layout()" in order to have figures which dont superimpose...

推荐答案

如果要将数字保存到磁盘上的图像中,则可以执行以下操作来设置大小:

If you're saving figures out to images on disk, you can do something like this to set the size:

fig.set_size_inches(10, 15)
fig.savefig('image.png', dpi=100)

如果您只想以特定尺寸显示,可以尝试:

If you just want to display at a certain size you can try:

plt.figure(figsize=(1,1))

其中尺寸以英寸为单位设置.

Where the dimensions are set in inches.

以下是可以用图设置的参数的说明:http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure

Here is an explanation of parameters that can be set with Figures: http://matplotlib.org/api/figure_api.html#matplotlib.figure.Figure

这篇关于Python Matplotlib - 使用 Imsave 施加形状尺寸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆