Hi 

I am using the development version 0.9.11 with  pyQT5 on a windows machine.

I've created a descendant of PlotWidget that catches a pypubsub message 
that is used to update the plot in the plotwidget.

The code for doing this is posted below.  I seems to work OK, except for 
the fact that  the plot stops refreshing itself after the initial number of 
samples is reached.

However, if I manually adjust the window size by using a mouse to drag the 
edge of the window then the refresh does occur as I am doing the dragging.  
If I stop adjusting the window size then the plot does not update.

Any suggestions as to how I can make the plot continuously update without 
manual intervention.

Thanks

from __future__ import unicode_literals
import numpy as np
from pubsub import pub
import pyqtgraph_dev as pg


class ScatterPlotCanvas(pg.PlotWidget):

    def __init__(self):
        pg.PlotWidget.__init__(self)
        self.xdata = [0]  
        self.ydata = [0]   

        self.curve = self.plot(pen='r')
        self.enableAutoRange()    
        self.showButtons()
        self.samples = 100
        
        pub.subscribe(self.receiveData,'sensor.data')

        
        
    def updateXY(self,  xval, yval, samples):

        if len(self.xdata) == 1:
            self.xdata = [xval, xval]  
            self.ydata = [yval, yval]   
        else:
            if len(self.xdata) > samples:
               frm = len(self.xdata)-samples
               self.xdata = self.xdata[frm:]
               self.ydata = self.ydata[frm:]

            self.xdata = np.append(self.xdata,xval)    
            self.ydata = np.append(self.ydata,yval)  
    

        self.curve.setData(x=self.xdata, y=self.ydata)
        
        self.update()
        #self.repaint()
        #pg.QtGui.QApplication.processEvents()

    def receiveData(self, arg1=None, arg2=None):
        if arg1 is not None:
           xval = arg2[0,:]
           yval = arg2[1,:]
           for x,y in zip(xval, yval):
              self.updateXY(x, y, self.samples)



           

-- 
You received this message because you are subscribed to the Google Groups 
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pyqtgraph+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyqtgraph/43ab70cc-1a9b-4b47-af39-9fd6e5e29a10%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to