Re: [Matplotlib-users] Tutorial topics for SciPy'09 Conference

2009-07-01 Thread Fernando Perez
Hi,

On Mon, Jun 1, 2009 at 10:20 PM, Fernando Perez wrote:
> The time for the Scipy'09 conference is rapidly approaching, and we
> would like to both announce the plan for tutorials and solicit
> feedback from everyone on topics of interest.

rather than rehash much here, where it's not easy to paste a table,
I've posted a note with the poll results here:

http://fdoperez.blogspot.com/2009/06/scipy-advanced-tutorials-results.html

The short and plain-text-friendly version is the final topic ranking:

1   Advanced topics in matplotlib use
2   Advanced numpy
3   Designing scientific interfaces with Traits
4   Mayavi/TVTK
5   Cython
6   Symbolic computing with sympy
7   Statistics with Scipy
8   Using GPUs with PyCUDA
9   Testing strategies for scientific codes
10  Parallel computing in Python and mpi4py
11  Sparse Linear Algebra with Scipy
12  Structured and record arrays in numpy
13  Design patterns for efficient iterator-based scientific codes
14  Sage
15  The TimeSeries scikit
16  Hermes: high order Finite Element Methods
17  Graph theory with NetworkX


We're currently contacting speakers, and we'll let you know once a
final list is made with confirmed speakers.

Cheers,

f

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Zooming plot and transforms...

2009-07-01 Thread Sandro Tosi
On Tue, Jun 30, 2009 at 14:12, Fabrice Silva wrote:
> Le lundi 29 juin 2009 à 16:11 -0400, Jae-Joon Lee a écrit :
>> In the svn version of matplotlib, there are some helper classes to
>> ease this job a bit.
> Thanks for your pointer. Sadly the mpl.toolkits.axes_grid is not shipped
> by debian package, and downloading it requires other stuff. So I adapted

I'm the debian maintainer for matplotlib: if you need something
missing in Debian, get in touch with us, for example reporting a bug
against matplotlib requesting this toolkit.

I didn't check further, but probably it was not release because of
this phrase: "In the svn version of matplotlib".

Regards,
-- 
Sandro Tosi (aka morph, morpheus, matrixhasu)
My website: http://matrixhasu.altervista.org/
Me at Debian: http://wiki.debian.org/SandroTosi

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Highlighting the axes of coordinates

2009-07-01 Thread Torsten Bronger
Hallöchen!

I have a grid in my plot, but additionally I'd like to highlight the
"zero" axes, where x=0 or y=0, e.g. by showing them in red, or with
thicker lines.  How is this possible?

Tschö,
Torsten.

-- 
Torsten Bronger, aquisgrana, europa vetus
   Jabber ID: torsten.bron...@jabber.rwth-aachen.de
  or http://bronger-jmp.appspot.com


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] log scale the Y axis of a stem plot

2009-07-01 Thread Forrest Sheng Bao
Him

I had a stem plot. Now I want to make the Y axis of log scale. But I do not
want to use semilogy since I prefer the bars in stem plot. Do you know how
to only scale the Y axis?

Cheers,
Forrest

Forrest Sheng Bao, BSEE, Graduate Student
Dept. of Computer Science/Electrical Engineering
Texas Tech University, Lubbock, Texas
http://narnia.cs.ttu.edu
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Remove Patch Rectangle Around Plot

2009-07-01 Thread Mark Larsen
Hopefully a really simple question.  How do I remove the "box" (the
black rectangle) around the plot.

I tried

ax = fig.add_subplot(111)
ax.patch.set_visible(False)

but this makes the entire patch invisible.

Thanks,

Mark

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] ImportError: No module named mplot3d

2009-07-01 Thread David Paulsen
Dear List,

I tried running examples of 3D plots given from the matplotlib webpage, but
encountered the following error:


from mpl_toolkits.mplot3d import Axes3D
ImportError: No module named mplot3d

I am using the enthought package with matplotlib version 0.98.5.2

Any help on how to recover mplot 3d would be appreciated.

Thanks,
david


David Paulsen, M.S.
Graduate Student
Department of Psychology & Neuroscience
Duke University

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Remove Patch Rectangle Around Plot

2009-07-01 Thread João Luís Silva
Mark Larsen wrote:
> Hopefully a really simple question.  How do I remove the "box" (the
> black rectangle) around the plot.
> 
> I tried
> 
> ax = fig.add_subplot(111)
> ax.patch.set_visible(False)
> 
> but this makes the entire patch invisible.
> 
> Thanks,
> 
> Mark
> 
> --

I think what you want is

ax = fig.add_subplot(111,frameon=False)

JLS


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] ImportError: No module named mplot3d

2009-07-01 Thread Sandro Tosi
On Wed, Jul 1, 2009 at 16:55, David Paulsen wrote:
> from mpl_toolkits.mplot3d import Axes3D
> ImportError: No module named mplot3d
>
> I am using the enthought package with matplotlib version 0.98.5.2
>
> Any help on how to recover mplot 3d would be appreciated.

