【问题标题】:Showing the plot window more than once多次显示绘图窗口
【发布时间】:2013-03-30 23:43:00
【问题描述】:
import matplotlib
import pylab
x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y=[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
plotting=pylab.plot(x,y)
pylab.show(plotting)

上面的代码(特别是最后一行)会弹出下图:

如果我关闭图表窗口并再次运行最后一行 (>>>pylab.show(plotting)),图表将不会再次弹出。为什么呢? 上面的代码是在 Python 2.7.3 中运行的。

【问题讨论】:

  • 你关闭了第一个窗口吗?
  • @Ignato:是的,我在第一个窗口弹出后关闭它,并尝试使用 show() 函数再次显示它,但它不起作用。
  • Found this“对于 Matplotlib 1.0.1 之前的版本,show() 每个程序只能调用一次...”但是“对于 Matplotlib 版本 1.0.1+,show() 可以被多次调用”不是真的,我有 1.1.1 仍然不能调用它两次。
  • @Igonato 我认为这意味着“如果多次调用就不会爆炸”。我认为它曾经包含启动 GUI 主循环的代码。当您关闭 gui 窗口时,会有回调从 pyplot 用来跟踪其数字的结构中删除数字,因此如果 show 不知道要显示的任何数字,它将什么也不做。

标签: python matplotlib


【解决方案1】:

因为当您关闭窗口时,python 会撕下并删除图形。再次调用show 无济于事,因为没有图形可显示。

像您在这里所做的那样将争论传递给show 没有任何作用 (doc)。 show 采用的唯一参数是 block 的关键字参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    相关资源
    最近更新 更多