Matplotlib实时更新中的滚动条

Matplotlib实时更新中的滚动条,matplotlib,Matplotlib,我可以做到以下几点: GetData函数保持在24x7小时内运行和生成数据。GetData将产生两个值。时间是x-数组,值是y-数组 导入plot类并实时打印 窗口将继续移动(从左到右),x窗口将保持5分钟(xmax xmin=datetime.detlta(minutes=5)。旧数据将不可见。 如果我不设置xlim,情节就会挤在一起,不会那么不美观 也就是说,当绘图实时更新时,我可以滚动回以前的数据以查看“历史数据” 我知道我们可以使用matplotlib.pyplot.savefig将绘图

我可以做到以下几点:

  • GetData函数保持在24x7小时内运行和生成数据。GetData将产生两个值。
    时间
    是x-数组,
    是y-数组
  • 导入plot类并实时打印 窗口将继续移动(从左到右),x窗口将保持5分钟(
    xmax xmin=datetime.detlta(minutes=5
    )。旧数据将不可见。 如果我不设置xlim,情节就会挤在一起,不会那么不美观

    也就是说,当绘图实时更新时,我可以滚动回以前的数据以查看“历史数据”

    我知道我们可以使用
    matplotlib.pyplot.savefig
    将绘图保存到图像。还有其他建议吗?我可以知道Matplotlib下是否有一个滚动条,带有实时更新吗

    谢谢。

    在的帮助下,最终答案如下

    作为问题统计,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()
    
    希望能有帮助。谢谢