mplot3d still lives only under SVN and was not released yet (note that
there is a new version of matplotlib, 0.98.5.3).

So either you take the version from SVN (there's a guide on
matplotlib.sf.net) or wait for the next release :)

Regards,
-- 
Sandro Tosi (aka morph, morpheus, matrixhasu)
My website: http://matrixhasu.altervista.org/
Me at Debian: http://wiki.debian.org/SandroTosi

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Remove Patch Rectangle Around Plot

2009-07-01 Thread Mark Larsen
> I think what you want is
>
> ax = fig.add_subplot(111,frameon=False)
>
> JLS

D'oh, I knew it had to be easy.  Thanks JLS.

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] ImportError: No module named mplot3d

2009-07-01 Thread Gökhan SEVER
On Wed, Jul 1, 2009 at 9:55 AM, David Paulsen wrote:
> Dear List,
>
> I tried running examples of 3D plots given from the matplotlib webpage, but
> encountered the following error:
>
>
> from mpl_toolkits.mplot3d import Axes3D
> ImportError: No module named mplot3d
>
> I am using the enthought package with matplotlib version 0.98.5.2
>
> Any help on how to recover mplot 3d would be appreciated.
>
> Thanks,
> david
>
>
> David Paulsen, M.S.
> Graduate Student
> Department of Psychology & Neuroscience
> Duke University
>
> --
>
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
Hello,

mplot3d module is in the svn codebase. You will have to check-out the
sources and make a manual installation.

If you are on linux, it is a very easy process:

First a check-out with svn

svn co 
https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/matplotlib
matplotlib

and then

python setup.py install

Tadaa, the examples should work without any problems.

Gökhan

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] log scale the Y axis of a stem plot

2009-07-01 Thread Jae-Joon Lee
yscale("log")

http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.yscale

However the bars in the stem plot will be gone (because of the log 0).
It seems that there is no option for controling the  baseline location
in the stem command.
However, the code for stem command is quite short (~10 lines), so I
guess you can easily modify it to your taste.

Regards,

-JJ


On Wed, Jul 1, 2009 at 8:41 AM, Forrest Sheng Bao wrote:
> Him
>
> I had a stem plot. Now I want to make the Y axis of log scale. But I do not
> want to use semilogy since I prefer the bars in stem plot. Do you know how
> to only scale the Y axis?
>
> Cheers,
> Forrest
>
> Forrest Sheng Bao, BSEE, Graduate Student
> Dept. of Computer Science/Electrical Engineering
> Texas Tech University, Lubbock, Texas
> http://narnia.cs.ttu.edu
>
> --
>
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] to much points

2009-07-01 Thread Jae-Joon Lee
A snippet  of code does not help much.
Please try to post a small concise standalone example that we can run and test.

A general advise is to try to reduce the number of plot call, i.e.,
plot as may points as possible with a single plot call.

However, 50million points seems to be awful a lot.
6 inch x 6 inch figure with dpi=100 has 0.36 million number of pixels.
My guess is that it makes little sense to plot 50 million points here.

Anyhow, plotting 50million points with a single plot call dies with
some segfault error in my machine. So, I feel that  matplotlib may not
be suitable for your task. But, John or others may have some insight
how to deal with.

Regards,

-JJ



On Tue, Jun 30, 2009 at 1:22 PM, Markus Feldmann wrote:
> Hi All,
>
> my program lets slow down my cpu. This only appears if i plot to much
> points. I am not sure how many point i need to get this, normally i plot
> 3*14e6 + 8e3, that is round about 50million points. My system is a
> dual core 2GHz cpu with 2Gbyte Ram.
>
> Here is my method to plot,
>     def drawtransientall(self,min):
>         self.subplot = self.figure.add_subplot(111)
>         self.subplot.grid(True)
>         list_t1,list_peaks,t2,list_samples =
> self.computetransientall(min,min+self.maxitems)
>         offset = 0
>         color = ['green','red','blue','magenta','cyan']
>         markerPeaks = ['v','<','1','3','s']
>         markerSamples = ['^','>','2','4','p']
>         self.plots=[[],[]]
>         for i in range(len(self.showBands)):
>             self.plots[0] +=
> self.subplot.plot(list_t1[i],list_peaks[i],color=color[i],marker=markerPeaks[i],
>                                             linestyle='None')
>             self.plots[1] +=
> self.subplot.plot(t2,list_samples[i]+offset,color=color[i],
>
> marker=markerSamples[i],linestyle='None')
>             offset +=1
>
> self.subplot.set_xlim(t2[0]-np.abs(t2[-1]-t2[0])/100,t2[-1]+np.abs(t2[-1]-t2[0])/100)
>         ymax = np.amax(list_samples)
>         ymin = np.amin(list_samples)
>         self.subplot.set_ylim([ymin-np.abs(ymin)*0.1, ymax*1.2 + 2])
>         self.subplot.set_ylabel("abs(Sample(t)) und
> abs(Peak(t)+Offset)-->",fontsize = 12)
>         self.subplot.set_xlabel("Zeit in Sek. -->",fontsize = 12)
>
> Any ideas how to avoid the slow down of my cpu ?
>
> regards Markus
>
>
> --
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] to much points

