Matplotlib python动画不显示行



绘图窗口显示,但没有出现,我得到这个ValueError: x和y必须具有相同的第一个维度

import psutil
import matplotlib.pyplot as plt
import matplotlib.animation as animation
a = [i for i in range(1000)]
ram_avaliable = []
fig, ax = plt.subplots()
def update(n):
    ram = psutil.virtual_memory()
    ram_avaliable.append(float(ram[1])/1073741824)
    print (a[n],ram_avaliable[n])
    ax.plot(a[n],ram_avaliable[n])
ani = animation.FuncAnimation(fig,update,interval=100)
plt.show()

您的代码张贴运行没有错误为我。我唯一需要做的改变就是在plot命令中添加一个标记样式。

这是因为当您调用plot时,您正在绘制新行。它之前没有出现的原因是因为默认的线条样式是将点与线连接起来——因为每条绘制的线只有一个点,所以没有什么可以连接的。将标记样式更改为显示点的样式可以修复此问题,例如

ax.plot(a[n],ram_avaliable[n], 'ro')

将点绘制在红色圆圈中。

最新更新