hko*_*hko 4 python ide plot matplotlib show
我是python的新手,只是安装了pyCharm并尝试运行给出以下问题的测试示例:如何在matplotlib中更新绘图?
本示例更新该图以动画化正弦信号。代替重新绘制,它更新了绘图对象的数据。它可以在命令行中运行,但是在PyCharm中运行时该图不会显示。plt.show(block=True)在脚本的末尾添加会弹出该图,但是这次不会更新。
有任何想法吗?
链接问题中的更新基于该图嵌入在 tkinter 应用程序中的假设,但此处的情况并非如此。
对于作为独立窗口的更新绘图,您需要打开交互模式,即plt.ion()。在 PyCharm 中,默认情况下应启用此功能。
要以交互模式显示该图,您需要绘制它,plt.draw()。为了让它保持响应,您需要添加一个暂停,plt.pause(0.02). 如果您想在循环完成后保持其打开状态,则需要关闭交互模式并显示该图。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 6*np.pi, 100)
y = np.sin(x)
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'r-')
plt.draw()
for phase in np.linspace(0, 10*np.pi, 500):
line1.set_ydata(np.sin(x + phase))
plt.draw()
plt.pause(0.02)
plt.ioff()
plt.show()
Run Code Online (Sandbox Code Playgroud)
正如ImportanceOfBeingErnest在另一个问题中指出的那样,在某些系统上,至关重要的是将这两行添加到OP示例中的代码开头:
import matplotlib
matplotlib.use("TkAgg")
Run Code Online (Sandbox Code Playgroud)
这可能会导致呼叫plt.ion并且plt.ioff不必要。该代码现在可以在我的系统上运行而无需它们。