SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S



1
(22)
2
(14)
3
(3)
4
(2)
5
(2)
6
(3)
7
(2)
8
(5)
9
(19)
10
(9)
11
(8)
12
(4)
13
(14)
14
(5)
15
(4)
16
(8)
17
(4)
18
(5)
19
(4)
20
(17)
21
(14)
22
(15)
23
(7)
24
(6)
25
26
(1)
27
(4)
28
(5)
29
(6)
30
(8)
31
(3)

Showing results of 219

<< < 1 2 3 4 5 6 .. 9 > >> (Page 4 of 9)
From: Chris F. <the...@gm...> - 2004年12月20日 16:21:14
I am encountering difficulties with the ylabel for plots that I
create. The label is placed over top of the tick mark labels on the y
axis. I have attempted to move the label using the set_position and
set_x commands. In this way, I have been able to move the label in
the y direction but not in the x direction. Essentially, I have been
unable to move the label to the left of the tick marks.
I am using the Enthought Edition of Python 2.3.3. I have matplotlib
in interactive mode using backend WX. I chose this configuration
because it seems best suited for use with PythonWin, which provides me
with autocompletion capabilities.
Any suggestions for resolving my problem?
Hi,
I am using:
IPython 0.6.6 with Python 2.3.3 and matplotlib-0.65
(checked that this is indeed the case)
Eric
P.S.: by the way, just to let you know (and I will pass the message on
the forum) I am sincerely very impressed by matplotlib in general
(in fact 5 people just switched to it in the last 2 weeks and our group
only amounts to 10 people so 1/2 still to convince!). So this
kind of ''negative'' feedback/question should not undermine the
rest of the soft for sure!!!
-- 
===============================================================
Observatoire de Lyon ems...@ob...
9 av. Charles-Andre tel: +33 4 78 86 83 84
69561 Saint-Genis Laval Cedex fax: +33 4 78 86 83 86
France http://www-obs.univ-lyon1.fr/eric.emsellem
===============================================================
>>>>> "Eric" == Eric Emsellem <ems...@ob...> writes:
 Eric> If there is no way out, I may have to just abandon (sigh)
 Eric> matplotlib for displaying images. But if there is one,
 Eric> please let me know!!
What version of matplotlib are you using?
 >>> import matplotlib
 >>> matplotlib.__version__
JDH
From: Alan I. <ai...@am...> - 2004年12月20日 14:51:37
On 2004年12月20日, Xavier Gnata wrote:
> I have tried to install matplotlib on windows :
> I have installed the enthought edition of python but I'm
> now unable to install matplotlib because I haven't visual
> C++ 6.0.
Why not use the Windows installer?
Works great.
hth,
Alan Isaac
Hi John,
> >> Fatal Python error: PyEval_RestoreThread: NULL tstate This
> >> application has requested the Runtime to terminate it in an
> Axel> unusual way.
> >> Please contact the application's support team for more
> >> information.
>
>This error has cropped up before in other contexts, always on win32,
>and I think a common cause is when you import the tk backend but do
>not start the tk mainloop (which is what show does), which is what I
>suspect you are doing since this is the default backend on win32. 
>
Yes, that's exactly what's happening. I'm using winXP with matplotlib 
0.65 and Activestate Python 2.3.2
>Does the
>minimal script, which does nothing but "import pylab" replicate the
>problem?
>
> 
>
This replictes the problem:
#!/usr/bin/env python
from pylab import *
rcParams['interactive'] = False
plot([1,2,3])
savefig('bla.ps')
>Do you know that you can run the script with -dPS from the shell to
>switch the backend? 
>
This is not really appropriate for me, since I read some user input and 
decide then (after the script is running) if I produce screen output or 
only a PS file :-(
If you or anyone else finds a solution, please let me know.
Many thanks,
 Axel
Hi Eric,
I am certain that John will be very delighted
to have another of the "matplotlib is slow" e-mails ;-).
Let me therefore add my 2 cents on this before he
wakes up (hope I have the timezones right)
and gives a qualified comment on this ...
On 2004年12月20日, Eric Emsellem wrote:
[... timings etc snipped ... ]
> Some info:
>
> running on a 1.6 Ghz/512 RAM centrino, linux, backend TkAgg, numarray,
> float array of 1600x1600 pixels.
> Using either imshow or figimage in ''ipython -pylab'' (tried different
> interpolation schemes
> the one I want being ''nearest'' in general)
Did you also try a Numeric array?
Another point: the imshow routine
has quite a bit of functionality
(color maps, interpolation, even alpha!!!)
which might cost some time (for example, I don't
know whether all this is done in python).
You can also pass a PIL (Python Image Library) image
to imshow.
So I would suggest:
 a) try a Numeric array
 b) try to convert you matrix to a PIL image
 and determine the time it takes to display that.
 (I would hope that this is much faster)
