[Matplotlib-users] help visualizing plots

2009-02-16 Thread Simone Gabbriellini
dear list,

can someone tell me why I don't see anything when I run this script?
it is a modified version of the traits example...
I expected to see three plots with one line each...

from enthought.traits.api import HasTraits, Instance, Range, Array,
on_trait_change, Property,cached_property, Bool
from enthought.traits.ui.api import View, Item
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg
from matplotlib.backends.backend_wx import NavigationToolbar2Wx
from matplotlib.figure import Figure
from matplotlib.axes import Axes
from matplotlib.lines import Line2D
from enthought.traits.ui.api import CustomEditor
import wx
import numpy

def MakePlot(parent, editor):
fig = editor.object.figure
panel = wx.Panel(parent, -1)
canvas = FigureCanvasWxAgg(panel, -1, fig)
toolbar = NavigationToolbar2Wx(canvas)
toolbar.Realize()
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(canvas,1,wx.EXPAND|wx.ALL,1)
sizer.Add(toolbar,0,wx.EXPAND|wx.ALL,1)
panel.SetSizer(sizer)
canvas.SetMinSize((300,600))
return panel

class PlotModel(HasTraits):

figure = Instance(Figure, ())
axes1 = Instance(Axes)
axes2 = Instance(Axes)
axes3 = Instance(Axes)
line1 = Instance(Line2D)
line2 = Instance(Line2D)
line3 = Instance(Line2D)
_draw_pending = Bool(False) #a flag to throttle the redraw rate
# a variable parameter
x = Array(value=numpy.arange(1, 31))
x2 = Array(value=numpy.arange(1, 31))
x3 = Array(value=numpy.arange(1, 31))
# a dependent variable
y = Array(value=numpy.arange(1, 31))
y2 = Array(value=numpy.arange(1, 31))
y3 = Array(value=numpy.arange(1, 31))

traits_view = View(
Item('figure',
 editor=CustomEditor(MakePlot),
 resizable=True,
 show_label=False),
resizable=False,
width=400,
height=750
)

def _axes1_default(self):
return self.figure.add_subplot(311)

def _axes2_default(self):
return self.figure.add_subplot(312)

def _axes3_default(self):
return self.figure.add_subplot(313)

def _line1_default(self):
return self.axes1.plot(self.x, self.y)[0]

def _line2_default(self):
return self.axes2.plot(self.x2, self.y2)[0]

def _line3_default(self):
return self.axes3.plot(self.x3, self.y3)[0]

def redraw(self):
if self._draw_pending:
return
canvas = self.figure.canvas
if canvas is None:
return
def _draw():
canvas.draw()
self._draw_pending = False
wx.CallLater(50, _draw).Start()
self._draw_pending = True

if __name__==__main__:
model = PlotModel()
model.configure_traits(model.redraw())


thank you,
simone

--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Venn diagrams

2009-02-16 Thread Ian Harry
Hi all,

Is there any simple way in matplotlib, or in any other python library, to
make a simple Venn diagram, I want to show three events and their
intersections? I have tried googling for any hints but didn't find anything.

Thanks for any help!

Ian

-- 
---
Ian Harry
School of Physics  Astronomy
Queens Buildings, The Parade
Cardiff, CF24 3AA
Email: ian.ha...@astro.cf.ac.uk
Phone: (+44) 29 208 75120
Mobile: (+44) 7890 479090
---
--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] imshow extent toolbar zoom??

2009-02-16 Thread Lewis, Ambrose J.
Hi All:

Thanks to Michael  Ryan, I got my imshow call displaying the correct
data range on the x axis!  

However, when I now use a toolbar to zoom the image, I'm getting a
divide by zero error (see traceback below)

I'm using Python 2.5.2, wx 2.8.7.1, and Matplotlib 0.98.5.2 on win32.

Thanks for your (hopefully) continued patience with these newbie
questions!

amb

 

Here is the call to imshow that I modified:

self.myImage =
self.axes.imshow(self.image_data,aspect='auto',extent=[self.pageOffset,s
elf.pageOffset+self.pageSizeSamps,self.numChans,1])

from:

self.myImage = self.axes.imshow(self.image_data,aspect='auto')

The old version zooms just fine with no error.  This code is called in a
menu event handler

 

Here is how I created the figure  toolbar:

 

#

def SetupPlot(self):

self.figure = Figure()

self.axes = self.figure.add_subplot(111)

self.canvas = FigureCanvas(self, -1, self.figure)

self.data = np.zeros((self.numChans,self.pageSizeSamps))

self.myImage = self.axes.imshow(self.data,aspect='auto')

self.sizer.Add(self.canvas,pos=(1,1))

self.add_toolbar()  

 

 

#

def add_toolbar(self):

self.toolbar = NavigationToolbar2Wx(self.canvas)

self.toolbar.Realize()

# On Windows platform, default window size is incorrect, so set

# toolbar width to figure width.

tw, th = self.toolbar.GetSizeTuple()

