Re: [Matplotlib-users] [ploting data] Live data
Thx all for your remarks, I can't understand why this code works (when I use the timer method): # -*- coding: utf-8 -*- Created on Fri Dec 02 17:10:22 2011 @author: lafont #!/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, 40) #self.ax.set_ylim(0, 1.5) # FigureCanvas.updateGeometry(self) # 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') # add legend to plot self.ax.legend() # force a redraw of the Figure self.fig.canvas.draw() # start the timer, to trigger an event every x milliseconds) self.timer = self.startTimer(1000) self.timerEvent(None) def get_info(self): return [0.8] def get_info2(self) : return [0.9] def set_voltage(self) : print ok # def timerEvent(self, evt): Custom timerEvent code, called upon timer event receive result1 = self.get_info() result2 = self.get_info2() # append new data to the datasets self.user.append(result1) self.nice.append(result2) # update lines data using the lists with new data 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) #=== # #=== 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_()) And this code doesn't show anything... Somebody understand why? Thanks, Fabien 2011/12/4 David Hoese dho...@gmail.com I think you forget to set the layout on your central widget. self.main_widget.setLayout(vbl) # in your case -Dave On 12/4/2011 9:57 AM, matplotlib-users-requ...@lists.sourceforge.net wrote: 2011/12/2 Daniel Hyamsdhy...@gmail.com: 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 Lafontlafont.fab...@gmail.com 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? -- 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
Re: [Matplotlib-users] Using plt.pcolormesh with FuncAnimation
Hi, You are right. I have tried set_array before, but forgot to mention it. I have retried now and got it working. Like you said one has to ravel() the array and use this with QuadMeshs set_array function. Thanks. Manuel 2011/12/4 Tony Yu tsy...@gmail.com: On Sun, Dec 4, 2011 at 9:59 AM, Manuel Jung mj...@astrophysik.uni-kiel.de wrote: Hi, I have plt.pcolormesh plot i would like to animate. So i've taken a look at the various examples and decided to go with the FuncAnimation routine. This works for me, but im using for every frame a new call to plt.colormesh and i am not updating the underlaying data, like in this example http://matplotlib.sourceforge.net/examples/animation/dynamic_image.html This is because there seems to be no set_data, set_array or similar for the from plt.colormesh returned object (an instance of matplotlib.collection.QuadMesh). Am i right? Is there any way i can update the data structures of plt.colormesh? Hi Manuel, You can call QuadMesh's `set_array` method, just as you can for images. (You suggest there is no set_array method for QuadMesh; are you sure about that?) The strange part is that it expects a 1d array, where as colormesh accepts arrays of various dimensions. import numpy as np import matplotlib.pyplot as plt mesh = plt.pcolormesh(np.random.rand(10,10)) mesh.set_array(np.random.rand(10,10).ravel()) plt.draw() set_array doesn't complain if you remove the call to `ravel`, but `plt.draw()` will complain. -Tony -- 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
Re: [Matplotlib-users] how to use different font for serif
Tony, Thanks for your answer. I'm running on CentOS Linux. Unfortunately there is no such command as font_manager.X11InstalledFonts(), though there is font_manager.x11FontDirectory(). When I do that I get a list with a bunch of directories including '/usr/share/msttcorefonts', which contains the times.ttf which has the Times New Roman font I wanted. And by doing things like: fprop = font_manager.FontProperties(fname= '/usr/share/fonts/msttcorefonts/times.ttf') set_xlabel('X title',fontproperties=fprop) xticklabels = plt.getp(plt.gca(), 'xticklabels') plt.setp(xticklabels, fontproperties=fprop) I can get the fonts I want for xlabel, ylabel, etc., but I still can't get that font set as the default font (using, for example 'times' for the value for serif, or for family). For some reason setting the rcParam doesn't work. In the context in which it's invoked to find the font, the font manager can't find it. So far I haven't been able to track down the problem. Jon On Fri, 2011-12-02 at 17:30 -0500, Tony Yu wrote: On Fri, Dec 2, 2011 at 4:13 PM, Jonathan Slavin jsla...@cfa.harvard.edu wrote: Hi all, I've been trying to use a different serif font for a plot and have been running into problems. I thought I could just do something like: from matplotlib import rc rc('font', family='serif', serif='Times New Roman') but if I try that I end up getting: findfont: Font family ['serif'] not found. Falling back to Bitstream Vera Sans It works fine without the serif='...' part and gives me the default serif font. I know that Times New Roman exists on my system -- at least the GNOME character map can find it. Perhaps I need to use a different alias (but what would it be?). Any help would appreciated. Jon You should check what fonts are installed on your system: from matplotlib import font_manager font_manager.OSXInstalledFonts() (or if you're on a different system, try MSInstalledFonts or X11InstalledFonts---those aren't available on my system, but presumably that's just because I'm using OSX). If that works, then look for Times New Roman in what's printed out. If it is, the problem may be that it's not the right format: it appears as if the font_manager only supports .ttf and .afm fonts. If you don't see Times New Roman in any of those files, check the output of mpl.font_manager.OSXFontDirectories (replacing OSX with MS or X11, if needed). If the listed directories doesn't match your installation of Times New Roman, that's your problem. (I'm not sure if there's a good way of adding directories.) Cheers, -Tony -- 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
Re: [Matplotlib-users] ft2font.cpp memory fix patch not in 1.1.x branch
It looks like this is already on 1.1.x, but not in the 1.1.0 release. Or am I missing something? Mike On 12/01/2011 12:24 PM, Benjamin Root wrote: On Thu, Dec 1, 2011 at 10:14 AM, Benjamin Root ben.r...@ou.edu mailto:ben.r...@ou.edu wrote: On Thu, Dec 1, 2011 at 9:29 AM, Neilen Marais nmar...@ska.ac.za mailto:nmar...@ska.ac.za wrote: https://github.com/matplotlib/matplotlib/commit /98ee4e991ae142622f3814db193b75236eb77cea#src/ft2font.cpp Hmm, strange... It isn't even in master right now. The last changes to it were by Michael Droettboom (commit 6b643862) in June of 2010, but the commit you are pointing to was done in March of 2011... this needs more investigating. Ben Root Strange, I could have sworn that I rebased my master branch correctly. Now, the fix is showing in master. Well, now that that has been resolved, I guess we can just simply cherry-pick that commit into v1.1.x? Ben Root -- 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 -- 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
Re: [Matplotlib-users] how to use different font for serif
What rcParams are you setting? font.family: serif font.serif: Times New Roman and font.family: Times New Roman both work for me. You have to use the name of the font as specified in the file, not the filename to specify the font (which is probably why times is not working for you). Mike On 12/05/2011 01:38 PM, Jonathan Slavin wrote: Tony, Thanks for your answer. I'm running on CentOS Linux. Unfortunately there is no such command as font_manager.X11InstalledFonts(), though there is font_manager.x11FontDirectory(). When I do that I get a list with a bunch of directories including '/usr/share/msttcorefonts', which contains the times.ttf which has the Times New Roman font I wanted. And by doing things like: fprop = font_manager.FontProperties(fname= '/usr/share/fonts/msttcorefonts/times.ttf') set_xlabel('X title',fontproperties=fprop) xticklabels = plt.getp(plt.gca(), 'xticklabels') plt.setp(xticklabels, fontproperties=fprop) I can get the fonts I want for xlabel, ylabel, etc., but I still can't get that font set as the default font (using, for example 'times' for the value for serif, or for family). For some reason setting the rcParam doesn't work. In the context in which it's invoked to find the font, the font manager can't find it. So far I haven't been able to track down the problem. Jon On Fri, 2011-12-02 at 17:30 -0500, Tony Yu wrote: On Fri, Dec 2, 2011 at 4:13 PM, Jonathan Slavin jsla...@cfa.harvard.edu wrote: Hi all, I've been trying to use a different serif font for a plot and have been running into problems. I thought I could just do something like: from matplotlib import rc rc('font', family='serif', serif='Times New Roman') but if I try that I end up getting: findfont: Font family ['serif'] not found. Falling back to Bitstream Vera Sans It works fine without the serif='...' part and gives me the default serif font. I know that Times New Roman exists on my system -- at least the GNOME character map can find it. Perhaps I need to use a different alias (but what would it be?). Any help would appreciated. Jon You should check what fonts are installed on your system: from matplotlib import font_manager font_manager.OSXInstalledFonts() (or if you're on a different system, try MSInstalledFonts or X11InstalledFonts---those aren't available on my system, but presumably that's just because I'm using OSX). If that works, then look for Times New Roman in what's printed out. If it is, the problem may be that it's not the right format: it appears as if the font_manager only supports .ttf and .afm fonts. If you don't see Times New Roman in any of those files, check the output of mpl.font_manager.OSXFontDirectories (replacing OSX with MS or X11, if needed). If the listed directories doesn't match your installation of Times New Roman, that's your problem. (I'm not sure if there's a good way of adding directories.) Cheers, -Tony -- 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 -- 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
Re: [Matplotlib-users] latex and mathin y x labels?
Set the rcParam mathtext.default to regular. Mike On 12/04/2011 05:13 PM, Piter_ wrote: Hi all. I have tried to add fractions, superscript and some other symbols in axis labels using latex or mathtext. But then they are different to much from other text. Is there any trick to make them look the same? Thanks. Petro. -- 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 -- 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
[Matplotlib-users] bug in fcontour with v1.1.0 ?
Hello, I am new to this list, but not totally to matplotlib. I installed v1.1.0 lately, and i noticed that something went wrong (or, not as before) with fcontour(). It looks like the range of colors used to fill in, is not set correctly. Sorry, i cannot really tel it better, but i have a piece of source code, that highlights the phenomenon : #!/usr/bin/python import os import sys from pylab import * # parameters we bach on x = linspace(-10,10,30) y = linspace(-4,4,30) X,Y = meshgrid(x,y) F = 0.5*X**2 + (7*Y**2)/2 fig = figure(num=None, figsize=(6, 6), dpi=80, facecolor='#66', edgecolor='k') ax = fig.gca() cmap=get_cmap('reds') plage = arange(0,100,1) surf = contourf(X,Y,F, plage) plage = arange(0,100,2) surf = contour(X,Y,F, plage, linewidths=2) ax.grid(True) fig.colorbar(surf, shrink=0.5, aspect=5) axis([x.min(),x.max(),y.min(),y.max()]) show() I ran it with pyV2.6/matplotlibV0.99.1, and it behaves differently with pyV2.7/matplotlibV1.1.0 . Could you confirm that on your computer, if this is an expected behaviour, and, if not, if you have an idea about how to fix it ? thanks a lot, Arnaud. -- 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
Re: [Matplotlib-users] [ploting data] Live data
If I'm understanding your question correctly and reading your code correctly, you're asking why the timer method of doing things works, but the principal() while loop method does not. I had a couple solutions that involved the main event loop, but I just noticed 2 main things that are probably wrong with your code: 1. You are calling 'principal' from inside __init__ so you never actually return from __init__ which means that you never call window.show() and therefore never call qApp.exec_(). If you really want to use the 'principal' method you would have to connect it to a one shot timer anyway to have it run after you have started the application ('qApp.exec_()'). I think the recommended way would be to use the timer the way you did in your latest email. 2. At least in the way my email client reads your original code, your calls to the matplotlib drawing functions aren't inside the while loop and the while loop never ends...although this doesn't matter if you don't fix #1 above. Hope that made sense. -Dave On 12/5/11 1:44 PM, matplotlib-users-requ...@lists.sourceforge.net wrote: Message: 3 Date: Mon, 5 Dec 2011 15:46:02 +0100 From: Fabien Lafontlafont.fab...@gmail.com Subject: Re: [Matplotlib-users] [ploting data] Live data Cc:matplotlib-users@lists.sourceforge.net Message-ID: CAC9H_cjrgQBE6e6+jzZHyfYHonTeAg0XwU7c_2G-hu=s+z7...@mail.gmail.com Content-Type: text/plain; charset=ISO-8859-1 Thx all for your remarks, I can't understand why this code works (when I use the timer method): -- 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
Re: [Matplotlib-users] latex and mathin y x labels?
On 12/5/11 12:44 , matplotlib-users-requ...@lists.sourceforge.net wrote: Date: Sun, 4 Dec 2011 23:13:42 +0100 From: Piter_x.pi...@gmail.com Subject: [Matplotlib-users] latex and mathin y x labels? Hi all. I have tried to add fractions, superscript and some other symbols in axis labels using latex or mathtext. But then they are different to much from other text. Is there any trick to make them look the same? Thanks. Petro. I think you want to put: mathtext.default : regular in your matplotlibrc file (~/.matplotlib/matplotlibrc on Linux and Mac systems) HTH, Jonathan -- 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
Re: [Matplotlib-users] ft2font.cpp memory fix patch not in 1.1.x branch
Heh, strange... I could have sworn that the reference counter decrements were there... Ok, looks like everything is where it should be, I guess. Ben Root On Mon, Dec 5, 2011 at 1:44 PM, Michael Droettboom md...@stsci.edu wrote: It looks like this is already on 1.1.x, but not in the 1.1.0 release. Or am I missing something? Mike On 12/01/2011 12:24 PM, Benjamin Root wrote: On Thu, Dec 1, 2011 at 10:14 AM, Benjamin Root ben.r...@ou.edu wrote: On Thu, Dec 1, 2011 at 9:29 AM, Neilen Marais nmar...@ska.ac.za wrote: https://github.com/matplotlib/matplotlib/commit /98ee4e991ae142622f3814db193b75236eb77cea#src/ft2font.cpp Hmm, strange... It isn't even in master right now. The last changes to it were by Michael Droettboom (commit 6b643862) in June of 2010, but the commit you are pointing to was done in March of 2011... this needs more investigating. Ben Root Strange, I could have sworn that I rebased my master branch correctly. Now, the fix is showing in master. Well, now that that has been resolved, I guess we can just simply cherry-pick that commit into v1.1.x? Ben Root -- 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 listMatplotlib-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/matplotlib-users -- 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 -- 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
Re: [Matplotlib-users] bug in fcontour with v1.1.0 ?
On 12/05/2011 10:00 AM, Arnaud wrote: Hello, I am new to this list, but not totally to matplotlib. I installed v1.1.0 lately, and i noticed that something went wrong (or, not as before) with fcontour(). It looks like the range of colors used to fill in, is not set correctly. Sorry, i cannot really tel it better, but i have a piece of source code, that highlights the phenomenon : Try removing the call to contour; it is not doing you any good, at least in this example. You are passing its ContourSet return object to your colorbar call, so your colorbar is showing the contour lines, not the continuous range of colors, which I think is what you want. You can show both contourf colors and contour lines on a colorbar, if you do want that; see http://matplotlib.sourceforge.net/examples/pylab_examples/contourf_demo.html Eric #!/usr/bin/python import os import sys from pylab import * # parameters we bach on x = linspace(-10,10,30) y = linspace(-4,4,30) X,Y = meshgrid(x,y) F = 0.5*X**2 + (7*Y**2)/2 fig = figure(num=None, figsize=(6, 6), dpi=80, facecolor='#66', edgecolor='k') ax = fig.gca() cmap=get_cmap('reds') plage = arange(0,100,1) surf = contourf(X,Y,F, plage) plage = arange(0,100,2) surf = contour(X,Y,F, plage, linewidths=2) ax.grid(True) fig.colorbar(surf, shrink=0.5, aspect=5) axis([x.min(),x.max(),y.min(),y.max()]) show() I ran it with pyV2.6/matplotlibV0.99.1, and it behaves differently with pyV2.7/matplotlibV1.1.0 . Could you confirm that on your computer, if this is an expected behaviour, and, if not, if you have an idea about how to fix it ? thanks a lot, Arnaud. -- 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 -- Cloud Services Checklist: Pricing and Packaging Optimization This white paper is intended to serve as a reference, checklist and point of discussion for anyone considering optimizing the pricing and packaging model of a cloud services business. Read Now! http://www.accelacomm.com/jaw/sfnl/114/51491232/ ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users