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
|
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 Sat, 18 Dec 2004, 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 |
From: John H. <jdh...@ac...> - 2004-12-18 16:18:28
|
>>>>> "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 |
From: Axel K. <A.K...@gm...> - 2004-12-18 15:00:52
|
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 Thu, 16 Dec 2004, 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 Thu, 16 Dec 2004 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 +++ |
From: Alan G I. <ai...@am...> - 2004-12-16 03:21:10
|
On Wed, 15 Dec 2004, Gary apparently wrote: > from pylab import * Either first import everything from matplotlib or do instead from matplotlib.pylab import * hth, Alan Isaac |
From: Gary <pa...@in...> - 2004-12-16 03:05:49
|
As is becoming usual, my attempt to upgrade has run into a problem. WinXP, deleted previous ...\matplotlib before installing. None of the examples (from the new zip file) seem to run. They generally seem to start with from pylab import * but this fails, even from the command line. Bug, feature, or pilot error? :) -gary ---------------------------------------------------------- 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 pylab import * Traceback (most recent call last): File "<stdin>", line 1, in ? 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 |
From: Todd M. <jm...@st...> - 2004-12-16 00:02:37
|
On Wed, 2004-12-15 at 16:49 -0600, John Hunter wrote: > >>>>> "Eli" == Eli Glaser <eg...@se...> writes: > > Eli> Hello, Is there an easy way to set the initial position of a > Eli> Figure? I'm using Windows XP and new figures seem to pop up > Eli> in the typical Windows fashion where subsequent figures > Eli> appear about 20 pixels down and 20 pixels to the right of > Eli> previous figures. How can I tell each figure where to pop up > Eli> on screen? > > matplotlib doesn't provide explicit support for this, but it is > possible. What backend are you using. The matplotlib Figure is > embedded in a FigureCanvas which is typically a GUI widget embedded in > a GUI Window. In the pylab interface, the canvas is managed by a > FigureManager, which has a window attribute on most of the backends. > > Eg for the GTK backend, for example, you could do > > from pylab import * > > import gtk > > figure(1) > plot([1,2,3]) > manager = get_current_fig_manager() > > # see gtk.Window class docs at > # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html > manager.window.set_position(gtk.WIN_POS_CENTER) > > figure(2) > plot([1,2,3]) > manager = get_current_fig_manager() > > # see gtk.Window class docs at > # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html > manager.window.set_position(gtk.WIN_POS_NONE) > > show() > > For the WX* backend, manager.window is a wxFrame - > http://www.lpthe.jussieu.fr/~zeitlin/wxWindows/docs/wxwin_wxframe.html#wxframe > > For the TkAgg backend, manager.window is a Tkinter.Tk instance - > http://starship.python.net/crew/fredrik/tkclass/ClassToplevel.html > > Off the top of my head I don't know the right incantation for each > backend, but hopefully the classdocs I referenced above will help. > Perhaps Todd or Matthew can chime in with more Tk and WX information. In TkAgg it works like this: get_current_fig_manager().window.wm_geometry("+200+300") To set the window position to X=200, Y=300. Todd |
From: Eli G. <eg...@se...> - 2004-12-15 23:38:41
|
Thanks, John! That's exactly what I was looking for I'm using the WX backend and I was able to do: figure(1) plot([1,2,3]) manager = get_current_fig_manager() manager.window.SetPosition((100,100)) #or manager.window.Centre() Eli > Eg for the GTK backend, for example, you could do > > from pylab import * > > import gtk > > figure(1) > plot([1,2,3]) > manager = get_current_fig_manager() > > # see gtk.Window class docs at > # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html > manager.window.set_position(gtk.WIN_POS_CENTER) > > figure(2) > plot([1,2,3]) > manager = get_current_fig_manager() > > # see gtk.Window class docs at > # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html > manager.window.set_position(gtk.WIN_POS_NONE) > > show() > > For the WX* backend, manager.window is a wxFrame - > http://www.lpthe.jussieu.fr/~zeitlin/wxWindows/docs/wxwin_wxframe.html#wxframe > > For the TkAgg backend, manager.window is a Tkinter.Tk instance - > http://starship.python.net/crew/fredrik/tkclass/ClassToplevel.html > > Off the top of my head I don't know the right incantation for each > backend, but hopefully the classdocs I referenced above will help. > Perhaps Todd or Matthew can chime in with more Tk and WX information. > > While this arrangement may be suboptimal, we are resisting the urge to > become a GUI library. The temptations to abstract GUI functions for > use in matplotlib are many, and we are trying to keep this to a > manageable core (some event handling, some basic window management, > etc.). It's been on my list of things to do to investigate anygui, > however - http://anygui.sourceforge.net - which would appear to solve > our problems but might require a substantial refactoring of the > matplotlib backends. > > If you want full GUI control, you can embed matplotlib in your own GUI > application, following one of the many embedding_in_*.py examples in > the examples subdirectory of the matplotlib src distribution. > > If you come up with example code for your backend, please post it to > the list. > > JDH > > > ------------------------------------------------------- > 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: John H. <jdh...@ac...> - 2004-12-15 22:52:32
|
>>>>> "Eli" == Eli Glaser <eg...@se...> writes: Eli> Hello, Is there an easy way to set the initial position of a Eli> Figure? I'm using Windows XP and new figures seem to pop up Eli> in the typical Windows fashion where subsequent figures Eli> appear about 20 pixels down and 20 pixels to the right of Eli> previous figures. How can I tell each figure where to pop up Eli> on screen? matplotlib doesn't provide explicit support for this, but it is possible. What backend are you using. The matplotlib Figure is embedded in a FigureCanvas which is typically a GUI widget embedded in a GUI Window. In the pylab interface, the canvas is managed by a FigureManager, which has a window attribute on most of the backends. Eg for the GTK backend, for example, you could do from pylab import * import gtk figure(1) plot([1,2,3]) manager = get_current_fig_manager() # see gtk.Window class docs at # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html manager.window.set_position(gtk.WIN_POS_CENTER) figure(2) plot([1,2,3]) manager = get_current_fig_manager() # see gtk.Window class docs at # http://www.pygtk.org/pygtk2reference/class-gtkwindow.html manager.window.set_position(gtk.WIN_POS_NONE) show() For the WX* backend, manager.window is a wxFrame - http://www.lpthe.jussieu.fr/~zeitlin/wxWindows/docs/wxwin_wxframe.html#wxframe For the TkAgg backend, manager.window is a Tkinter.Tk instance - http://starship.python.net/crew/fredrik/tkclass/ClassToplevel.html Off the top of my head I don't know the right incantation for each backend, but hopefully the classdocs I referenced above will help. Perhaps Todd or Matthew can chime in with more Tk and WX information. While this arrangement may be suboptimal, we are resisting the urge to become a GUI library. The temptations to abstract GUI functions for use in matplotlib are many, and we are trying to keep this to a manageable core (some event handling, some basic window management, etc.). It's been on my list of things to do to investigate anygui, however - http://anygui.sourceforge.net - which would appear to solve our problems but might require a substantial refactoring of the matplotlib backends. If you want full GUI control, you can embed matplotlib in your own GUI application, following one of the many embedding_in_*.py examples in the examples subdirectory of the matplotlib src distribution. If you come up with example code for your backend, please post it to the list. JDH |
From: Eli G. <eg...@se...> - 2004-12-15 18:46:14
|
Hello, Is there an easy way to set the initial position of a Figure? I'm using Windows XP and new figures seem to pop up in the typical Windows fashion where subsequent figures appear about 20 pixels down and 20 pixels to the right of previous figures. How can I tell each figure where to pop up on screen? Thanks, Eli |
From: Nadia D. <den...@st...> - 2004-12-15 14:50:48
|
This is a warning to Solaris users - matplotlib 0.65 fails at runtime with fatal relocation error. The problem was fixed in setupext.py in CVS, (attached also to this message). Nadia Dencheva |
From: Mike R. <Rig...@UT...> - 2004-12-14 20:27:05
|
Hey Folks, We are having a bear of a time installing matplotlib into Python2.3 on Solaris9-sparc. The issues arises from "fatal: relocation error"s coming up when attempting to run matplotlib demos...but instead of getting into the details of this error, I want to simply ask. Has anyone successfully installed and run matplotlib on Solaris 9 (or any other version) sparc? If so, how did you build and install it? What version of gcc (or CC if that's the case), what switches, ETC? With thanks in advance! Mike |
From: John H. <jdh...@ac...> - 2004-12-14 19:13:46
|
>>>>> "Axel" == Axel Kowald <ko...@mo...> writes: Axel> Hi, I'm new to matplotlib and I have a question regarding Axel> axes. Once I created some axes (either with the axes() Axel> command or with subplot() ), how can I later find out the Axel> limits (left bottom, width, height) of the axes ? Maybe 7 >>> ax = subplot(111) 8 >>> ax.get_position() Out[8]: [0.125, 0.10999999999999999, 0.77500000000000002, 0.79000000000000004] You can change these values with ax.set_position. This works whether ax is an Axes or Subplot instance. Axel> some trick with get() ? Btw. is there somewhere a list of Axel> properties that I can get/set with get() or set() ? A timely question. This feature was just added in the last release, 0.65 >>> set(ax) # lists all settable properties >>> get(ax) # lists all properties and their values Works for any matplotlib artist or sequence of artists; see http://matplotlib.sf.net/examples/set_and_get.py This is still a work in progress - the introspection works in part by examining doc strings and I have finished porting all the artist docstrings to the new format. set(artist) should return a list of all properties and their legal settable values. If the settable values is listed as unknown, it means I haven't done that docstring yet. Also, I'm working on implementing Perry's suggestion of returning silent lists where appropriate, which will help in pretty printing the output, eg, of get(ax). But it's mostly functional, as is. JDH |
From: John H. <jdh...@ac...> - 2004-12-14 18:36:01
|
These notes, with links, can be read at http://matplotlib.sf.net/whats_new.html. - matlab namespace renamed pylab - see http://matplotlib.sf.net/matplotlib_to_pylab.py for details on conversion. ipython pylab users should grab version 0.6.6. You can import the matlab interface (now known as pylab interface) with from pylab import blah # OK from matplotlib.pylab import blah # OK from matplotlib.matlab import blah # Deprecated - contouring with the contour function!! Thanks to Nadia Dencheva. See examples/contour_demo.py - matlab compatible set and get introspection to determine settable properties and their values. See examples/set_and_get.py. Sample usage >>> lines = plot([1,2,3]) >>> set(lines) alpha: float antialiased or aa: [True | False] ...snip lots more... >>> get(lines) alpha = 1.0 antialiased or aa = True ...snip lots more... - Added many new matlab compatible colormaps - autumn bone cool copper flag gray hot hsv jet pink prism spring summer winter - Thanks Perry! - zorder to artists to control drawing order of lines, patches and text in axes. See examples/zorder_demo.py - mathtext in cairo backend. Also, printing now works to file object. Thanks Steve Chaplin. - printing in WX - Matthew Newville contributed a print button and preview for the wx backends. He also, who graciously volunteered to be the new wx backend maintainer. - matlab interface functions connect and disconnect replace mpl_connect and mpl_disconnect for event handling - Pass hold=True|False to any plotting command to override the current hold setting. The original hold setting will be restored at the end of the plot function - all text instances now have a bbox property which is a dict of Rectangle properties. If set, the text instance will display in a rectanglular bounding box. Example usage title('hi mom', bbox={'facecolor':'r', 'alpha':0.5}) - legend properties now exposed as kwargs. See help(legend) - ishold to inspect the hold state - new plotting functions spy, spy2 for matrix sparsity visualization - pylab interface functions rgrids and thetagrids for customizing the grid locations and labels for polar plots - see examples/polar_demo.py. - add ion, ioff and isinteractive to pylab interface for control of interactive mode. See updated discussion at http://matplotlib.sf.net/interactive.html Bugs fixed - - Fixed colorbar bug with scatter - JDH - SVG clipping problem - Thanks Norm Peterson - numerous small legend bugs fixed - zoom to rect works with reversed axis limits - thanks Gregory - fontsizing problem fixes, ps plots correctly sized, landscape support for ps output - smaller, leaner, meaner PS output - Thanks Jochen - make the Gtk backends build without an X-server connection - Thanks Jochen Downloads at http://matplotlib.sf.net JDH |