2009-07-01 Thread Michael Droettboom
I agree with Jae-Joon here -- try to reduce the number of points before 
passing it to matplotlib.


However, I'm a little concerned about the segfault -- I'd rather 
matplotlib give a MemoryError exception if that's in fact what is 
happening.  Jae-Joon -- can you share your test that causes the segfault?


The snippet below completely hogs my machine for a few minutes, but 
then, correctly, aborts with a MemoryError.


This is on FC11 i586, Python 2.6, Numpy 1.3.



from matplotlib.pyplot import *
import numpy as np

points = np.random.random((5000, 2))
plot(points)
show()



Mike

On 07/01/2009 01:34 PM, Jae-Joon Lee wrote:

A snippet  of code does not help much.
Please try to post a small concise standalone example that we can run and test.

A general advise is to try to reduce the number of plot call, i.e.,
plot as may points as possible with a single plot call.

However, 50million points seems to be awful a lot.
6 inch x 6 inch figure with dpi=100 has 0.36 million number of pixels.
My guess is that it makes little sense to plot 50 million points here.

Anyhow, plotting 50million points with a single plot call dies with
some segfault error in my machine. So, I feel that  matplotlib may not
be suitable for your task. But, John or others may have some insight
how to deal with.

Regards,

-JJ



On Tue, Jun 30, 2009 at 1:22 PM, Markus Feldmann  wrote:
   

Hi All,

my program lets slow down my cpu. This only appears if i plot to much
points. I am not sure how many point i need to get this, normally i plot
3*14e6 + 8e3, that is round about 50million points. My system is a
dual core 2GHz cpu with 2Gbyte Ram.

Here is my method to plot,
 def drawtransientall(self,min):
 self.subplot = self.figure.add_subplot(111)
 self.subplot.grid(True)
 list_t1,list_peaks,t2,list_samples =
self.computetransientall(min,min+self.maxitems)
 offset = 0
 color = ['green','red','blue','magenta','cyan']
 markerPeaks = ['v','<','1','3','s']
 markerSamples = ['^','>','2','4','p']
 self.plots=[[],[]]
 for i in range(len(self.showBands)):
 self.plots[0] +=
self.subplot.plot(list_t1[i],list_peaks[i],color=color[i],marker=markerPeaks[i],
 linestyle='None')
 self.plots[1] +=
self.subplot.plot(t2,list_samples[i]+offset,color=color[i],

marker=markerSamples[i],linestyle='None')
 offset +=1

self.subplot.set_xlim(t2[0]-np.abs(t2[-1]-t2[0])/100,t2[-1]+np.abs(t2[-1]-t2[0])/100)
 ymax = np.amax(list_samples)
 ymin = np.amin(list_samples)
 self.subplot.set_ylim([ymin-np.abs(ymin)*0.1, ymax*1.2 + 2])
 self.subplot.set_ylabel("abs(Sample(t)) und
abs(Peak(t)+Offset)-->",fontsize = 12)
 self.subplot.set_xlabel("Zeit in Sek. -->",fontsize = 12)

Any ideas how to avoid the slow down of my cpu ?

regards Markus


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

 


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
   


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] to much points

2009-07-01 Thread Jae-Joon Lee
On Wed, Jul 1, 2009 at 2:34 PM, Michael Droettboom wrote:
> I agree with Jae-Joon here -- try to reduce the number of points before
> passing it to matplotlib.
>
> However, I'm a little concerned about the segfault -- I'd rather matplotlib
> give a MemoryError exception if that's in fact what is happening.  Jae-Joon
> -- can you share your test that causes the segfault?
>
> The snippet below completely hogs my machine for a few minutes, but then,
> correctly, aborts with a MemoryError.
>
> This is on FC11 i586, Python 2.6, Numpy 1.3.
>
> 
>
> from matplotlib.pyplot import *
> import numpy as np
>
> points = np.random.random((5000, 2))
> plot(points)
> show()
>

Yes, I also got MemoryError in this case during the plot() call.

But I got segfault for the code below.

x=random(50e6)
y=random(50e6)
plt.plot(x, y)
plt.show()

In this case, plot() runs fine, but segfault during show().

The segfault happens in the _path_module::affine_transform method of
src/_path.cpp.

I wonder if you can reproduce this.

-JJ


