我可以实现以下目标:
time
是x数组,value
是y数组。该窗口将保持移动(从左到右),而x窗口将保持5分钟(xmax-xmin=datetime.detlta(minutes=5
)。旧数据将不可见。
如果我不设置xlim,情节将会挤在一起,而且不会那么美。
也就是说,当绘图实时更新时,我可以滚动回到上一个数据以查看“历史数据”。
我知道我们可以使用matplotlib.pyplot.savefig
将地块保存到图像中。还有其他建议吗?我可以知道Matplotlib下是否存在带有实时更新的滚动条?
谢谢。
答案 0 :(得分:0)
在this的帮助下,最终答案如下。
作为问题的统计信息,x是时间戳,将新数据添加到列表中。
self.timestampRange = [min(self.timestamp1), max(self.timestamp1) + dt.timedelta(minutes=0.1)] # datetime style
self.loadingValueRange = [min(self.loadingValue), max(self.loadingValue) + 1]
然后设置滑块并编写更新功能。只需注意x数组的类型即可。
#Slider setting
self.ssb = Slider(self.axsb, 'Scrollbar',
dates.date2num(self.timestampRange[0]),
dates.date2num(self.timestampRange[1]))
self.ssb.on_changed(self.update)
def update(self,val):
self.sb=self.ssb.val
self.xmin_time=dates.num2date(self.sb)-dt.timedelta(minutes=1)
self.xmax_time=dates.num2date(self.sb)
self.loadingGraph.axis([self.xmin_time,self.xmax_time,min(self.loadingValueRange), max(self.loadingValueRange)])
fig.canvas.draw_idle()
希望有帮助。谢谢。