【发布时间】:2017-10-10 01:57:09
【问题描述】:
我是 matplotlib 的新手,我试图显示我通过函数 read_API() 从 api 下载的三个变量的最后一小时数据的实时图。数据位于带有 DateTimeIndex 的 pandas 数据框中。
例如:
In: dframe.head()
Out:
A B C
timestamp
2017-05-11 16:21:55 0.724931 0.361333 0.517720
2017-05-11 16:22:25 0.725386 0.360833 0.518632
2017-05-11 16:22:55 0.725057 0.361333 0.521157
2017-05-11 16:23:25 0.724402 0.362133 0.520002
简化代码为:
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
while True:
dframe = read_API()
dframe['timestamp'] = dframe['timestamp'] + pd.DateOffset(hours=timezone)
dframe = dframe.set_index('timestamp')
end = dframe.index.max()
start= end.to_datetime() - dt.timedelta(hours=1)
dframe = dframe.loc[start:end]
plt.ion()
fig, ax = plt.subplots()
plt.pause(0.0001)
ax.plot_date(dframe.index.to_pydatetime(), dframe,marker='', linestyle='solid')
plt.draw()
它每隔几秒就会生成更新的图,但是: 1)每个情节出现在一个新窗口中(称为图1,图2,图3.....)。我想要一个带有情节覆盖前一个窗口的窗口 2)当每个情节出现时,它是空白的。然后出现另一个空白,然后出现另一个,然后第一个完成,依此类推。实际的绘图滞后了大约 3 个数字...... 我对情节和子情节的区别有点困惑,认为问题可能与此有关。
【问题讨论】:
标签: python pandas animation matplotlib real-time-updates