[ploting data] Live data

Hello everyone, I'm trying to plot live data extracting from remote
devices (here it's simulated by get_info1 and 2 the result is always
0.8 or 0.9

I can't understand why it doesnt plot the graph at the end of the
while loop. Does somebody has an idea?

#!/usr/bin/env python

from visa import *
from pylab import *
import sys
from PyQt4 import QtGui
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg
as NavigationToolbar

···

#===============================================================================
#
#===============================================================================

class CPUMonitor(FigureCanvas):
    """Matplotlib Figure widget"""
    def __init__(self,parent):

        # first image setup
        self.fig = Figure()
        self.ax = self.fig.add_subplot(111)
        # initialization of the canvas
        FigureCanvas.__init__(self, self.fig)
        # set specific limits for X and Y axes
        self.ax.set_xlim(0, 2)
        self.ax.set_ylim(0, 1.5)

        # generates first "empty" plots
        self.user, self.nice = [], []
        self.l_user, = self.ax.plot([], self.user, label='Voltage')
        self.l_nice, = self.ax.plot([], self.nice, label='Voltage2')

        self.ax.legend()

        # force a redraw of the Figure
        self.fig.canvas.draw()

        self.principal()

    def principal(self) :
        stop = 0
        while stop==0 :
            time.sleep(1)
            self.set_voltage()
            time.sleep(1)
            result1 = self.get_info()
            result2 = self.get_info2()

# append new data to the datasets
            self.user.append(result1)
            self.nice.append(result2)

        self.l_user.set_data(range(len(self.user)), self.user)
        self.l_nice.set_data(range(len(self.nice)), self.nice)
  
        # force a redraw of the Figure

        self.fig.canvas.draw()
        FigureCanvas.updateGeometry(self)

    def get_info(self):
        return [0.8]
  
    def get_info2(self) :
        return [0.9]

    def set_voltage(self) :
        print "ok"

#===============================================================================
#
#===============================================================================

class ApplicationWindow(QtGui.QMainWindow):
    """Example main window"""
    def __init__(self):
        # initialization of Qt MainWindow widget
        QtGui.QMainWindow.__init__(self)
        # set window title
        self.setWindowTitle("QHE manip")
        # instantiate a widget, it will be the main one
        self.main_widget = QtGui.QWidget(self)
        # create a vertical box layout widget
        vbl = QtGui.QVBoxLayout(self.main_widget)
        # instantiate our Matplotlib canvas widget
        qmc = CPUMonitor(self.main_widget)
        # instantiate the navigation toolbar
        ntb = NavigationToolbar(qmc, self.main_widget)
        # pack these widget into the vertical box
        vbl.addWidget(qmc)
        vbl.addWidget(ntb)

        # set the focus on the main widget
        self.main_widget.setFocus()
        # set the central widget of MainWindow to main_widget
        self.setCentralWidget(self.main_widget)

# create the GUI application
qApp = QtGui.QApplication(sys.argv)
# instantiate the ApplicationWindow widget
aw = ApplicationWindow()
# show the widget
aw.show()
# start the Qt main loop execution, exiting from this script
# with the same return code of Qt application
sys.exit(qApp.exec_())

I don’t have PyQt installed, so I couldn’t test the code, but don’t you want to be using “extend” and not “append”, if you are returning a list from your two get_info() functions?

···

On Fri, Dec 2, 2011 at 8:13 AM, Fabien Lafont <lafont.fabien@…287…> wrote:

Hello everyone, I’m trying to plot live data extracting from remote

devices (here it’s simulated by get_info1 and 2 the result is always

0.8 or 0.9

I can’t understand why it doesnt plot the graph at the end of the

while loop. Does somebody has an idea?

#!/usr/bin/env python

from visa import *

from pylab import *

import sys

from PyQt4 import QtGui

import numpy as np

from matplotlib.figure import Figure

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas

from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg

as NavigationToolbar

#===============================================================================

#===============================================================================

class CPUMonitor(FigureCanvas):

"""Matplotlib Figure widget"""

def __init__(self,parent):



    # first image setup

    self.fig = Figure()

    [self.ax](http://self.ax) = self.fig.add_subplot(111)

    # initialization of the canvas

    FigureCanvas.__init__(self, self.fig)

    # set specific limits for X and Y axes

    self.ax.set_xlim(0, 2)

    self.ax.set_ylim(0, 1.5)





    # generates first "empty" plots

    self.user, self.nice = [], []

    self.l_user, = self.ax.plot([], self.user, label='Voltage')

    self.l_nice, = self.ax.plot([], self.nice, label='Voltage2')







    self.ax.legend()



    # force a redraw of the Figure

    self.fig.canvas.draw()



    self.principal()









def principal(self) :

    stop = 0

    while stop==0 :

        time.sleep(1)

        self.set_voltage()

        time.sleep(1)

        result1 = self.get_info()

        result2 = self.get_info2()

append new data to the datasets

        self.user.append(result1)

        self.nice.append(result2)



    self.l_user.set_data(range(len(self.user)), self.user)

    self.l_nice.set_data(range(len(self.nice)), self.nice)



    # force a redraw of the Figure



    self.fig.canvas.draw()

    FigureCanvas.updateGeometry(self)



def get_info(self):

    return [0.8]



def get_info2(self) :

    return [0.9]



def set_voltage(self) :

    print "ok"

#===============================================================================

#===============================================================================

class ApplicationWindow(QtGui.QMainWindow):

"""Example main window"""

def __init__(self):

    # initialization of Qt MainWindow widget

    QtGui.QMainWindow.__init__(self)

    # set window title

    self.setWindowTitle("QHE manip")

    # instantiate a widget, it will be the main one

    self.main_widget = QtGui.QWidget(self)

    # create a vertical box layout widget

    vbl = QtGui.QVBoxLayout(self.main_widget)

    # instantiate our Matplotlib canvas widget

    qmc = CPUMonitor(self.main_widget)

    # instantiate the navigation toolbar

    ntb = NavigationToolbar(qmc, self.main_widget)

    # pack these widget into the vertical box

    vbl.addWidget(qmc)

    vbl.addWidget(ntb)



    # set the focus on the main widget

    self.main_widget.setFocus()

    # set the central widget of MainWindow to main_widget

    self.setCentralWidget(self.main_widget)

create the GUI application

qApp = QtGui.QApplication(sys.argv)

instantiate the ApplicationWindow widget

aw = ApplicationWindow()

show the widget

aw.show()

start the Qt main loop execution, exiting from this script

with the same return code of Qt application

sys.exit(qApp.exec_())


All the data continuously generated in your IT infrastructure

contains a definitive record of customers, application performance,

security threats, fraudulent activity, and more. Splunk takes this

data and makes sense of it. IT sense. And common sense.

http://p.sf.net/sfu/splunk-novd2d


Matplotlib-users mailing list

Matplotlib-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Daniel Hyams
dhyams@…287…

Thx Daniel I didn't know extend and it's more suitable for my program.
It doesn't change the problem of plotting, but thx again!

2011/12/2 Daniel Hyams <dhyams@...287...>:

···

I don't have PyQt installed, so I couldn't test the code, but don't you want
to be using "extend" and not "append", if you are returning a list from your
two get_info() functions?

On Fri, Dec 2, 2011 at 8:13 AM, Fabien Lafont <lafont.fabien@...287...> > wrote:

Hello everyone, I'm trying to plot live data extracting from remote
devices (here it's simulated by get_info1 and 2 the result is always
0.8 or 0.9

I can't understand why it doesnt plot the graph at the end of the
while loop. Does somebody has an idea?

#!/usr/bin/env python

from visa import *
from pylab import *
import sys
from PyQt4 import QtGui
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as
FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg
as NavigationToolbar

#===============================================================================
#

#===============================================================================

class CPUMonitor(FigureCanvas):
"""Matplotlib Figure widget"""
def __init__(self,parent):

   \# first image setup
   self\.fig = Figure\(\)
   self\.ax = self\.fig\.add\_subplot\(111\)
   \# initialization of the canvas
   FigureCanvas\.\_\_init\_\_\(self, self\.fig\)
   \# set specific limits for X and Y axes
   self\.ax\.set\_xlim\(0, 2\)
   self\.ax\.set\_ylim\(0, 1\.5\)

   \# generates first &quot;empty&quot; plots
   self\.user, self\.nice = \[\], \[\]
   self\.l\_user, = self\.ax\.plot\(\[\], self\.user, label=&#39;Voltage&#39;\)
   self\.l\_nice, = self\.ax\.plot\(\[\], self\.nice, label=&#39;Voltage2&#39;\)

   self\.ax\.legend\(\)

   \# force a redraw of the Figure
   self\.fig\.canvas\.draw\(\)

   self\.principal\(\)

def principal(self) :
stop = 0
while stop==0 :
time.sleep(1)
self.set_voltage()
time.sleep(1)
result1 = self.get_info()
result2 = self.get_info2()

# append new data to the datasets
self.user.append(result1)
self.nice.append(result2)

   self\.l\_user\.set\_data\(range\(len\(self\.user\)\), self\.user\)
   self\.l\_nice\.set\_data\(range\(len\(self\.nice\)\), self\.nice\)

   \# force a redraw of the Figure

   self\.fig\.canvas\.draw\(\)
   FigureCanvas\.updateGeometry\(self\)

def get_info(self):
return [0.8]

def get_info2(self) :
return [0.9]

def set_voltage(self) :
print "ok"

#===============================================================================
#

#===============================================================================

class ApplicationWindow(QtGui.QMainWindow):
"""Example main window"""
def __init__(self):
# initialization of Qt MainWindow widget
QtGui.QMainWindow.__init__(self)
# set window title
self.setWindowTitle("QHE manip")
# instantiate a widget, it will be the main one
self.main_widget = QtGui.QWidget(self)
# create a vertical box layout widget
vbl = QtGui.QVBoxLayout(self.main_widget)
# instantiate our Matplotlib canvas widget
qmc = CPUMonitor(self.main_widget)
# instantiate the navigation toolbar
ntb = NavigationToolbar(qmc, self.main_widget)
# pack these widget into the vertical box
vbl.addWidget(qmc)
vbl.addWidget(ntb)

   \# set the focus on the main widget
   self\.main\_widget\.setFocus\(\)
   \# set the central widget of MainWindow to main\_widget
   self\.setCentralWidget\(self\.main\_widget\)

# create the GUI application
qApp = QtGui.QApplication(sys.argv)
# instantiate the ApplicationWindow widget
aw = ApplicationWindow()
# show the widget
aw.show()
# start the Qt main loop execution, exiting from this script
# with the same return code of Qt application
sys.exit(qApp.exec_())

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options

--
Daniel Hyams
dhyams@...287...

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
matplotlib-users List Signup and Options