Python/Matplotlib 1.0.1 单击时不会打开新图形

标签 python matplotlib

我在使用 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/

相关文章:

python - 为什么 matplotlib 不能在不同的线程中绘图?

matplotlib - Matplotlib 中的线段

python解码部分utf-8字节数组

python - 你如何在 Mac 上收听来自 iTunes 的通知(使用 NSDistributedNotificationCenter)

python - 表函数不在 shell 中打印

python - Django已安装但python3找不到

python - 如何按子列表的反向长度对嵌套列表进行排序并保持原始顺序

python - Matplotlib:与 plt.savefig() 和手动保存不同的 View

python - 如何在 python 的 Axes3D 中使用循环绘制图例?

python - 如何使用循环为子图添加标题?