Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新时Matplotlib图形闪烁_Python_Matplotlib_Pyqt - Fatal编程技术网

Python 更新时Matplotlib图形闪烁

Python 更新时Matplotlib图形闪烁,python,matplotlib,pyqt,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) cha

我在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真是太棒了,谢谢

如果有人和我有同样的问题,我只是改变了

self.canvas.draw()


如果有人和我有同样的问题,我只是改变了

self.canvas.draw()


提供一个Hi-eyllanesc,我试图完成更多的代码,但如果把它们全部放在一起,对任何读者来说都会是一团混乱,因为有太多相互关联的非相关函数。我认为闪烁或闪烁的问题归结于我创建的_plot()方法,虽然我也认为这是matplotlib的正常行为,但必须有一种方法来避免这种情况。也许用动画?谢谢这个问题可以给出n个原因,样本不会尝试给出代码或者给出可能的原因,如果代码中有不相关的东西,那么就删除它们,也就是说,创建一个像样的代码。一个MCVE必须是完整的,而你的不是。提供一个Hi-eyllanesc,我试图完成更多的代码,但对任何读者来说都是一团糟,因为有太多相互关联的非相关函数。我认为闪烁或闪烁的问题归结于我创建的_plot()方法,虽然我也认为这是matplotlib的正常行为,但必须有一种方法来避免这种情况。也许用动画?谢谢这个问题可以给出n个原因,样本不会尝试给出代码或者给出可能的原因,如果代码中有不相关的东西,那么就删除它们,也就是说,创建一个像样的代码。MCVE必须完整,而您的则不完整。有相同的问题,但我没有使用
canvas
绘制,而是使用
plt.show
。我尝试添加
fig.canvas.draw\u idle()
,但它似乎不起作用。这很烦人(闪烁)。有同样的问题,但我不是用
canvas
画图,而是用
plt.show
。我尝试添加
fig.canvas.draw\u idle()
,但它似乎不起作用。(闪烁声)真烦人。