Matplotlib Рисунок мерцает при обновлении - PullRequest
0 голосов
/ 02 июля 2018

У меня есть график в окне PyQt, который обновляется каждые 10 секунд. Проблема в том, что каждый раз, когда он обновляет данные на рисунке, возникает мерцание, которое довольно раздражает. Есть ли способ решить это? Посмотрите код, который я использую, чтобы нарисовать график:

def _plot(self):
    self.fig.clear()
    chart1 = self.fig.add_subplot(2,1,1)
    chart2 = self.fig.add_subplot(2,1,2)
    chart1.grid(True)
    chart2.grid(True)
    chart1.plot(h_headers,reference)

    for row in rows:
        curve = []
        gap_curve = []
        for v in range(len(h_headers)-1):
            curve.append(#SOME NUMBERS#)
        chart1.plot(h_headers, curve)
        chart2.plot(h_headers, gap_curve)

    self.fig.patch.set_visible(False)
    self.canvas.draw()

Для вызова метода _plot я использую Thread:

loop = True

class DataStream(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        while loop:
            window.update_numbers()
            window._plot()
            window.pyqttable.viewport().update()
            time.sleep(5)

Я что-то не так делаю? Довольно нубик с Matplotlib, спасибо!

1 Ответ

0 голосов
/ 03 июля 2018

Если у кого-то возникла такая же проблема, как у меня, я просто изменил

self.canvas.draw()

до

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