> To be frank, this is a killer for me, since I need to work on such images
> (signal processing, analysing) and display them each time changing the
> levels, centring etc etc. There is no way I will wait for 1 mn for 3
> successive displays...
>
> So the question now:
> - am I doing something wrong (backend, way to load the array, ...) or is it
> intrinsic to matplotlib ?
To really answer this question it would be useful
if you post your code (presumably simplified
by creating some mock data without reading from an external file).
By this one could also try this on other platforms ...
[...]
Best,
Arnd
From: Xavier G. <gn...@ob...> - 2004年12月20日 09:20:27
Hi,
I have tried to install matplotlib on windows :
I have installed the enthought edition of python but I'm now unable to install matplotlib because I haven't visual C++ 6.0.
Is it realy important to have everything python-related compiled with the same compiler?
Did someone succeed in installing matplotlib on windows without with the devcpp? (devcpp is based on the *free* compiler gcc).
Xavier Gnata.
From: Eric E. <ems...@ob...> - 2004年12月20日 09:01:24
Hi,
after some successful attempt at migrating routines from several plotting
and/or analysing softwares (pgplot, Midas, Iraf, etc) to Matplotlib
I now hit a big wall: the speed at which it can display a reasonably 
large image:
- I have a ''local'' library to read fits files [2D images] in python 
(after SWIG wrapping).
It converts these files into float - nmerix - arrays. I was then testing 
the ability
of matplotlib to display these 2D arrays.
Until now all was fine since I tested matplotlib on very small images 
(50x50 pixels).
Yesterday I tried with a 1600x1600 pixels image. NOTE: this is a very 
reasonable
size (and typical) in my work and I expect much much bigger ones in a 
near future
(up to 20 000 x 20 000).
==> Matplotlib takes ~20 seconds to display it !!!
 (after 12 seconds the window opens, and then it takes
 another 8 seconds to be displayed)
(as compared to less than .2 sec for Midas, Iraf and others so a factor 
of 100 at least!!!
 and less than a second using the ppgplot routines).
Some info:
running on a 1.6 Ghz/512 RAM centrino, linux, backend TkAgg, numarray, 
float array of 1600x1600 pixels.
Using either imshow or figimage in ''ipython -pylab'' (tried different 
interpolation schemes
the one I want being ''nearest'' in general)
To be frank, this is a killer for me, since I need to work on such images
(signal processing, analysing) and display them each time changing the
levels, centring etc etc. There is no way I will wait for 1 mn for 3 
successive displays...
So the question now:
- am I doing something wrong (backend, way to load the array, ...) or is it
 intrinsic to matplotlib ?
- is there a way out? (basically the same question..)
If there is no way out, I may have to just abandon (sigh) matplotlib for 
displaying images.
But if there is one, please let me know!!
Thanks
Eric
-- 
===============================================================
Observatoire de Lyon ems...@ob...
9 av. Charles-Andre tel: +33 4 78 86 83 84
69561 Saint-Genis Laval Cedex fax: +33 4 78 86 83 86
France http://www-obs.univ-lyon1.fr/eric.emsellem
===============================================================
From: Gary <pa...@in...> - 2004年12月19日 17:56:44
John Hunter wrote:
>>>>>>"Gary" == Gary <pa...@in...> writes:
>>>>>> 
>>>>>>
> Gary> I changed axes.py to remove 'min' from the 'from numerix
> Gary> import ...' line.
>
> Gary> Now it chokes on the very next line, from numerix import max
> Gary> as nxmax
>
>Let's be systematic. From the python shell, what happens when you do
>
> >>> import Numeric, MLab
> >>> Numeric.__version__
> >>> from MLab import min, max
> >>> import matplotlib
> >>> matplotlib.__version__
> >>> from matplotlib.numerix import min, max
> 
>
C:\Documents and Settings\Gary>python
Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on 
win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> import Numeric, MLab
 >>> Numeric.__version__
'23.6'
 >>> from MLab import min, max
 >>> import matplotlib
 >>> matplotlib.__version__
