我在使用 Matplotlib 1.0.1 时遇到问题
我创建了一个图形,当我单击该图形时,我使用 onclick 事件来执行操作。一件事是,它必须创建一个包含新数据的新图形。这在我开发脚本的 Matplotlib 0.99.3 中完美运行,但现在一位同事在他的机器上尝试了它,该机器有 matplotlib 1.0.1(和 python 2.6 而不是 2.7),并且该图未显示。
但是,我认为该图已创建,但未显示,因为如果我关闭第一个图,脚本并未结束,它仍在运行。
这是一个简单的示例代码:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
a = [1,2,3]
b = [4,2,9]
line = ax.plot(a,b)
def onclick(event):
print "clicked"
a = [7,8,9]
b = [1,9,20]
fig2 = plt.figure()
ax_single = fig2.add_subplot(111)
line2 = ax_single.plot(a,b)
cid = fig.canvas.mpl_connect('button_press_event',onclick)
plt.show()
这是 matplotlib 1.0.1 中的一个(已知)错误吗?有什么办法可以解决吗?
谢谢。
最佳答案
添加一个简单的Fig2.show()对我来说就成功了。阅读How-to获取更多信息!
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
a = [1,2,3]
b = [4,2,9]
line = ax.plot(a,b)
def onclick(event):
print "clicked"
a = [7,8,9]
b = [1,9,20]
fig2 = plt.figure()
ax_single = fig2.add_subplot(111)
line2 = ax_single.plot(a,b)
fig2.show()
cid = fig.canvas.mpl_connect('button_press_event',onclick)
plt.show()
在 1.0.0 中,matplotlib 在主循环启动后处理图形的方式确实发生了变化。
关于Python/Matplotlib 1.0.1 单击时不会打开新图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9430483/