[Matplotlib-users] fill with a semilogy axis?
A colleague posed an interesting challenge: How to do a filled plot having the y-axis in logarithm? I think I can do it with creating patches myself an adding it to the axis, but isn't there anything built-in? Best regards, Michael -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] Animating plots with the Qt backend
Hello, I've been trying to animate some plots with the qt backend and run into a couple of problems. Firstly, I'd like to be able to update the axis limits in an automated fashion as the data changes size. Secondly, Resizing figures appears to redraw everything _but_ items with the animation flag. The is causing me problems when the animation is paused or the frames are occurring slow enough such that there is a noticable period where the my lines disappear. I've sort of solved both of these problems but the solutions seem hackish. In particular updating the axis limits is slowing the animation by 25% and toggling the animated field using the qt events just feels like its asking for trouble. Below is the qt animation example with my solutions. Adjust the size of the plot after the animation finishes to see the effect of the resize hack. I would be grateful if anyone could suggest some improvements. Thanks, Gerald. # For detailed comments on animation and the techniqes used here, see # the wiki entry http://www.scipy.org/Cookbook/Matplotlib/Animations import os import sys #import matplotlib #matplotlib.use('Qt4Agg') from matplotlib.figure import Figure from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from PyQt4 import QtCore, QtGui ITERS = 100 import numpy as np import time class BlitQT(FigureCanvas): def __init__(self): FigureCanvas.__init__(self, Figure()) self.ax = self.figure.add_subplot(111) #self.ax.grid() self.draw() self.old_size = self.ax.bbox.width, self.ax.bbox.height self.ax_background = self.copy_from_bbox(self.ax.bbox) self.cnt = 0 self.x = np.arange(0,2*np.pi,0.01) self.sin_line, = self.ax.plot(self.x, np.sin(self.x), animated=True) self.cos_line, = self.ax.plot(self.x, np.cos(self.x), animated=True) self.draw() self.old_limits = self.ax.get_xlim(),self.ax.get_ylim() self.tstart = time.time() self.maintimer = self.startTimer(10) ## HACK for disapearing objects on resize def resizeEvent(self,evt): super(BlitQT,self).resizeEvent(evt) self.sin_line.set_animated(False) def paintEvent(self,evt): super(BlitQT,self).paintEvent(evt) self.sin_line.set_animated(True) def timerEvent(self, evt): current_size = self.ax.bbox.width, self.ax.bbox.height if self.old_size != current_size: self.old_size = current_size #self.ax.clear() #self.ax.grid() self.draw() self.ax_background = self.copy_from_bbox(self.ax.bbox) self.restore_region(self.ax_background) # update the data self.sin_line.set_ydata(np.sin(self.x+self.cnt/10.0)*self.cnt/100.0) self.cos_line.set_ydata(np.cos(self.x+self.cnt/10.0)*self.cnt/100.0) ## HACK for updating axis limits self.ax.relim() self.ax.autoscale_view() current_limits = self.ax.get_xlim(),self.ax.get_ylim() if self.old_limits != current_limits: self.old_limits = current_limits self.draw() self.ax_background = self.copy_from_bbox(self.ax.bbox) self.blit(self.figure.bbox) # just draw the animated artist self.ax.draw_artist(self.sin_line) self.ax.draw_artist(self.cos_line) # just redraw the axes rectangle self.blit(self.ax.bbox) if self.cnt == 0: # TODO: this shouldn't be necessary, but if it is excluded the # canvas outside the axes is not initially painted. self.draw() if self.cnt==ITERS: # print the timing info and quit print 'FPS:' , ITERS/(time.time()-self.tstart) #sys.exit() self.killTimer(self.maintimer) else: self.cnt += 1 app = QtGui.QApplication(sys.argv) widget = BlitQT() widget.show() sys.exit(app.exec_()) -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] strange behavior with the scatter() function
Thank you very much, it works very well now. Cheers. Emanuele Passera Software Engineer Tele-Rilevamento Europa - T.R.E. srl Via Vittoria Colonna, 7 20149 Milano – Italia Tel.: +39.02.4343.121 - Fax: +39.02.4343.1230 emanuele.pass...@treuropa.com - www.treuropa.com -- This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of this firm, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. If you have received this communication in error, please notify us immediately by responding to this email and then delete it from your system. Any use, disclosure, copying or distribution of the contents of this communication by a not-intended recipient or in violation of the purposes of this communication is strictly prohibited and may be unlawful. -- On Thu, Apr 21, 2011 at 5:38 PM, Emanuele Passera emanuele.pass...@treuropa.com wrote: Hello everybody, I am experiencing a strange behavior with the scatter() function when using different figure canvas y dimensions in inches. Executing the code listed below, I obtain good images when using some dimensions and totally white images when using others. I have attached the input data buffers and the resulting images too. #!/usr/bin/python import numpy as n import pylab as p def scatterFun(x, y, data, yCanvasDimInches, imageName): This function draws a scatterogram for the input data. canvasObj = p.figure(figsize=(8, yCanvasDimInches), dpi=100) axisObj = canvasObj.add_axes([0, 0, 1, 1]) axisObj.scatter(x, y, 10, data, 'o') canvasObj.savefig(imageName, dpi=100) p.close() # data buffer files yPosFile = /users/lelepass/python/test_scatter/yPos xPosFile = /users/lelepass/python/test_scatter/xPos dataFile = /users/lelepass/python/test_scatter/data # loading data s = file(dataFile, 'rb').read() data = n.fromstring(s, 'f') s = file(yPosFile, 'rb').read() y = n.fromstring(s, 'd') s = file(xPosFile, 'rb').read() x = n.fromstring(s, 'd') # scatterogram generation scatterFun(x, y, data, 6, pippo1.png) scatterFun(x, y, data, 6.01, pippo2.png) scatterFun(x, y, data, 6.015, pippo3.png) scatterFun(x, y, data, 6.02, pippo4.png) scatterFun(x, y, data, 6.028, pippo5.png) scatterFun(x, y, data, 6.03, pippo6.png) Can anyone help me ? I use Linux openSUSE 11.3 (x86_64) Linux sat1 2.6.34.7-0.7-default #1 SMP 2010-12-13 11:13:53 +0100 x86_64 x86_64 x86_64 GNU/Linux Python 2.6.5 numpy1.5.1 matplotlib 1.0.1 with backend Agg v2.2 On the same system descripted above linking matplotlib from svn matplotlib-matplotlib-v1.0.1-756-g3c43d83.tar.gz instead of the installed one, all the images are white. If it can be of some help this strange behavior does not appear with a system Linux Ubuntu 9.10 Linux joshua 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686 GNU/Linux Python 2.6.4 numpy1.3.0 matplotlib 0.99.0 with backend Agg v2.2 Executing the script with verbosity I get the subsequent output $HOME=/users/lelepass CONFIGDIR=/users/lelepass/.matplotlib Bad key numerix on line 30 in /users/lelepass/.matplotlib/matplotlibrc. You probably need to get an updated matplotlibrc file from http://matplotlib.sf.net/_static/matplotlibrc or from the matplotlib source distribution matplotlib data path /usr/lib64/python2.6/site-packages/matplotlib/mpl-data loaded rc file /users/lelepass/.matplotlib/matplotlibrc matplotlib version 1.0.1 verbose.level helpful interactive is False units is True platform is linux2 Using fontManager instance from /users/lelepass/.matplotlib/fontList.cache backend agg version v2.2 findfont: Matching :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium to Bitstream Vera Sans (/usr/lib64/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf) with score of 0.00 Thank you all. Bye. Emanuele Passera Software Engineer Tele-Rilevamento Europa - T.R.E. srl Via Vittoria Colonna, 7 20149 Milano – Italia Tel.: +39.02.4343.121 - Fax: +39.02.4343.1230 emanuele.pass...@treuropa.com - www.treuropa.com -- This communication, that may contain confidential and/or legally privileged information, is intended solely for the use of the intended addressees. Opinions, conclusions and other information contained in this message, that do not relate to the official business of this firm, shall be considered as not given or endorsed by it. Every opinion or advice contained in this communication is subject to the terms and conditions provided by the agreement governing the engagement with such a client. If you have
[Matplotlib-users] Use a variable for the ms option in the plot function
Hello, I am looking for a way to feed R=log(M) to plot in the ms field (HERE in the example): plot(X, Y, \ marker='o', mec='black',ms=HERE,ls='None',\ mfc='red',alpha=0.9,mew=2,antialiased=True) thanks, Pau -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Use a variable for the ms option in the plot function
Maybe you want to use the scatter procedure? http://matplotlib.sourceforge.net/examples/pylab_examples/scatter_demo.html?highlight=scatter http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.scatter -Original Message- From: Pau [mailto:vim.u...@googlemail.com] Sent: Tuesday, May 03, 2011 10:04 AM To: matplotlib Subject: [Matplotlib-users] Use a variable for the ms option in the plot function Hello, I am looking for a way to feed R=log(M) to plot in the ms field (HERE in the example): plot(X, Y, \ marker='o', mec='black',ms=HERE,ls='None',\ mfc='red',alpha=0.9,mew=2,antialiased=True) thanks, Pau --- --- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Use a variable for the ms option in the plot function
thanks! I wish there was something similar to markeredgewidth in scatter, though But it's doing what I wanted, thanks Pau On 3 May 2011 19:21, Buchholz, Greg gbuchh...@infiniacorp.com wrote: Maybe you want to use the scatter procedure? http://matplotlib.sourceforge.net/examples/pylab_examples/scatter_demo.html?highlight=scatter http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.scatter -Original Message- From: Pau [mailto:vim.u...@googlemail.com] Sent: Tuesday, May 03, 2011 10:04 AM To: matplotlib Subject: [Matplotlib-users] Use a variable for the ms option in the plot function Hello, I am looking for a way to feed R=log(M) to plot in the ms field (HERE in the example): plot(X, Y, \ marker='o', mec='black',ms=HERE,ls='None',\ mfc='red',alpha=0.9,mew=2,antialiased=True) thanks, Pau --- --- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
[Matplotlib-users] automatically plotting different sets of data
Hello, I am afraid that I know the answer to the question: use python But my problem is that I do not really know python. I just started and I can do some nice plots with matplotlib but I don't really know python. I am now running into a snag. I have different directories with different number of data files Directory 1 --- data1.dat data2.dat data3.dat data4.dat data5.dat Directory 2 --- data1.dat data2.dat data3.dat The number of files is huge, I do not want to run this one by one per hand. I am trying to do this with a shell script which actually prepares the data files but I do not know how to tell matplotlib from the shell script that the number of files is different and that it should use different colours for different files. I can explain this in much more detail if needed, but I wanted to hear a first impression. thanks, Pau -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] automatically plotting different sets of data
PS: I thought I would probably give a better example In a directory I have these files: 2537.dat 5043.dat 5075.dat 7581.dat 1.009e+04.dat 1.551e+04.dat 1.805e+04.dat 2.056e+04.dat 4.955e+04.dat 5.209e+04.dat 5.459e+04.dat 5.462e+04.dat 1.445e+05.dat 1.47e+05.dat 5.016e+05.dat 5.041e+05.dat 5.067e+05.dat 5.171e+05.dat 5.196e+05.dat 5.511e+05.dat 5.537e+05.dat 5.562e+05.dat 8.842e+05.dat 1.465e+06.dat I would like to plot them with matplotlib like this: --- X = cluster[:, 1] # Column 2 Y = cluster[:, 2] # Column 3 M = cluster[:, 4] # Column 5 Radius = log(M) ylabel ('Y (pc)', size=18) scatter(X, Y, s=Radius,\ marker='o', color='red',\ edgecolors='black',\ alpha=0.9,antialiased=True) xlabel ('X (pc)', size=18) --- where cluster runs from the first data file to the last one and color changes from one data file to the next one The goal is to have all the data files plotted in a single graph How could I do this? Thanks a lot P. On 3 May 2011 20:37, Pau vim.u...@googlemail.com wrote: Hello, I am afraid that I know the answer to the question: use python But my problem is that I do not really know python. I just started and I can do some nice plots with matplotlib but I don't really know python. I am now running into a snag. I have different directories with different number of data files Directory 1 --- data1.dat data2.dat data3.dat data4.dat data5.dat Directory 2 --- data1.dat data2.dat data3.dat The number of files is huge, I do not want to run this one by one per hand. I am trying to do this with a shell script which actually prepares the data files but I do not know how to tell matplotlib from the shell script that the number of files is different and that it should use different colours for different files. I can explain this in much more detail if needed, but I wanted to hear a first impression. thanks, Pau -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] automatically plotting different sets of data
THANKS!! I am not a native speaker and sometimes I find it very hard to find a keyword to look for... that tip was excellent, thank you a lot On 3 May 2011 22:27, Buchholz, Greg gbuchh...@infiniacorp.com wrote: From: Pau [mailto:vim.u...@googlemail.com] PS: I thought I would probably give a better example The goal is to have all the data files plotted in a single graph import glob for filename in glob.glob('*.dat'): if 'e' in set(filename): #or whatever #do something for files that have an 'e' in their name else: #do something else loadtxt(filename) #yada, yada, yada scatter() #etc. -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users
Re: [Matplotlib-users] Use a variable for the ms option in the plot function
Pau, linewidth=xx (or lw=xx) does that job in scatter plots. Also see http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.scatterthough really it isn't very clear and I found it out by accident Regards, Ian Ian Bell Graduate Research Assistant Herrick Labs Purdue University email: ib...@purdue.edu cell: (607)227-7626 On Tue, May 3, 2011 at 2:27 PM, Pau vim.u...@googlemail.com wrote: thanks! I wish there was something similar to markeredgewidth in scatter, though But it's doing what I wanted, thanks Pau On 3 May 2011 19:21, Buchholz, Greg gbuchh...@infiniacorp.com wrote: Maybe you want to use the scatter procedure? http://matplotlib.sourceforge.net/examples/pylab_examples/scatter_demo.html?highlight=scatter http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.scatter -Original Message- From: Pau [mailto:vim.u...@googlemail.com] Sent: Tuesday, May 03, 2011 10:04 AM To: matplotlib Subject: [Matplotlib-users] Use a variable for the ms option in the plot function Hello, I am looking for a way to feed R=log(M) to plot in the ms field (HERE in the example): plot(X, Y, \ marker='o', mec='black',ms=HERE,ls='None',\ mfc='red',alpha=0.9,mew=2,antialiased=True) thanks, Pau --- --- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd ___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users -- WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd___ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users