'0.65'
 >>> from matplotlib.numerix import min, max
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
ImportError: cannot import name min
>This will help narrow down whether it's a matplotlib or Numeric
>problem. Check the reported version numbers to make sure the numeric
>upgrade went as expected.
>
>Do you have only one python installed on your system?
> 
>
No. IBM (this is a thinkpad) has installed a python in c:\ibmtools\python22
I'm guessing they use it for some kind of maintenance.
Up to now, it's existance has been almost entirely benign, except for a 
warning I get when starting ipython. There's an issue somewhere with 
the case of the file fcntl.pyc (vs FCNTL.pyc) and/or the pythoncaseok 
environment variable. I swatted it down a couple of times, but it keeps 
coming back. I realize that things aren't exactly as they should be, 
but nothing has broken ... yet.
IBM has set pythonpath for me:
C:\Documents and Settings\Gary>echo %pythonpath%
C:\IBMTOOLS\utils\support;C:\IBMTOOLS\utils\logger
However, if I un-set %pythonpath% I still can't import pylab. (No 
change in behavior)
%path% references c:\ibmtools\python22, but only after all the listings 
for c:\python23. AFAICT no other environment variable references the 
IBM python. 
> Gary> Am I the only one suffereing from this? Isn't this impossible?
>
>My win32 setup appears to be working fine. It's clearly not
>impossible <wink>. Can we get some positive confirmation from other
>win32 users that 0.65 is working for them?
>
>JDH
>
> 
>
Thanks for your help on this. Since I appear to be an isolated case, 
shall we take this off-group?
From: Delbert D. F. <iq...@so...> - 2004年12月19日 03:19:51
After some more diligent searching I have the title, and 
axis labels working. I also have concluded that when embedded,
I will have to explicitly add and control something like the 
toolbar that appears in non-embedded mode. Any hints as to 
how to access the icons, etc would be helpful. I believe 
I have found most of the methods in the matplotlib interface
as distinct from the pylab interface. These would be panx, 
pany, zoomx, zoomy, zoomx, and zoomy. Somewhere, not yet
sorted out, is a way to save a figure when embedded. 
As a newcomer, that distinction between pylab and matplotlib
per se, was confusing to say the least.
Apparently there is much overlap but also some conflict when 
embedding in a GUI to add various controls. It is all rather
exciting but yet confusing at the same time. After 41 years
in software development, I get to OOP and Python!! 
Most of my usage has and will be Fortran but I have 
a smattering of C (a few months on an 8-bit machine), a log of
PL/1 a long time ago, some PDP 8-I assembly, and Basic. 
I have not used C++ and do not plan to do so. 
On Saturday 18 December 2004 06:07 pm, Delbert D. Franz wrote:
> I have been making good progress in creating a simple plotting
> package for time series read from files. I would now like
> to embed this into TK. Using some extrapolation and even
> a bit of guess work I have cut and pasted material from 
> .../examples/embedding_in_tk.py and have a nice window
> popping up with a quit button and part of what I want. 
> 
> The axis labels are missing and so is the toolbar-items
> that need to be present. How does one add labels for 
> the x and y axes as well as get the toolbar to appear
> in the example: embedding_in_tk.py? They both appear 
> when the non-embedded script is run.
> 
> I have searched the examples and tried sever val options
> but nothing works. Why the toolbar appears in one
> case but not the other is currently unclear to me. 
> 
> Quite impressed with matplotlib but the learning 
> curve is steep and I am feeling my way 
> along a tortuous cave in dim light!!
> 
> Delbert Franz
> 
> 
> 
> 
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real users.
> Discover which products truly live up to the hype. Start reading now. 
> http://productguide.itmanagersjournal.com/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
> 
From: Delbert D. F. <iq...@so...> - 2004年12月19日 02:07:23
I have been making good progress in creating a simple plotting
package for time series read from files. I would now like
to embed this into TK. Using some extrapolation and even
a bit of guess work I have cut and pasted material from 
.../examples/embedding_in_tk.py and have a nice window
popping up with a quit button and part of what I want. 
The axis labels are missing and so is the toolbar-items
that need to be present. How does one add labels for 
the x and y axes as well as get the toolbar to appear
in the example: embedding_in_tk.py? They both appear 
when the non-embedded script is run.
I have searched the examples and tried sever val options
but nothing works. Why the toolbar appears in one
case but not the other is currently unclear to me. 
Quite impressed with matplotlib but the learning 
curve is steep and I am feeling my way 
along a tortuous cave in dim light!!
Delbert Franz
From: Alan G I. <ai...@am...> - 2004年12月18日 16:53:05
On 2004年12月18日, John Hunter apparently wrote:
> Can we get some positive confirmation from other
> win32 users that 0.65 is working for them?
No problems yet on Win2000 Pro or Win XP.
(I have only run a few scripts since my upgrade,
but they all worked.)
Alan Isaac
From: John H. <jdh...@ac...> - 2004年12月18日 16:25:35
>>>>> "Gary" == Gary <pa...@in...> writes:
 Gary> I changed axes.py to remove 'min' from the 'from numerix
 Gary> import ...' line.
 Gary> Now it chokes on the very next line, from numerix import max
 Gary> as nxmax
Let's be systematic. From the python shell, what happens when you do
 >>> import Numeric, MLab
 >>> Numeric.__version__
 >>> from MLab import min, max
 >>> import matplotlib
 >>> matplotlib.__version__
 >>> from matplotlib.numerix import min, max
This will help narrow down whether it's a matplotlib or Numeric
problem. Check the reported version numbers to make sure the numeric
upgrade went as expected.
Do you have only one python installed on your system?
 Gary> Am I the only one suffereing from this? Isn't this impossible?
My win32 setup appears to be working fine. It's clearly not
impossible <wink>. Can we get some positive confirmation from other
win32 users that 0.65 is working for them?
JDH
>>>>> "Axel" == Axel Kowald <A.K...@gm...> writes:
 Axel> Hello, I have the following small problem when terminating a
 Axel> matplotlib script. Basically I do the following
 Axel> (interactive set to False): from pylab import *
 Axel> plot([1,2,3]) savefig('bla.ps')
 Axel> Now, this script does produce the PS file but then
 Axel> terminates with the error message:
 >> Fatal Python error: PyEval_RestoreThread: NULL tstate This
 >> application has requested the Runtime to terminate it in an
 Axel> unusual way.
 >> Please contact the application's support team for more
 >> information.
