【问题标题】:Multiple figures in one script - matplotlib一个脚本中的多个图形 - matplotlib
【发布时间】:2013-03-07 10:50:08
【问题描述】:

我正在处理一项任务,其中需要在脚本运行时在屏幕上显示多个图形(并保存它们)。我必须同时使用 imshow 和 show 才能将图像显示在屏幕上。这很好用,但我读过 show() 每个脚本只能使用一次。还有另一种显示图像的方法吗?保存的图像文件也保存为空白 800x600 白色图像。这是我的代码:

img = np.zeros((100,100))
plt.figure(0)
plt.imshow(img)
plt.show()
plt.savefig("images/img.png")
plt.close(0)

每个其他图形都遵循相同的语法(显然具有不同的图像名称和新的图形编号。

谢谢!

【问题讨论】:

  • 我通过将 savefig 放在 show 命令之前解决了空白图像问题。仍然不确定这是编码我所追求的最有效的方法吗?
  • 关于效率:什么意思?一生中只有一次的代码尽可能快地运行对您来说很重要吗?一般来说,绘图应该在几秒钟内发生,如果它是一秒钟或五秒钟,它应该不重要。如果您认为自己有“效率”问题,请展示实际代码并描述您的观察结果。
  • 仍然不清楚您是否还有实际问题。
  • 我已经读过 show() 应该只在脚本的最后使用一次。有没有其他方法可以让图像多次显示在图中?还是我应该坚持“如果它没有坏,就不要修复它”?
  • 对您来说,这可能看起来并不明显,但代码示例应该很容易被其他人执行并重现问题。如果没有具体问题,那么至少包括您可能认为有问题的部分。现在好了。但是您可能会意识到,您来到这里时并不真正知道您的问题是什么。

标签: python image matplotlib figure


【解决方案1】:

一般来说,您使用figure() 为要在屏幕上显示的每个图形创建一个新图形对象并保存到文件的方法很好,如果这是您想听到的。

我不确定您在这方面的实际问题是什么,所以如果您还有其他想知道的问题,我会认真建议您编辑您的问题。

关于第二个问题:根据使用的后端,show()可能会破坏图中的对象(关闭时),这就是为什么您通常应该先savefig()然后再show()。这记录在here

【讨论】:

  • 谢谢,我已经更新了部分问题,使其更加具体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
  • 2014-10-06
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2017-06-11
  • 2019-04-19
相关资源
最近更新 更多