gpt4 book ai didi

python - Matplotlib 监视器 - 每 X 秒绘制表中的值

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:49 25 4
gpt4 key购买 nike

我是 python 和 matplotlib 新手,需要一些指导。我正在尝试编写一个查询表并绘制结果的监视器。从表中我可以提取一个我想用于 X 轴的时间戳和一个我想用于 Y 值(发送的数据包数量)的秒数。我不确定动画函数的“i”在哪里填充。我的情节出现了,但内容是空的。我不确定 ax.set_xlim 应该设置为什么,最后如何让日期/时间戳显示在 x 轴上?我正在尝试修改以下示例:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

fig = plt.figure()
ax = plt.axes(ylim=(0, 45))
line, = ax.plot([], [], lw=5)

def init():
line.set_data([], [])
return line,

def animate(i):
x,y,dk=getData()
line.set_data(x, y)
return line,

def Execute():
#anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=200, blit=True)
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=2000)
plt.show()
return(anim)

def getDataSql(sql):
... run sql
return(rl)

def getData():
...format return for getDataSql
...return X ex(2013-04-12 18:18:24) and Y ex(7.357) (both are lists)
return(X,Y,xy)

x=Execute()

最佳答案

def Execute():
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=200, interval=2000, blit=True)
plt.show()
return anim

anim = Execute()

如果您不返回其中的 anim 对象(其中包含所有计时器等),则当 Execute 返回时,它会被垃圾收集,从而删除所有这些对象,因此您的动画不会运行。

您也可以使用 blit=False 进行测试,它有点慢(这不是问题,因为您每 2 秒更新一次),但正确工作要稍微不那么挑剔.

也试试

ax.get_xaxis().set_major_locator(matplotlib.dates.AutoDateLocator())
ax.get_xaxis().set_major_formatter(matplotlib.dates.AutoDateFormatter())

在运行任何操作之前。

关于python - Matplotlib 监视器 - 每 X 秒绘制表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com