> 
>
> Mike
>
> On 07/01/2009 01:34 PM, Jae-Joon Lee wrote:
>
> A snippet  of code does not help much.
> Please try to post a small concise standalone example that we can run and
> test.
>
> A general advise is to try to reduce the number of plot call, i.e.,
> plot as may points as possible with a single plot call.
>
> However, 50million points seems to be awful a lot.
> 6 inch x 6 inch figure with dpi=100 has 0.36 million number of pixels.
> My guess is that it makes little sense to plot 50 million points here.
>
> Anyhow, plotting 50million points with a single plot call dies with
> some segfault error in my machine. So, I feel that  matplotlib may not
> be suitable for your task. But, John or others may have some insight
> how to deal with.
>
> Regards,
>
> -JJ
>
>
>
> On Tue, Jun 30, 2009 at 1:22 PM, Markus Feldmann
> wrote:
>
>
> Hi All,
>
> my program lets slow down my cpu. This only appears if i plot to much
> points. I am not sure how many point i need to get this, normally i plot
> 3*14e6 + 8e3, that is round about 50million points. My system is a
> dual core 2GHz cpu with 2Gbyte Ram.
>
> Here is my method to plot,
>     def drawtransientall(self,min):
>         self.subplot = self.figure.add_subplot(111)
>         self.subplot.grid(True)
>         list_t1,list_peaks,t2,list_samples =
> self.computetransientall(min,min+self.maxitems)
>         offset = 0
>         color = ['green','red','blue','magenta','cyan']
>         markerPeaks = ['v','<','1','3','s']
>         markerSamples = ['^','>','2','4','p']
>         self.plots=[[],[]]
>         for i in range(len(self.showBands)):
>             self.plots[0] +=
> self.subplot.plot(list_t1[i],list_peaks[i],color=color[i],marker=markerPeaks[i],
>                                             linestyle='None')
>             self.plots[1] +=
> self.subplot.plot(t2,list_samples[i]+offset,color=color[i],
>
> marker=markerSamples[i],linestyle='None')
>             offset +=1
>
> self.subplot.set_xlim(t2[0]-np.abs(t2[-1]-t2[0])/100,t2[-1]+np.abs(t2[-1]-t2[0])/100)
>         ymax = np.amax(list_samples)
>         ymin = np.amin(list_samples)
>         self.subplot.set_ylim([ymin-np.abs(ymin)*0.1, ymax*1.2 + 2])
>         self.subplot.set_ylabel("abs(Sample(t)) und
> abs(Peak(t)+Offset)-->",fontsize = 12)
>         self.subplot.set_xlabel("Zeit in Sek. -->",fontsize = 12)
>
> Any ideas how to avoid the slow down of my cpu ?
>
> regards Markus
>
>
> --
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
>
> --
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] to much points

2009-07-01 Thread Jae-Joon Lee
I tracked this down do line 962 of the _path.cpp.

double* vertex_out = (double*)PyArray_DATA(result);

My guess is that PyArray_SimpleNew at line 957 returns NULL for a
memory error instead of raising an exception, which makes result=NULL
and causes a segfault at line 962.

Since I'm not an c++ expert, I'll leave it to you, Michael.

Regards,

-JJ


On Wed, Jul 1, 2009 at 3:16 PM, Jae-Joon Lee wrote:
> On Wed, Jul 1, 2009 at 2:34 PM, Michael Droettboom wrote:
>> I agree with Jae-Joon here -- try to reduce the number of points before
>> passing it to matplotlib.
>>
>> However, I'm a little concerned about the segfault -- I'd rather matplotlib
>> give a MemoryError exception if that's in fact what is happening.  Jae-Joon
>> -- can you share your test that causes the segfault?
>>
>> The snippet below completely hogs my machine for a few minutes, but then,
>> correctly, aborts with a MemoryError.
>>
>> This is on FC11 i586, Python 2.6, Numpy 1.3.
>>
>> 
>>
>> from matplotlib.pyplot import *
>> import numpy as np
>>
>> points = np.random.random((5000, 2))
>> plot(points)
>> show()
>>
>
> Yes, I also got MemoryError in this case during the plot() call.
>
> But I got segfault for the code below.
>
> x=random(50e6)
> y=random(50e6)
> plt.plot(x, y)
> plt.show()
>
> In this case, plot() runs fine, but segfault during show().
>
> The segfault happens in the _path_module::affine_transform method of
> src/_path.cpp.
>
> I wonder if you can reproduce this.
>
> -JJ
>
>
>> 
>>
>> Mike
>>
>> On 07/01/2009 01:34 PM, Jae-Joon Lee wrote:
>>
>> A snippet  of code does not help much.
>> Please try to post a small concise standalone example that we can run and
>> test.
>>
>> A general advise is to try to reduce the number of plot call, i.e.,
>> plot as may points as possible with a single plot call.
>>
>> However, 50million points seems to be awful a lot.
>> 6 inch x 6 inch figure with dpi=100 has 0.36 million number of pixels.
>> My guess is that it makes little sense to plot 50 million points here.
>>
>> Anyhow, plotting 50million points with a single plot call dies with
>> some segfault error in my machine. So, I feel that  matplotlib may not
>> be suitable for your task. But, John or others may have some insight
>> how to deal with.
>>
>> Regards,
>>
>> -JJ
>>
>>
>>
>> On Tue, Jun 30, 2009 at 1:22 PM, Markus Feldmann
>> wrote:
>>
>>
>> Hi All,
>>
>> my program lets slow down my cpu. This only appears if i plot to much
>> points. I am not sure how many point i need to get this, normally i plot
>> 3*14e6 + 8e3, that is round about 50million points. My system is a
>> dual core 2GHz cpu with 2Gbyte Ram.
>>
>> Here is my method to plot,
>>     def drawtransientall(self,min):
>>         self.subplot = self.figure.add_subplot(111)
>>         self.subplot.grid(True)
>>         list_t1,list_peaks,t2,list_samples =
>> self.computetransientall(min,min+self.maxitems)
>>         offset = 0
>>         color = ['green','red','blue','magenta','cyan']
>>         markerPeaks = ['v','<','1','3','s']
>>         markerSamples = ['^','>','2','4','p']
>>         self.plots=[[],[]]
>>         for i in range(len(self.showBands)):
>>             self.plots[0] +=
>> self.subplot.plot(list_t1[i],list_peaks[i],color=color[i],marker=markerPeaks[i],
>>                                             linestyle='None')
>>             self.plots[1] +=
>> self.subplot.plot(t2,list_samples[i]+offset,color=color[i],
>>
>> marker=markerSamples[i],linestyle='None')
>>             offset +=1
>>
>> self.subplot.set_xlim(t2[0]-np.abs(t2[-1]-t2[0])/100,t2[-1]+np.abs(t2[-1]-t2[0])/100)
>>         ymax = np.amax(list_samples)
>>         ymin = np.amin(list_samples)
>>         self.subplot.set_ylim([ymin-np.abs(ymin)*0.1, ymax*1.2 + 2])
>>         self.subplot.set_ylabel("abs(Sample(t)) und
>> abs(Peak(t)+Offset)-->",fontsize = 12)
>>         self.subplot.set_xlabel("Zeit in Sek. -->",fontsize = 12)
>>
>> Any ideas how to avoid the slow down of my cpu ?
>>
>> regards Markus
>>
>>
>> --
>> ___
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>>
>> --
>> ___
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] to much points