This error has cropped up before in other contexts, always on win32,
and I think a common cause is when you import the tk backend but do
not start the tk mainloop (which is what show does), which is what I
suspect you are doing since this is the default backend on win32. My
guess is the bug will go away if you call "show" at the end of the
script, but then you'll get the GUI window in addition to the ps file.
I'm not sure if there is a fix for this. Basically, you want to
create postscript output using the tk backend without having the tk
window popup. Perhaps Todd has some ideas about what to do with tk
internals to avoid this problem, but I don't know offhand. I'll try
and take a look next week when I have access to a win32 box. Does the
minimal script, which does nothing but "import pylab" replicate the
problem?
Do you know that you can run the script with -dPS from the shell to
switch the backend? Then you'll get the PS, no GUI popup, no error,
and you won't have to alter your script. You can also place an rc
file in the directory where the script resides and make PS the default
backend. When you want to switch to GUI mode, you can replace the
backend parameter with TkAgg again. But you'll need the show in that
case.
If you get any additional information from some of the tests suggested
above, let me know, because as I said this PyEval_RestoreThread has
popped up in many contexts, including multiple calls to show or not
calling it at all. I would like to fix these problems if possible so
that it "just works".
See related threads
http://sourceforge.net/mailarchive/message.php?msg_id=10271482
http://sourceforge.net/mailarchive/message.php?msg_id=10114470
JDH
Hello,
I have the following small problem when terminating a matplotlib script.
Basically I do the following (interactive set to False):
from pylab import *
plot([1,2,3])
savefig('bla.ps')
Now, this script does produce the PS file but then terminates with the 
error message:
 >Fatal Python error: PyEval_RestoreThread: NULL tstate
 >This application has requested the Runtime to terminate it in an 
unusual way.
 >Please contact the application's support team for more information.
I know that I could use the PS backend which avoids this problem, but I 
want to be flexible and either generate a PS file or some screen output 
and so I keep the default backend.
Since the script actually does what it should do the question is 
somewhat aesthetical:
How can I avoid this error message ?
Many thanks,
 Axel Kowald
From: Gary <pa...@in...> - 2004年12月18日 14:54:53
John Hunter wrote:
>>>>>>"Gary" == Gary <pa...@in...> writes:
>>>>>> 
>>>>>>
>
> Gary> ---------------------------------------------------------------------
> Gary> C:\Python23\Lib\site-packages\matplotlib\examples>python
> Gary> Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit
> Gary> (Intel)] on win32 Type "help", "copyright", "credits" or
> Gary> "license" for more information.
> >>>> from matplotlib.numerix import min
> Gary> Traceback (most recent call last): File "<stdin>", line 1,
> Gary> in ? ImportError: cannot import name min
> Gary> ----------------------------------------------------------------
>
>It looks like your Numeric install is screwed up. Remove
>site-packages Numeric to be on the safe side and grab the latest
>release for your python version at 
>
> http://sourceforge.net/projects/numpy
>
>reinstall and see if that fixes your problem. Let me know...
>
>JDH
>
> 
>
I'm sorry to report no change. I uninstalled Numeric and matplotlib, 
and reinstalled both, and nothing has changed. Am I the only one 
suffereing from this? Isn't this impossible?
I tried this several times. I uninstalled using the Control Panel Add 
and Remove feature, and then trashed the remaining directory. I 
searched the registry for lurking remnants (there was a mention of an 
uninstaller and .matplotlibrc. that's all. I left those entries 
alone.) I checked .matplotlibrc... nothing obviously unusual, just 
numerix:Numeric. A week ago I did a virus scan on the whole system, and 
ran spybot. (I'll probably run those again tonight for good measure.) 
The version of Numeric that I installed is 23.6, the latest. I'm using 
python 2.3.4
I changed axes.py to remove 'min' from the 'from numerix import ...' line.
Now it chokes on the very next line,
from numerix import max as nxmax
... and happy holidays.
-gary
From: Arnd B. <arn...@we...> - 2004年12月17日 18:37:20
Dear John,
thank you very much for your helpful answer!
On 2004年12月16日, John Hunter wrote:
> >>>>> "imaginee1" == imaginee1 <ima...@gm...> writes:
[... snip frame rates ...]
> 1000 frames per second?? A typical top of the line monitor refreshes
> at 75-100 FPS. How can you get 1000 frames per second? I'll humbly
> suggest that you're not accurately measuring the true refresh rate of
> xplt, while graciously acknowledging that xplt is much faster than
> matplotlib.
>
> Also, what refresh rate do you really need? DVD refreshes at 30FPS
> and monitors typically around 75FPS. I suspect Andrew can tell us the
> limits of the human visual system in terms of the maximal refresh rate
> that is perceptible. I'm assuming you want to display these
> animations to humans and not flies, which of course would be a
> different story :-)
That would be an interesting research project, but
makes grant applications more complicated due to animal experiments ;-).
The FPS numbers give us an estimate on the speed of
the drawing process (see also below).
> I certainly agree that there are things matplotlib can, should and
> will do to make this process faster. The first problem is that the
> entire figure is updated with every frame. It would be much more
> efficient in animated mode to designate certain elements only for
> update. These elements could store the background image of their
> bounding box, and on each update erase themselves (restore the
> background) and redraw themselves with the new data. By limiting
> redraws to only sections of the canvas, and only certain plot
> elements, we should be able to get at least a 2x speedup, I'm
> guessing.
We have a question here concerning the example you gave: is
the whole screen updated with every `draw()`,
including the axes and labels?
If so there might be another (simpler) possibility
by just updating the white plot-area.
A problem might be the inward pointing tics.
((For the PlottingCanvas we solved this by having
ticks pointing outward and using a separate frame
for the inside of the plot)).
> imaginee1> More generally, our impression is that with matplotlib
> imaginee1> the code tends to be more complicated (timers, classes
> imaginee1> etc.) than the scipy.xplt version. Maybe there are
> imaginee1> better ways to achieve what we want (but we haven't
> imaginee1> found them yet ;-).
>
> All this complication arises in attempting to deal with the mainloop.
> You should be able to skip all this cruft, as you did for your tkagg
> example, by running in interactive mode
>
> import matplotlib
> matplotlib.use('GTKAgg')
> matplotlib.interactive(True)
> from matplotlib.matlab import *
> import time
>
> x = arange(0,2*pi,0.01) # x-array
> axis([0.0,2*pi,-1.0,1.0]) # setup axis
> tstart = time.time()
>
> line, = plot(x,sin(x))
> for i in arange(1,200):
> line.set_ydata(sin(x+i/10.0))
> draw()
>
> print 'FPS:' , 200/(time.time()-tstart)
This is indeed very nice and works (basically) the same for all backends.
For this particular example we get:
 Double buffered Resizable
