Полоса прокрутки в Matplotlib живое обновление - PullRequest
0 голосов
/ 10 сентября 2018

Я могу добиться следующего:

  1. Функция GetData продолжает работать и генерировать данные в течение 24x7 часов. GetData выдаст два значения. time - это массив x, value - это массив y.
  2. Импорт в класс графика и отображение в режиме реального времени.

Окно будет продолжать двигаться (слева направо), а окно x будет поддерживать 5 минут (xmax-xmin=datetime.detlta(minutes=5)). Старые данные будут невидимы. Если я не установлю xlim, сюжет будет сбиваться, и он не будет таким неэстетичным.

То есть, когда график обновляется в режиме реального времени, я могу вернуться к предыдущим данным, чтобы увидеть «данные истории».

Я понимаю, что мы можем сохранить сюжет в изображение с помощью matplotlib.pyplot.savefig. Есть ли другие предложения? Могу ли я узнать, есть ли полоса прокрутки под Matplotlib с обновлением в реальном времени?

Спасибо.

1 Ответ

0 голосов
/ 13 сентября 2018

С помощью этого окончательный ответ будет следующим:

В качестве статистики вопроса, х - это отметка времени, добавьте новые данные в список.

    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()

Надеюсь, это поможет. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...