[Matplotlib-users] fill with a semilogy axis?

2011-05-03 Thread K . -Michael Aye
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

2011-05-03 Thread Gerald Storer
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

2011-05-03 Thread Emanuele Passera
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

2011-05-03 Thread Pau
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

2011-05-03 Thread Buchholz, Greg
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

2011-05-03 Thread Pau
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

2011-05-03 Thread Pau
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

2011-05-03 Thread Pau
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

2011-05-03 Thread Pau
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

2011-05-03 Thread Ian Bell
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