fw, fh = self.canvas.GetSizeTuple()

# By adding toolbar in sizer, we are able to put it at the
bottom

# of the frame - so appearance is closer to GTK version.

# As noted above, doesn't work for Mac.

self.toolbar.SetSize((fw, th))

self.sizer.Add(self.toolbar,pos=(2,1))

# update the axes menu on the toolbar

self.toolbar.update()

 

Here is the error Traceback:

Traceback (most recent call last):

  File
C:\Python25\Lib\site-packages\matplotlib\backends\backend_wx.py, line
1

225, in _onLeftButtonUp

FigureCanvasBase.button_release_event(self, x, y, 1, guiEvent=evt)

  File C:\Python25\Lib\site-packages\matplotlib\backend_bases.py, line
1198, i

n button_release_event

self.callbacks.process(s, event)

  File C:\Python25\Lib\site-packages\matplotlib\cbook.py, line 155, in
process

 

func(*args, **kwargs)

  File C:\Python25\Lib\site-packages\matplotlib\backend_bases.py, line
2048, i

n release_zoom

self.draw()

  File C:\Python25\Lib\site-packages\matplotlib\backend_bases.py, line
2070, i

n draw

self.canvas.draw()

  File
C:\Python25\Lib\site-packages\matplotlib\backends\backend_wxagg.py,
lin

e 60, in draw

FigureCanvasAgg.draw(self)

  File
C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py, line

279, in draw

self.figure.draw(self.renderer)

  File C:\Python25\Lib\site-packages\matplotlib\figure.py, line 772,
in draw

for a in self.axes: a.draw(renderer)

  File C:\Python25\Lib\site-packages\matplotlib\axes.py, line 1545, in
draw

im.draw(renderer)

  File C:\Python25\Lib\site-packages\matplotlib\image.py, line 233, in
draw

im = self.make_image(renderer.get_image_magnification())

  File C:\Python25\Lib\site-packages\matplotlib\image.py, line 220, in
make_im

age

rx = widthDisplay / numcols

ZeroDivisionError: float division



From: matplotlib-users-boun...@lists.sourceforge.net
[mailto:matplotlib-users-boun...@lists.sourceforge.net] On Behalf Of
Lewis, Ambrose J.
Sent: Saturday, February 14, 2009 7:07 AM
To: matplotlib-users@lists.sourceforge.net
Subject: [Matplotlib-users] x axis  imshow...

 

Thanks Michael  Ryan!
Worked great!
amb


-Original Message-
From: Michael Droettboom [mailto:md...@stsci.edu]
Sent: Fri 2/13/2009 1:14 PM
To: Lewis, Ambrose J.
Cc: matplotlib-users@lists.sourceforge.net
Subject: Re: [Matplotlib-users] x axis  imshow...

You can pass extent=(left, right, bottom, top) to imshow to specify
what the pixels in the array correspond to in data space.

Mike

Lewis, Ambrose J. wrote:

 Hi All:

 I'm working on a wxPython GUI that uses matplotlib.

 This program reads chunks of a data file into a numpy array and than
 plots it using imshow.

 The first chunk works great. But, when I load chunks 2 to N, how can I
 specify the different values for the labels on the x axis?

 I tried using axes.set_xlim. This did reposition the x axis as
 hoped, but the data is always being drawn back at the zero offset.

 Is there a way to tell the axis to map the array to a different x
range?

 I can't read the whole file at once, it's just too big

 THANXS

 amb






--
 Open Source 

[Matplotlib-users] updating colorbar to match new image data...

2009-02-16 Thread Lewis, Ambrose J.
Hi All:

I'm using the following code to create and display an image with a
colorbar.  Later on, I read data from a file and update the image.  

How do I refresh the colorbar to match this new data?  Uncommenting the
line in my ReadFromFile call below generates a new colorbar.  I'd just
like to replace the existing one to match the new data.

I'm using Python 2.5.2, wx 2.8.7.1, and Matplotlib 0.98.5.2 on win32.

THANXS

amb

 

 

#

def SetupPlot(self):

self.figure = Figure()

self.axes = self.figure.add_subplot(111)

self.canvas = FigureCanvas(self, -1, self.figure)

self.data = np.zeros((self.numChans,self.pageSizeSamps))

self.myImage = self.axes.imshow(self.data,aspect='auto')

self.cbar =
self.figure.colorbar(self.myImage,ticks=[0,100],orientation='horizontal'
)

self.sizer.Add(self.canvas,pos=(1,1),span=(1,2))

self.add_toolbar()  

 

#

def ReadFromFile(self):

if self.filename==:

print pick a file first!

else:

# bunch of code to read from file via numpy fromfile lives
here...

self.image_data = abs(fftshift(data,axes=[0]))

self.myImage =
self.axes.imshow(self.image_data,aspect='auto',extent=[self.pageOffset,s
elf.pageOffset+self.pageSizeSamps,0,self.numChans])

