【发布时间】: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