xplt no no
tkagg yes yes
gtk yes (but: frameshift) no
gtkagg no no
wx no no
wxagg no no
Interestingly, in this dynamics example
tkagg and gtk seem to have double buffering,
i.e. at the end of the dynamics a damaged area gets repainted.
With tkagg one can even resize the window at the end of the
dynamics.
(Actually, in the examples we posted double-buffering and resizing
worked).
Just a remark: For the gtk backend the double-buffer for
the repaint is one frame behind.
> Basically what matplotlib needs is a method like
>
> for i in arange(1,200):
> line.set_ydata(sin(x+i/10.0))
> fig.update(line)
>
> in place of the call to draw which redraws the entire figure.
That could indeed give an substantial speed-up.
> imaginee1> We also have a wx version, but the code is really
> imaginee1> complicated (any pointers on how to code our example
> imaginee1> most simply with the wx backend
> imaginee1> would be also very much appreciated).
>
> Well, you'd have to post your code, but the interactive trick above
> works for WX and WXAgg as well. But I doubt you'll beat GTK/GTKAgg
> performance wise with WX*.
We will either need Tk or WX for our Windows using students.
For Linux GTKAgg should do the job.
> With the example above, I get
>
> TkAgg 20 FPS
> GTK 50 FPS
> GTKAgg 36 FPS
> GTKCairo 15 FPS
> WX 11 FPS
> WXAgg 27 FPS
>
> The performance problem with Tk animation is well known and w/o
> resorting to platform dependent extension code, we don't have a good
> way to solve it.
I re-ran the tests on my laptop (PIII, 1.2 GHz)
 John laptop
 xplt 196
 TkAgg 20 FPS 9
 GTK 50 FPS 25
 GTKAgg 36 FPS 18
 WX 11 FPS 8
 WXAgg 27 FPS 11