2009-07-01 Thread Michael Droettboom
This should now be fixed on the maintenance branch and trunk.  A Numpy 
array allocation was not being NULL-checked in _path.cpp:affine_transform.


I know a MemoryError doesn't help the user much more than a segfault, 
but it always makes me feel better to get a real Python exception rather 
than exploding ;)


Mike

On 07/01/2009 03:16 PM, Jae-Joon Lee wrote:

On Wed, Jul 1, 2009 at 2:34 PM, Michael Droettboom  wrote:
   

I agree with Jae-Joon here -- try to reduce the number of points before
passing it to matplotlib.

However, I'm a little concerned about the segfault -- I'd rather matplotlib
give a MemoryError exception if that's in fact what is happening.  Jae-Joon
-- can you share your test that causes the segfault?

The snippet below completely hogs my machine for a few minutes, but then,
correctly, aborts with a MemoryError.

This is on FC11 i586, Python 2.6, Numpy 1.3.



from matplotlib.pyplot import *
import numpy as np

points = np.random.random((5000, 2))
plot(points)
show()

 


Yes, I also got MemoryError in this case during the plot() call.

But I got segfault for the code below.

x=random(50e6)
y=random(50e6)
plt.plot(x, y)
plt.show()

In this case, plot() runs fine, but segfault during show().

The segfault happens in the _path_module::affine_transform method of
src/_path.cpp.

I wonder if you can reproduce this.

-JJ


   



Mike

On 07/01/2009 01:34 PM, Jae-Joon Lee wrote:

A snippet  of code does not help much.
Please try to post a small concise standalone example that we can run and
test.

A general advise is to try to reduce the number of plot call, i.e.,
plot as may points as possible with a single plot call.

However, 50million points seems to be awful a lot.
6 inch x 6 inch figure with dpi=100 has 0.36 million number of pixels.
My guess is that it makes little sense to plot 50 million points here.

Anyhow, plotting 50million points with a single plot call dies with
some segfault error in my machine. So, I feel that  matplotlib may not
be suitable for your task. But, John or others may have some insight
how to deal with.

Regards,

-JJ



On Tue, Jun 30, 2009 at 1:22 PM, Markus Feldmann
wrote:


Hi All,

my program lets slow down my cpu. This only appears if i plot to much
points. I am not sure how many point i need to get this, normally i plot
3*14e6 + 8e3, that is round about 50million points. My system is a
dual core 2GHz cpu with 2Gbyte Ram.

Here is my method to plot,
 def drawtransientall(self,min):
 self.subplot = self.figure.add_subplot(111)
 self.subplot.grid(True)
 list_t1,list_peaks,t2,list_samples =
self.computetransientall(min,min+self.maxitems)
 offset = 0
 color = ['green','red','blue','magenta','cyan']
 markerPeaks = ['v','<','1','3','s']
 markerSamples = ['^','>','2','4','p']
 self.plots=[[],[]]
 for i in range(len(self.showBands)):
 self.plots[0] +=
self.subplot.plot(list_t1[i],list_peaks[i],color=color[i],marker=markerPeaks[i],
 linestyle='None')
 self.plots[1] +=
self.subplot.plot(t2,list_samples[i]+offset,color=color[i],

marker=markerSamples[i],linestyle='None')
 offset +=1

