首页 > 解决方案 > Matplotlib 更新时图形闪烁

问题描述

我在 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 这里是个菜鸟,谢谢!

标签: pythonmatplotlibpyqt

解决方案


万一有人和我有同样的问题,我只是改变了

self.canvas.draw()

self.canvas.draw_idle()

推荐阅读