(Unfortunately, some of the students have even slower machines ;-(.
To provide even more data (now a PIV, 2.8 GHz, debian sarge,
but a different X driver, factor 3 slower for xplt!)
 1000 pts 10000 pts 100000 pts
xplt 330 FPS 159 FPS 43 FPS
tkagg 23 FPS 16 FPS 4 FPS
gtk 40 FPS 19 FPS 5 FPS
gtkagg 31 FPS 24 FPS 4 FPS
wx 12 FPS 3 FPS 0 FPS
wxagg 24 FPS 16 FPS 4 FPS
This shows the FPS when the number of points being plotted
is increased.
To answer your question from above:
Something like 40 FPS for plotting 10000 points
would be optimal. On slower machines (like
my laptop) this might not be realizable.
> Note in matplotlib's defense, the fact that I can run the same
> animated code across platforms and 4 GUIs (FLTK not profiled here) w/o
> changing a single line of code says something about why it's slower
> that xplt, which targets a single windowing system and thus can make
> low level calls.
There is really no need to defend matplotlib
(and we better don't post matplotlib's feature list here
to emphasize the points we like!).
Best,
Nikolai and Arnd
From: Steve C. <ste...@ya...> - 2004年12月17日 16:41:08
On Thu, 2004年12月16日 at 20:21 +0300, Alexey Shamrin wrote:
> Why is GTKAgg is slower than GTK, but WXAgg is faster than WX?
Were you thinking that GTKAgg should be as fast or faster than GTK? 
In the past I think GTKAgg and GTK would do dynamic plots at about the
same speed. GTK used to allocate a new gtk.gdk.Pixmap and a new
RendererGTK for every figure draw operation, which was inefficient. I
updated the code so GTK now creates just one RendererGTK and just one
Pixmap (as long as its size does not increase). This should have made
GTK dynamic plotting faster (I didn't benchmark the changes so I don't
know for sure).
Its possible that similar changes for GTKAgg (or TkAgg or WX) would
speed up their dynamic plotting.
Steve
From: John H. <jdh...@ac...> - 2004年12月17日 14:52:36
>>>>> "Gary" == Gary <pa...@in...> writes:
 Gary> ---------------------------------------------------------------------
 Gary> C:\Python23\Lib\site-packages\matplotlib\examples>python
 Gary> Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit
 Gary> (Intel)] on win32 Type "help", "copyright", "credits" or
 Gary> "license" for more information.
 >>>> from matplotlib.numerix import min
 Gary> Traceback (most recent call last): File "<stdin>", line 1,
 Gary> in ? ImportError: cannot import name min
 Gary> ----------------------------------------------------------------
It looks like your Numeric install is screwed up. Remove
site-packages Numeric to be on the safe side and grab the latest
release for your python version at 
 http://sourceforge.net/projects/numpy
reinstall and see if that fixes your problem. Let me know...
JDH
From: Gary <pa...@in...> - 2004年12月17日 14:07:30
John Hunter wrote:
>[...]
>
>So removing "min" from the numerix import in axes.py should fix your
>problem, but\ I'm surprised that you are unable to import min from the
>numerix module. So before you fix it could you run a test script with
>
> > python myscript.py --verbose-helpful
>
>and report the output, particularly the numerix version information.
> 
>
---------------------------------------------------------------------
C:\Python23\Lib\site-packages\matplotlib\examples>python simple_plot.py 
--verbose-helpful
matplotlib data path C:\Python23\share\matplotlib
loaded rc file C:\Python23\share\matplotlib\.matplotlibrc
matplotlib version 0.65
verbose.level helpful
interactive is False
platform is win32
numerix Numeric 23.0
Traceback (most recent call last):
 File "simple_plot.py", line 3, in ?
 from pylab import *
 File "C:\Python23\Lib\site-packages\pylab.py", line 1, in ?
 from matplotlib.pylab import *
 File "C:\Python23\Lib\site-packages\matplotlib\pylab.py", line 184, in ?
 from axes import Axes, PolarAxes
 File "C:\Python23\Lib\site-packages\matplotlib\axes.py", line 6, in ?
 from numerix import MLab, absolute, arange, array, asarray, ones, 
transpose,
 \
ImportError: cannot import name min
-----------------------------------------------------------------------------------
>Perhaps Todd or I can then offer some insight into why the MLab.min
>function is not in the numerix namespace. I can do
>
> >>> from matplotlib.numerix import min
>
> 
>
correct:
---------------------------------------------------------------------
C:\Python23\Lib\site-packages\matplotlib\examples>python
Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on 
win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> from matplotlib.numerix import min
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
ImportError: cannot import name min
----------------------------------------------------------------
>with both Numeric and numarrary (latest release or CVS of both). My
>guess is that you cannot, and I'd like to know why.
>
>You appear cursed in your ability to get a working matplotlib win32
>upgrade! Maybe next time....
> 
>
Off topic comment: I have a number or little annoyances with various 
packages. Enough that I decided that I would try migrating to Linux. 
My Thinkpad has only a modest HD, so I didn't want to partition it. I 
could buy a bigger drive. But my Thinkpad can boot from an external USB 
device, so I started wondering if I could set up a Linux entirely on the 
external drive, and not touch my internal drive. If it worked, I'd have 
a portable Linux (portable, at least, to any machine that can boot from 
USB). 
I searched the web, and found mixed reviews concening the viability of 
this idea.
So I bought a USB enclosure (10ドル on eBay) and a 20 GB drive (33ドル on 
eBay, but read on) and went to town. After about three months of 
back-burner late-night tinkering, I got it working! A week later, my 
external HD crashed. I'm waiting for some extra time to appear before 
trying again.
If anyone is interested, I can provide some pointers. (once I'm 
finished, I'll post my experinces on a web site somewhere) Two initial 
comments: 1.) be very careful about buying a "Travelstar" HD on eBay. 
Apparantly manufacturing problems resulted in a large number of faulty 
units getting into circulation. 2.) I was *not* successful using 
Mandrake or Mepis. I was successful using Fedora FC2.
From: Chris B. <Chr...@no...> - 2004年12月16日 19:49:37
Alexey Shamrin wrote:
> Why is GTKAgg is slower than GTK, but WXAgg is faster than WX?
My question exactly. It's unlikely that that Wx has to be slower than 
WxAgg. In theory, at least, wx can take advantage of hardware 
accelerated drawing. On the other hand, wx does not know about NumPy 
arrays of either flavor, so if the Agg wrappers do, they could have an 
advantage there. Also, wx is known to be much slower with numarray 
arrays than Numeric arrays. I'd would certainly recommend that wx users 
stick with Numeric if they don't have a compelling reason to use numarray.
Another issue is font caching. Is the wx back-end doing font caching? 
this made a huge difference in the wxPyPlot code.
By the way, timing drawing on X is difficult, because the drawing calls 
return after the app has told X what to draw, not when it has been 
drawn. I suspect this might have something to do with the 1000 fps that 
was measured.
I hope I'll get a chance to do some work on the wx backend someday....
-Chris
-- 
Christopher Barker, Ph.D.
Oceanographer
 		
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chr...@no...
From: Alexey S. <sh...@gm...> - 2004年12月16日 17:21:17
Hello!
Why is GTKAgg is slower than GTK, but WXAgg is faster than WX?
Alexey
On 2004年12月16日 10:23:26 -0600, John Hunter
<jdh...@ac...> wrote:
> import matplotlib
> matplotlib.use('GTKAgg')
> matplotlib.interactive(True)
> from matplotlib.matlab import *
> import time
> 
> x = arange(0,2*pi,0.01) # x-array
> axis([0.0,2*pi,-1.0,1.0]) # setup axis
> tstart = time.time()
> 
> line, = plot(x,sin(x))
> for i in arange(1,200):
> line.set_ydata(sin(x+i/10.0))
> draw()
> 
> print 'FPS:' , 200/(time.time()-tstart)
> 
> TkAgg 20 FPS
> GTK 50 FPS
> GTKAgg 36 FPS
> GTKCairo 15 FPS
> WX 11 FPS
> WXAgg 27 FPS
From: John H. <jdh...@ac...> - 2004年12月16日 16:26:08
>>>>> "imaginee1" == imaginee1 <ima...@gm...> writes:
 imaginee1> Hi, we are trying to change from scipy.xplt to
 imaginee1> matplotlib and need advice on dynamic plots. With the
 imaginee1> examples at the end of this e-mail we get the following
 imaginee1> frame rates (PIV, 2.8 GHz, debian sarge, python 2.3,
 imaginee1> matplotlib 0.64)
 imaginee1> FPS xplt 1000 (mov_sin_xplt.py) TkAgg 20
 imaginee1> (mov_sin_mpl_tkagg.py) TkAgg2 5 (mov_sin_mpl_tkagg2.py)
 imaginee1> gtk 60 (mov_sin_mpl_gtk.py) gtkAgg 37
 imaginee1> (mov_sin_mpl_gtk.py)
