Python - 用图形循环保存 matplotlib
Python - Loop with figure to save matplotlib
我有大量数字想在循环的每个步骤中保存。其实是2个数字如下:
plt.subplots_adjust(hspace=0.5)
plt.subplot(121)
plt.imshow(U2[40,:,:],cmap=cm.hot);plt.colorbar()
plt.subplot(122)
plt.imshow(V2[60,:,:],cmap=cm.hot);plt.colorbar()
plt.show()
我的问题是如何通过在每一步更改名称来保存,例如 fig1、fig2?我可以使用 imsave 吗?
您可以将 plt.show() 替换为 plt.savefig() 并使用格式字符串(以确保数字用零填充到相同的长度)。使用 ffmpeg(或类似工具)从 png 文件制作视频时,这会让生活变得更加轻松。此外,值得添加一个微小的停顿以确保重新绘制图形。对于你的情况,这看起来像
plt.subplots_adjust(hspace=0.5)
plt.subplot(121)
plt.imshow(U2[40,:,:],cmap=cm.hot);plt.colorbar()
plt.subplot(122)
plt.imshow(V2[60,:,:],cmap=cm.hot);plt.colorbar()
plt.pause(0.0001)
plt.savefig('./U2V2.{0:07d}.png'.format(step))
其中step是当前步数。您还应该考虑为每个图形使用一个序列号(而不是步骤),每次生成一个图形时它只改变一个(再次使视频生成更容易)。
我有大量数字想在循环的每个步骤中保存。其实是2个数字如下:
plt.subplots_adjust(hspace=0.5)
plt.subplot(121)
plt.imshow(U2[40,:,:],cmap=cm.hot);plt.colorbar()
plt.subplot(122)
plt.imshow(V2[60,:,:],cmap=cm.hot);plt.colorbar()
plt.show()
我的问题是如何通过在每一步更改名称来保存,例如 fig1、fig2?我可以使用 imsave 吗?
您可以将 plt.show() 替换为 plt.savefig() 并使用格式字符串(以确保数字用零填充到相同的长度)。使用 ffmpeg(或类似工具)从 png 文件制作视频时,这会让生活变得更加轻松。此外,值得添加一个微小的停顿以确保重新绘制图形。对于你的情况,这看起来像
plt.subplots_adjust(hspace=0.5)
plt.subplot(121)
plt.imshow(U2[40,:,:],cmap=cm.hot);plt.colorbar()
plt.subplot(122)
plt.imshow(V2[60,:,:],cmap=cm.hot);plt.colorbar()
plt.pause(0.0001)
plt.savefig('./U2V2.{0:07d}.png'.format(step))
其中step是当前步数。您还应该考虑为每个图形使用一个序列号(而不是步骤),每次生成一个图形时它只改变一个(再次使视频生成更容易)。