self.subplot.set_xlim(t2[0]-np.abs(t2[-1]-t2[0])/100,t2[-1]+np.abs(t2[-1]-t2[0])/100)
 ymax = np.amax(list_samples)
 ymin = np.amin(list_samples)
 self.subplot.set_ylim([ymin-np.abs(ymin)*0.1, ymax*1.2 + 2])
 self.subplot.set_ylabel("abs(Sample(t)) und
abs(Peak(t)+Offset)-->",fontsize = 12)
 self.subplot.set_xlabel("Zeit in Sek. -->",fontsize = 12)

Any ideas how to avoid the slow down of my cpu ?

regards Markus


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users



--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


 


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] ImportError: No module named mplot3d

2009-07-01 Thread Gökhan SEVER
On Wed, Jul 1, 2009 at 3:25 PM, David Paulsen wrote:
> Script passed the previous error point, and a different error string this
> time:
>
>  File "3D_line_plot_ex.py", line 32, in 
>    ax.add_collection3d(poly, zs=zs, zdir='y')
>
>  File
> "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/python2.5/site-
> packages/mpl_toolkits/mplot3d/axes3d.py", line 807, in add_collection3d
>    art3d.poly_collection_2d_to_3d(col, zs=zs, zdir=zdir)
>
>  File
> "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/python2.5/site-
> packages/mpl_toolkits/mplot3d/art3d.py", line 369, in
> poly_collection_2d_to_3d
>    segments_3d = paths_to_3d_segments(col.get_paths(), zs, zdir)
>
>  File
> "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/python2.5/site-
> packages/mpl_toolkits/mplot3d/art3d.py", line 138, in paths_to_3d_segments
>    segments.append(path_to_3d_segment(path, pathz, zdir))
>
>  File
> "/Library/Frameworks/Python.framework/Versions/4.2.30201/lib/python2.5/site-
> packages/mpl_toolkits/mplot3d/art3d.py", line 122, in path_to_3d_segment
>    pathsegs = path.iter_segments(simplify=False, curves=False)
> TypeError: iter_segments() got an unexpected keyword argument 'curves'
>

Huh, that is a very interesting and unexpected point for the
interpreter to complain. I have the same lines on installation and it
works without any problem.

One last idea, you could try to isolate your matplotlib installation
from Enthought's distro and try again, while having a separate Python,
too.

Someone in the list with more experience might have more to say on this issue.

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] memory leak with PyQt4 plus savefig or print_figure

2009-07-01 Thread Ralf Gommers
Hi,

I am working on a PyQt4 application with some embedded MPL figures, and am
also trying to save some figures as png's without displaying them. I am
observing huge memory increases (10s or 100s of Mb) the moment I try to save
a png. I reproduced the issue by combining two mpl examples,
http://matplotlib.sourceforge.net/examples/user_interfaces/embedding_in_qt4.htmland
http://matplotlib.sourceforge.net/examples/api/agg_oo.html. Full code is
attached. When pressing the "save figure" button, memory usage shoots up,
multiple clicks keep sending it higher (although not monotonically).

I tested on two different platforms
- Matplotlib 98.5.2 and Python 2.6.2 on Ubuntu.
- latest Enthought Python Distribution on Windows XP.

The function that does the png saving is:

def save_png():
"""Save an image as a png file"""

pngpath = 'test_mplsave.png'

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
x = arange(5e3)
ax.plot(x, sin(x))
canvas.print_figure(pngpath)

## tried all things commented out below, all makes no difference ##
#fig.savefig(pngpath)

#del(fig)
#del(canvas)
#del(ax)

#import matplotlib.pyplot as plt
#plt.close(fig)

#import gc
#gc.collect()

Commenting out the canvas.print_figure line fixes the issue.

Am I doing something obviously wrong, or mixing two incompatible ways of
doing things?

Cheers,
Ralf
#!/usr/bin/env python

# embedding_in_qt4.py --- Simple Qt4 application embedding matplotlib canvases
#
# Copyright (C) 2005 Florent Rougon
#   2006 Darren Dale
#
# This file is an example program for matplotlib. It may be used and
# modified with no restriction; raw copies as well as modified versions
# may be distributed without limitation.

import sys, os, random
from PyQt4 import QtGui, QtCore

from numpy import arange, sin, pi
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure


