Try to *QtGui.QApplication.processEvents()* after
*self.curve_1.setData(self.deq)*:
def plot(self, msg):
print('Plotter received: ', msg)
self.deq.append(msg)
print(self.deq)
self.curve_1.setData(self.deq)
QtGui.QApplication.processEvents()
On Sun, Jul 16, 2017 at 4:32 PM, <[email protected]> wrote:
> I'm trying to make a program in which an instance sends values to another
> instance and it plots them continuously.
>
>
> I programmed this using pypubsub to send values from one instance to the
> other.
>
>
> The other instance gets values and store them into a deque, and it plots
> the deque whenever it is updates.
>
>
> I think the instances communicate with one another well and I can see the
> deque is updated every second as I planned,
>
>
> however, the problem is that the graph doesn't show the deque's values
> whenever it is updated, but rather it shows the values
>
>
> once the whole updating has finished. I'd like to know how I can plot the
> deque whenever it is updated.
>
>
>
>
> from pyqtgraph.Qt import QtGui, QtCoreimport pyqtgraph as pg
> from collections import dequefrom pubsub import pubimport time
>
> class Plotter:
> def __init__(self):
>
> self.deq = deque()
>
> self.pw = pg.GraphicsView()
> self.pw.show()
> self.mainLayout = pg.GraphicsLayout()
> self.pw.setCentralItem(self.mainLayout)
> self.p1 = pg.PlotItem()
> self.p1.setClipToView=True
> self.curve_1 = self.p1.plot(pen=None, symbol='o', symbolPen=None,
> symbolSize=10, symbolBrush=(102, 000, 000, 255))
> self.mainLayout.addItem(self.p1, row = 0, col=0, rowspan=2)
>
> def plot(self, msg):
> print('Plotter received: ', msg)
> self.deq.append(msg)
> print(self.deq)
> self.curve_1.setData(self.deq)
>
> class Sender:
> def __init__(self):
> self.list01 = [1,2,3,4,5] # A list of values that will be
> sent through pub.sendMessage
>
> def send(self):
> for i in range(len(self.list01)):
> pub.sendMessage('update', msg = self.list01[i] )
> time.sleep(1)
>
>
> plotterObj = Plotter()
> senderObj = Sender()
>
> pub.subscribe(plotterObj.plot, 'update')
>
> senderObj.send()
>
>
>
>
> >>> (executing file "<tmp 1>")
>
> Plotter received: 1
>
> deque([1])
>
> Plotter received: 2
>
> deque([1, 2])
>
> Plotter received: 3
>
> deque([1, 2, 3])
>
> Plotter received: 4
>
> deque([1, 2, 3, 4])
>
> Plotter received: 5
>
> deque([1, 2, 3, 4, 5])
>
>
> --
> 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 [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/pyqtgraph/912108af-e817-4183-a4f8-8763fb502379%40googlegroups.com
> <https://groups.google.com/d/msgid/pyqtgraph/912108af-e817-4183-a4f8-8763fb502379%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pyqtgraph/CAD_qyJpC74P4Lx5vS6L34tLMwc7FahRhd-KV%3D1RQ4%2BniK3DbpA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.