Matplotlib图更新时闪烁

时间:2018-07-02 10:06:50

标签: python matplotlib pyqt

我在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方法,请使用一个线程:

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 :(得分:0)

万一有人遇到与我相同的问题,我就换了

self.canvas.draw()

self.canvas.draw_idle()