gpt4 book ai didi

matplotlib - 结合 PyQt 在 Matplotlib 中重新显示绘图

转载 作者:行者123 更新时间:2023-12-04 19:47:01 26 4
gpt4 key购买 nike

我有一个使用 PyQt 和 Matplotlib 编写的程序,我用它来显示恒星光谱。

程序有一个对话框,我可以用它来选择所需的光谱并调整 X/Y 比例和其他东西。

当在对话框中进行更改时,我让代码执行(使用 matplotlib.pylab imported s plt)

plt.clf()
(replot the newly-selected spectra)
plt.show()

这适用于旧版本的 Matplotlib (1.0.0)

然而,对于更高版本的 Matplotlib(我正在尝试 1.3.1),我得到了奇怪的结果。我第一次没问题,但随后的每次尝试都无法更新情节。我也收到很多消息:

QCoreApplication::exec: The event loop is already running

每次程序尝试调用上述代码并且绘图未更新时。

如果我将代码的最后一部分更改为 say

plt.show(False)

这会使消息消失,但情节仍未更新。

唯一能让情节更新的方法是改变

plt.clf()

plt.close()

但这看起来很糟糕,因为每次我选择不同的光谱时显示窗口都会关闭并重新打开。

有没有更好的方法来做这一切?

如果可以的话,我宁愿使用新版本的 Matplotlib,因为我还需要使用新版本的 Scipy,它有我正在使用的例程,而旧版本中没有。在大学里,我工作的软件版本要么是“旧的”,要么是“全新的”。

感谢您提供的任何帮助。

最佳答案

OP 的解决方案。

我愿意:

matplotlib.interactive(True)

并且不要为 show() 设置任何参数,它会按照我的要求进行操作。

关于matplotlib - 结合 PyQt 在 Matplotlib 中重新显示绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24824192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com