我阅读了很多有关该主题的堆栈溢出问题,但经过大量实验后我无法弄清楚我的问题。
我在 Windows 7 上使用 PyCharm 2016.3.2(但在 OSX 上也有同样的问题),我的解释器是带有 Python 3.6 和 matplotlib 2.0.0 的 Anaconda 的最新版本。
这是我试图实现的目标(也许我没有使用正确的方法,因为我试图重新创建我在 Octave/Matlab 中习惯的行为):
- 在弹出窗口中绘制一个图形
- 暂停我的脚本(输入(“按某个键继续”))
- 观察图形,然后按某个键继续脚本
- 计算其他东西
- 在同一图上绘制新数据
- 暂停我的脚本(输入(“按某个键继续”))
- 观察图形,然后按某个键继续脚本
这是我的测试代码:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
print('Plotting Data...')
plt.ion()
plt.figure(1)
plt.plot([1, 5, 10, 20], [1, 5, 10, 20])
plt.xlabel('x label')
plt.ylabel('y label')
plt.show()
plt.pause(0.0001)
input('Plotting Data done..., Press a key to continue')
plt.figure(1)
plt.plot([1, 5, 10, 20], [2, 10, 20, 40])
plt.show()
plt.pause(0.0001)
input('Program paused. Press enter to end.\n')
这是我想要的最接近的版本,绘图是正确的,但当我将鼠标悬停在它们上方时没有响应(plt.pause(0.0001)生成警告但代码有效)。
我经常使用参数(plt.ion() ; plt.pause() ; plt.show(block=False))。
大多数时候,这会导致绘图窗口为空,或者我需要关闭窗口才能继续执行。
感谢您的帮助 !