#self.cbar =
self.figure.colorbar(self.myImage,orientation='horizontal')

self.canvas.draw()

--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] updating colorbar to match new image data...

2009-02-16 Thread João Luís Silva
Lewis, Ambrose J. wrote:
 Hi All:
 
 I’m using the following code to create and display an image with a 
 colorbar.  Later on, I read data from a file and update the image.  
 
 How do I refresh the colorbar to match this new data? 

For a colorbar cb I use:

cb.set_clim(vmin=min_value,vmax=max_value)
cb.draw_all()

With this method you have to calculate the minimum and maximum values first.

JLS


--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] how to make scatter plot and bar graphs in same figure?

2009-02-16 Thread Ryan May
On Mon, Feb 16, 2009 at 7:22 AM, Manuel Metz mm...@astro.uni-bonn.dewrote:

 Attached is a very simple example that shows how to do something similar
 to scatterhist in matplotlib


That's a nice example.  Are you going to check that into SVN?

Ryan

-- 
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Venn diagrams

2009-02-16 Thread jason-sage
Ian Harry wrote:
 Hi all,

 Is there any simple way in matplotlib, or in any other python library, to
 make a simple Venn diagram, I want to show three events and their
 intersections? I have tried googling for any hints but didn't find anything.

   

You can use Sage (http://www.sagemath.org or http://sagenb.org)

http://wiki.sagemath.org/interact/misc#AnInteractiveVennDiagram

(scroll down to see the picture; email me off-list if you'd like help in 
setting up an account or installing Sage; you can use Sage as a python 
library).

Even if you don't use Sage and something like the interactive Venn 
diagram listed in the URL gives you relevant code for creating such a 
thing in matplotlib.

Sage uses matplotlib in the background to actually draw the Venn diagram.

Thanks,

Jason













--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] updating colorbar to match new image data...

2009-02-16 Thread Eric Firing
Lewis, Ambrose J. wrote:
 Hi All:
 
 I’m using the following code to create and display an image with a 
 colorbar.  Later on, I read data from a file and update the image.  
 
 How do I refresh the colorbar to match this new data?  Uncommenting the 
 line in my “ReadFromFile” call below generates a new colorbar.  I’d just 
 like to replace the existing one to match the new data.
 
 I’m using Python 2.5.2, wx 2.8.7.1, and Matplotlib 0.98.5.2 on win32.
 
 THANXS
 
 amb
 
  
 
 
 #
 
 def SetupPlot(self):
 
 self.figure = Figure()
 
 self.axes = self.figure.add_subplot(111)
 
 self.canvas = FigureCanvas(self, -1, self.figure)
 
 self.data = np.zeros((self.numChans,self.pageSizeSamps))
 
 self.myImage = self.axes.imshow(self.data,aspect='auto')
 
 self.cbar = 
 self.figure.colorbar(self.myImage,ticks=[0,100],orientation='horizontal')
 
 self.sizer.Add(self.canvas,pos=(1,1),span=(1,2))
 
 self.add_toolbar() 
 

  
 #
 
 def ReadFromFile(self):
 
 if self.filename==:
 
 print pick a file first!
 
 else:
 
 # bunch of code to read from file via numpy fromfile lives here…
 
 self.image_data = abs(fftshift(data,axes=[0]))
 
 self.myImage = 
 self.axes.imshow(self.image_data,aspect='auto',extent=[self.pageOffset,self.pageOffset+self.pageSizeSamps,0,self.numChans])
 
 #self.cbar = 
 self.figure.colorbar(self.myImage,orientation='horizontal')
 
 self.canvas.draw()

The problem is that you are generating a new mappable, so the old 
colorbar is disconnected from the new image.  I haven't tested with an 
example, but it looks like you should be able to replace the calls in 
ReadFromFile to imshow with method calls on the original image object. 
Try using self.myImage.set_data, self.myImage.set_extent, and 
self.myImage.changed.  The latter will tell the colorbar to update itself.

Eric


--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] matplotlib on remote host Mac OS/X

2009-02-16 Thread Davide Lazzati
  Hi,

I'm trying to rum python and matlpotlib on a remote mac host from my
mac laptop. Both have Mac OS/X 10.5.6 and I'm using ssh -Y ...

However, the graphic window does not appear and, when I run p.show()
everything gets stuck.

Any insight?

Thanks

--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] matplotlib on remote host Mac OS/X

2009-02-16 Thread Jeff Whitaker
Davide Lazzati wrote:
   Hi,

 I'm trying to rum python and matlpotlib on a remote mac host from my
 mac laptop. Both have Mac OS/X 10.5.6 and I'm using ssh -Y ...

 However, the graphic window does not appear and, when I run p.show()
 everything gets stuck.

 Any insight?

 Thanks
   

Davide:  This will only work if you use an X11-based backend (like GTK 
Agg), since only X11 is forwarded over SSH.  If you're using a 
mac-native backend, the window is popping up on your mac's screen when 
you do show().

-Jeff


--
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users