我正在尝试一个代码来绘制一个实时图,但我总是得到一个空图。下面是我的代码:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
import random
style.use('fivethirtyeight')
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
def animate(i):
y = random.randint(0,100) # generate random data
x = i # set x as iteration number
ax1.clear()
ax1.plot(x, y, 'ro')
ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()
我收到警告,但我正在使用plt.show()显示动画。不确定我做错了什么:
UserWarning: Animation was deleted without rendering anything. This is most likely not intended. To prevent deletion, assign the Animation to a variable, e.g. `anim`, that exists until you have outputted the Animation using `plt.show()` or `anim.save()`.
warnings.warn(
1条答案
按热度按时间46scxncf1#
问题似乎出在Spyder使用的绘图后端。默认情况下,Spyder使用的后端不支持动画。
您可以尝试在终端中运行独立脚本中的代码,而不是在Spyder中运行。您也可以尝试使用其他绘图后端,如Qt5Agg或TkAgg。您可以使用以下代码行更改后端:
这应该可以解决问题,并在绘图窗口中显示实时图形。