更新 python\\’s matplotlib 中的绘图

Updating a plot in python's matplotlib

我正在尝试在 matplotlib 中绘制流数据。我可以使用交互模式和 set_ydata 函数更新绘图。它动画并且一切看起来都很好,直到循环结束。然后 python 内核崩溃,我收到以下消息:

C:\\Conda\\lib\\site-packages\\matplotlib\\backend_bases.py:2437:
MatplotlibDeprecationWarning: Using default event loop until function specific to
this GUI is implemented
warnings.warn(str, mplDeprecation)

这是代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 10, 0.1)
y = np.sin(x)

plt.ion() #interactive mode on
ax = plt.gca()
line, = ax.plot(x,y)
ax.set_ylim([-5,5])

for i in np.arange(100):
    line.set_ydata(y)
    plt.draw()
    y = y*1.01
    plt.pause(0.1)

谁能告诉我为什么会崩溃而不是退出循环?我正在使用 Python 3 在 Jupyter 中执行此操作。当然,如果有更好的方法来执行此操作,我很想听听。谢谢!

这段代码改编自 How to update a plot in matplotlib?


python 3.4 中的 Jupyter 笔记本中的 mac_osx backend 对我来说效果很好。

也许您想在末尾添加 plt.close() 以保持整洁并防止挂断?