class MyMplCanvas(FigureCanvas):
"""Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
def __init__(self, parent=None, width=5, height=4, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
# We want the axes cleared every time plot() is called
self.axes.hold(False)

self.compute_initial_figure()

FigureCanvas.__init__(self, fig)
self.setParent(parent)

FigureCanvas.setSizePolicy(self,
   QtGui.QSizePolicy.Expanding,
   QtGui.QSizePolicy.Expanding)
FigureCanvas.updateGeometry(self)

def compute_initial_figure(self):
pass


class MyStaticMplCanvas(MyMplCanvas):
"""Simple canvas with a sine plot."""
def compute_initial_figure(self):
t = arange(0.0, 3.0, 0.01)
s = sin(2*pi*t)
self.axes.plot(t, s)


def save_png():
"""Save an image as a png file"""

pngpath = 'test_mplsave.png'

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(111)
x = arange(5e3)
ax.plot(x, sin(x))
#canvas.print_figure(pngpath)

## tried all things commented out below, all makes no difference ##
#fig.savefig(pngpath)

#del(fig)
#del(canvas)
#del(ax)

#import matplotlib.pyplot as plt
#plt.close(fig)

#import gc
#gc.collect()


class ApplicationWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setWindowTitle("application main window")

self.file_menu = QtGui.QMenu('&File', self)
self.file_menu.addAction('&Quit', self.fileQuit,
 QtCore.Qt.CTRL + QtCore.Qt.Key_Q)
self.menuBar().addMenu(self.file_menu)

self.help_menu = QtGui.QMenu('&Help', self)

self.main_widget = QtGui.QWidget(self)

l = QtGui.QVBoxLayout(self.main_widget)
sc = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100)
dc = QtGui.QPushButton('Save image')
l.addWidget(sc)
l.addWidget(dc)

self.main_widget.setFocus()
self.setCentralWidget(self.main_widget)

self.statusBar().showMessage("All hail matplotlib!", 2000)
self.connect(dc, QtCore.SIGNAL("clicked()"), save_png)

def fileQuit(self):
self.close()

def closeEvent(self, ce):
self.fileQuit()


qApp = QtGui.QApplication(sys.argv)

aw = ApplicationWindow()
aw.setWindowTitle("Try saving a simple png image")
aw.show()
sys.exit(qApp.exec_())
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Resize error with Qt4 backend

2009-07-01 Thread Brian Zambrano
As usual, I ended up figuring this out after I sent this question.

The trick was adding the central widget (FigureCanvas) to a QLayout, and
just ignoring the resizeEvent.  So, I just did:

vbox = QVBoxLayout()
vbox.addWidget(self.canvas)
self.setLayout(vbox)

in the custom QWidget which holds the canvas and everything worked fine.  I
also removed the overridden resizeEvent.

BZ

On Wed, Jul 1, 2009 at 1:17 PM, Brian Zambrano  wrote:

> Hi all,
>
> I'm having a problem with resizing a FigureCanvas using the Qt4 backend
> when the FigureCanvas is used alongside some dock widgets.  What happens is
> that the figure never grows beyond the original size set when the window or
> other dock widgets are expanded.  It's probably easier to look at a
> screenshot taken after I resized (grew) things a bit:
>
> http://brianz.s3.amazonaws.com/mpl_buggy.png
>
> The simple code I used to generate and test this is located here:
>
> http://brianz.s3.amazonaws.com/mpl_qt_buggy.py.txt
>
> To get the FigureCanvas to resize at all, I'm passing the resizeEvent from
> the parent widget down to the FigureCanvas's resizeEvent.
>
> Am I doing something incorrectly here or is this a bug?
>
> Thanks,
> BZ
>
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] matplotlib-0.98.5.3.win32-py2.6.exe

2009-07-01 Thread Stephen George
Hi,

I just downloaded matplotlib-0.98.5.3.win32-py2.6.exe from sourceforge.

I have an existing Application that works fine with
python   : 2.5.4 final 0
pyGTK: 2.12.1
GTK+ : 2.14.7
numpy: 1.2.1
matplotlib   : 0.98.5.2


Now I am trying the same App on
python version: 2.6.0 final 0
pyGTK version : 2.12.1
gtk+ version  : 2.16.2
numpy version : 1.3.0
matplotlib version: 0.98.5.3

I got the following traceback, I'm wondering:
 - Am I looking at changes due to the different matplotlib versions?
- Are some bits are missing in the downloaded installer ?
 - or is there incompatibility with the newer versions of GTK?

importing matplotlib
Traceback (most recent call last):
  File "C:\SVNproj\FrictionTests2\PyGTKFricPlot.py", line 17, in 
from matplotlib.backends.backend_gtk import FigureCanvasGTK as 
FigureCanvas
  File 
"C:\Python26\Lib\site-packages\matplotlib\backends\backend_gtk.py", line 
25, in 
from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK
  File 
"C:\Python26\Lib\site-packages\matplotlib\backends\backend_gdk.py", line 
29, in 
from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk

Thanks for any clues
Steve

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Pre-defined binning with hexbin ... impossible?

2009-07-01 Thread Jeff Whitaker
Alexandar Hansen wrote:
> Hello,
>
> I've been struggling with this for a while now and have effectively 
> two issues. One, how can I define the range over which hexbin ... 
> bins? And two, how do I change the background color of a plot?

Alexandar:  To change the background color to the lowest value in the 
colormap:

ax = plt.gca()
ax.set_axis_bgcolor(plt.cm.jet(0))


-Jeff
> The latter I thought would be trivial, but nothing I've tried has 
> worked.  Let's take the example:
>
> import numpy as np
> import matplotlib.cm  as cm
> import  matplotlib.pyplot as plt
>
> n = 10
> x = np.random.standard_normal(n)
> y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
> #xmin = x.min()
> #xmax = x.max()
> #ymin = y.min()
> #ymax = y.max()
> xmin = 0
> xmax = 10
> ymin = 0
> ymax = 30
>
> plt.hexbin(x,y, cmap=cm.jet)
> #plt.hexbin(x,y, cmap=cm.jet, extent=[xmin, xmax, ymin, ymax])
> plt.axis([xmin, xmax, ymin, ymax])
> plt.title("Hexagon binning")
> cb = plt.colorbar()
> cb.set_label('counts')
>
> plt.show()
>
>
> Let's say i'm only interested in the positive quadrant of the data, so 
> I only want to bin data in the range of 0-10 in x and 0-30 in y.  The 
> first thing I tried was to use the extent option to only bin the 
> specified range of data, but that gives these errors:
>
> [tesla:~/NMR/500-Tupp/IM7][349] HexBin.py
> Traceback (most recent call last):
>   File "HexBin.py", line 28, in 
> plt.hexbin(x,y, cmap=cm.jet, extent=[xmin, xmax, ymin, ymax])
>   File "/usr/lib64/python2.5/site-packages/matplotlib/pyplot.py", line 
> 1920, in hexbin
> ret =  gca().hexbin(*args, **kwargs)
>   File "/usr/lib64/python2.5/site-packages/matplotlib/axes.py", line 
> 5447, in hexbin
> collection.update(kwargs)
>   File "/usr/lib64/python2.5/site-packages/matplotlib/artist.py", line 
> 548, in update
> raise AttributeError('Unknown property %s'%k)
> AttributeError: Unknown property extent
>
>
> After that, I just set the plt.axis range to what I'm interested in. 
> However, the range not binned by hexbin shows up as white, instead of 
> the 0-count blue. I've tried adding facecolor, edgecolor, axisbg, and 
> who knows what else as part of plt.hexbin, plt.axis, and plt.savefig, 
> But most have no consequence on the plot. plt.savefig(myname, 
> facecolor='blue') successfully changed everything blue except the 
> white region within the plot.
>
> So, where am I going wrong? I'm finding myself out of options and 
> would ideally not like to trim or add false points to my data just to 
> get the axis and colors correct.
>
> Best,
> Alex
>
>
> 
>
> --
>   
> 
>
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>   


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] how to plot in discontinued Y-axis

2009-07-01 Thread Forrest Sheng Bao
Hi,

I am thinking about a plotting problem with the data set like this:
[3,2,4,100,5]

If I plot this list, then 100 will be very high and 3, 2, 4 and 5 will be
almost near 0. So, can I use a discontinued Y-axis, which has two ranges,
from 0 to 10 and from 90 to 110. Of course, there needs a tear between these
two parts to indicate that the Y-axis is not continuous. I draw a
illustration as attached.

Cheers,
Forrest

Forrest Sheng Bao, BSEE, Graduate Student
Dept. of Computer Science/Electrical Engineering
Texas Tech University, Lubbock, Texas
http://narnia.cs.ttu.edu
<>--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Zooming plot and transforms...

2009-07-01 Thread Fabrice Silva
Le mercredi 01 juillet 2009 à 10:13 +0200, Sandro Tosi a écrit :
> On Tue, Jun 30, 2009 at 14:12, Fabrice Silva wrote:
> > Le lundi 29 juin 2009 à 16:11 -0400, Jae-Joon Lee a écrit :
> >> In the svn version of matplotlib, there are some helper classes to
> >> ease this job a bit.
> > Thanks for your pointer. Sadly the mpl.toolkits.axes_grid is not shipped
> > by debian package, and downloading it requires other stuff. So I adapted
> 
> I'm the debian maintainer for matplotlib: if you need something
> missing in Debian, get in touch with us, for example reporting a bug
> against matplotlib requesting this toolkit.
> 
> I didn't check further, but probably it was not release because of
> this phrase: "In the svn version of matplotlib".

Hi Sandro,
thanks for packaging matplotlib for debian. I hope you did not
understand my words as a blame. In fact mpl_toolkits.axes_grid is still
in svn only and not in 0.98.x

I tried to download the mpl.toolkits.axes_grid module files, but I had
errors raising when importing that...

-- 
Fabrice Silva 
LMA UPR CNRS 7051


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Resize error with Qt4 backend

2009-07-01 Thread Brian Zambrano
Hi all,

I'm having a problem with resizing a FigureCanvas using the Qt4 backend when
the FigureCanvas is used alongside some dock widgets.  What happens is that
the figure never grows beyond the original size set when the window or other
dock widgets are expanded.  It's probably easier to look at a screenshot
taken after I resized (grew) things a bit:

http://brianz.s3.amazonaws.com/mpl_buggy.png

The simple code I used to generate and test this is located here:

http://brianz.s3.amazonaws.com/mpl_qt_buggy.py.txt

To get the FigureCanvas to resize at all, I'm passing the resizeEvent from
the parent widget down to the FigureCanvas's resizeEvent.

Am I doing something incorrectly here or is this a bug?

Thanks,
BZ
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users