1000 frames per second?? A typical top of the line monitor refreshes
at 75-100 FPS. How can you get 1000 frames per second? I'll humbly
suggest that you're not accurately measuring the true refresh rate of
xplt, while graciously acknowledging that xplt is much faster than
matplotlib.
Also, what refresh rate do you really need? DVD refreshes at 30FPS
and monitors typically around 75FPS. I suspect Andrew can tell us the
limits of the human visual system in terms of the maximal refresh rate
that is perceptible. I'm assuming you want to display these
animations to humans and not flies, which of course would be a
different story :-)
I certainly agree that there are things matplotlib can, should and
will do to make this process faster. The first problem is that the
entire figure is updated with every frame. It would be much more
efficient in animated mode to designate certain elements only for
update. These elements could store the background image of their
bounding box, and on each update erase themselves (restore the
background) and redraw themselves with the new data. By limiting
redraws to only sections of the canvas, and only certain plot
elements, we should be able to get at least a 2x speedup, I'm
guessing.
 imaginee1> More generally, our impression is that with matplotlib
 imaginee1> the code tends to be more complicated (timers, classes
 imaginee1> etc.) than the scipy.xplt version. Maybe there are
 imaginee1> better ways to achieve what we want (but we haven't
 imaginee1> found them yet ;-).
All this complication arises in attempting to deal with the mainloop.
You should be able to skip all this cruft, as you did for your tkagg
example, by running in interactive mode
 import matplotlib
 matplotlib.use('GTKAgg')
 matplotlib.interactive(True)
 from matplotlib.matlab import *
 import time
 x = arange(0,2*pi,0.01) # x-array
 axis([0.0,2*pi,-1.0,1.0]) # setup axis
 tstart = time.time()
 line, = plot(x,sin(x))
 for i in arange(1,200):
 line.set_ydata(sin(x+i/10.0))
 draw()
 print 'FPS:' , 200/(time.time()-tstart)
Basically what matplotlib needs is a method like
 for i in arange(1,200):
 line.set_ydata(sin(x+i/10.0))
 fig.update(line)
in place of the call to draw which redraws the entire figure.
 imaginee1> We also have a wx version, but the code is really
 imaginee1> complicated (any pointers on how to code our example
 imaginee1> most simply with the wx backend
 imaginee1> would be also very much appreciated).
Well, you'd have to post your code, but the interactive trick above
works for WX and WXAgg as well. But I doubt you'll beat GTK/GTKAgg
performance wise with WX*. With the example above, I get
 TkAgg 20 FPS
 GTK 50 FPS
 GTKAgg 36 FPS
 GTKCairo 15 FPS
 WX 11 FPS
 WXAgg 27 FPS
The performance problem with Tk animation is well known and w/o
resorting to platform dependent extension code, we don't have a good
way to solve it. 
Note in matplotlib's defense, the fact that I can run the same
animated code across platforms and 4 GUIs (FLTK not profiled here) w/o
changing a single line of code says something about why it's slower
that xplt, which targets a single windowing system and thus can make
low level calls.
JDH
From: John H. <jdh...@ac...> - 2004年12月16日 15:55:07
>>>>> "Gary" == Gary <pa...@in...> writes:
 from numerix import MLab, absolute, arange, array,
 ImportError: cannot import name
This looks like a bug. Right before the release I cleaned up axes.py
because the numerix min should not be mixed with the builtin min.
Hence I did
 # do not import numerix max! we are using python max. 
 from numerix import MLab, absolute, arange, array, asarray, ones, transpose, \
 log, log10, Float, ravel, zeros, Int32, Float64, ceil, min, indices, \
 shape, which
 from numerix import max as nxmax
 from numerix import min as nxmin
I should have also remove min from the numerix import (oversight),
which I already caught and fixed in CVS thanks to pychecker.
So removing "min" from the numerix import in axes.py should fix your
problem, but\ I'm surprised that you are unable to import min from the
numerix module. So before you fix it could you run a test script with
 > python myscript.py --verbose-helpful
and report the output, particularly the numerix version information.
Perhaps Todd or I can then offer some insight into why the MLab.min
function is not in the numerix namespace. I can do
 >>> from matplotlib.numerix import min
with both Numeric and numarrary (latest release or CVS of both). My
guess is that you cannot, and I'd like to know why.
You appear cursed in your ability to get a working matplotlib win32
upgrade! Maybe next time....
JDH
From: <ima...@gm...> - 2004年12月16日 11:24:54
Hi,
we are trying to change from scipy.xplt to matplotlib and
need advice on dynamic plots.
With the examples at the end of this e-mail we get the following
frame rates (PIV, 2.8 GHz, debian sarge, python 2.3, matplotlib 0.64)
 FPS
xplt 1000 (mov_sin_xplt.py)
TkAgg 20 (mov_sin_mpl_tkagg.py)
TkAgg2 5 (mov_sin_mpl_tkagg2.py)
gtk 60 (mov_sin_mpl_gtk.py)
gtkAgg 37 (mov_sin_mpl_gtk.py)
We also have a wx version, but the code is really complicated
(any pointers on how to code our example most simply with the wx backend
would be also very much appreciated).
Obviously, our matplotlib implementations run much
slower than scipy.xplt. Do you have any suggestions
on how we could improve the speed of the code?
More generally, our impression is that with matplotlib
the code tends to be more complicated (timers, classes etc.)
than the scipy.xplt version. Maybe there are
better ways to achieve what we want (but we haven't found them yet ;-).
Personally we don't mind too much about using classes, timers and events,
but
we want to replace scipy.xplt in a course on computational physics.
Most of the students have not been exposed to these concepts before,
so we have to avoid that completely.
Our experiences with scipy.xplt were very positive
as it allows a `linear programming style', which is very suitable
for beginners.
Best,
Lars and Arnd
###############################################
## mov_sin_xplt.py
from scipy.xplt import *
import time
x = arange(0,2*pi,0.01) # x-array
window(wait=1) # wait for plotting
animate(1) # use blitting
tstart = time.time()
for i in arange(10000):
 plg(sin(x+i/100.0),x,marks=0) # plot the function
 fma() # blit the offscreen pixmap
print 'FPS:' , 10000/(time.time()-tstart)
###############################################
## mov_sin_mpl_tkagg.py
import matplotlib
matplotlib.use('TkAgg')
matplotlib.interactive(True)
from matplotlib.matlab import *
from Numeric import *
import time
x = arange(0,2*pi,0.01) # x-array
lines = plot(x,sin(x)) # plot the function
axis([0.0,2*pi,-1.0,1.0]) # setup axis
tstart = time.time()
for i in arange(200):
 lines[0].set_ydata(sin(x+i/10.0)) # change y-data
 draw() # force redraw
print 'FPS:' , 200/(time.time()-tstart)
###############################################
## mov_sin_mpl_tkagg2.py
import matplotlib
matplotlib.use('TkAgg')
matplotlib.interactive(True)
from matplotlib.matlab import *
from Numeric import *
import time
x = arange(0,2*pi,0.01) # x-array
axis([0.0,2*pi,-1.0,1.0]) # setup axis
tstart = time.time()
or i in arange(200):
 clf()
 plot(x,sin(x+i/10.0))
print 'FPS:' , 200/(time.time()-tstart)
###############################################
## mov_sin_mpl_gtk.py
import matplotlib
matplotlib.use('GTKAgg') # matplotlib.use('GTK')
from matplotlib.matlab import *
from Numeric import *
import gtk
import time
x = arange(0,2*pi,0.01) # x-array
lines = plot(x,sin(x))
axis([0.0,2*pi,-1.0,1.0])
manager = get_current_fig_manager()
tstart = time.time()
def updatefig(*args):
 updatefig.count += 1
 lines[0].set_ydata(sin(x+updatefig.count/10.0))
 manager.canvas.draw()
 if updatefig.count>1000:
 print 'FPS:' , 1000/(time.time()-tstart)
 return gtk.FALSE
 return gtk.TRUE
updatefig.count=-1
gtk.idle_add(updatefig)
show()
-- 
GMX ProMail mit bestem Virenschutz http://www.gmx.net/de/go/mail
+++ Empfehlung der Redaktion +++ Internet Professionell 10/04 +++
4 messages has been excluded from this view by a project administrator.

Showing results of 219

<< < 1 2 3 4 5 6 .. 9 > >> (Page 4 of 9)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /