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 9 results of 9

From: Peter G. <pgr...@ge...> - 2004年12月10日 21:32:35
John Hunter wrote:
>>>>>> "Peter" == Peter Groszkowski <pgr...@ge...> writes:
>>>>>
>
> Peter> I use Hardy's multiquadric interpolation to to do the math,
> Peter> then use imshow (or pcolor) to make a surface map. I only
> Peter> have data for the 120 points (where the circle are - those
> Peter> are actuators), and interpolate the rest.
>
> Peter> If people are interested, I can clean up the code a little
> Peter> and post it.
>
> This sounds pretty close to matlab's griddata function. 
Yup. That's the functionality I needed. As it says in MATLAB docstrig 
below, GRIDDATA uses Delaunay triangulation however.
> It would be
> very nice to have this in matplotlib.mlab, perhaps as a wrapper to
> some core scipy functionality, which could be conditionally imported.
> What requirements does your code have -- pure python, extension code,
> scipy, numarray?
>
The interpolating is done all in python with the use of Numeric (this is 
what I have been using, and what my matplotlib installation uses - maybe 
will upgrade to numarray one of these days). Performance wise, It's not 
very practical for a very large number of points N as it has to solve a 
NxN system (my N=120 and takes ~2.3seconds on a P4 3.2Ghz with 2GB ram - 
cant remember how long MATLAB's griddata took). Maybe numarray would be 
faster?!
The drawing of the mirror, actuators, etc is done using matplotlibs 
imshow(), plot() and fill() - all very straight forward.
I will post the code in the next few days when I have a minute to clean 
it up a litte.
Cheers,
--
Peter Groszkowski Gemini Observatory
Tel: +1 808 9742509 670 N. A'ohoku Place
Fax: +1 808 9359235 Hilo, Hawai'i 96720, USA
> Here is the matlab docstring, FYI
>
> GRIDDATA Data gridding and surface fitting.
> ZI = GRIDDATA(X,Y,Z,XI,YI) fits a surface of the form Z = F(X,Y)
> to the data in the (usually) nonuniformly-spaced vectors (X,Y,Z)
> GRIDDATA interpolates this surface at the points specified by
> (XI,YI) to produce ZI. The surface always goes through the data
> points. XI and YI are usually a uniform grid (as produced by
> MESHGRID) and is where GRIDDATA gets its name.
>
> XI can be a row vector, in which case it specifies a matrix with
> constant columns. Similarly, YI can be a column vector and it
> specifies a matrix with constant rows.
>
> [XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI) also returns the XI and YI
> formed this way (the results of [XI,YI] = MESHGRID(XI,YI)).
>
> [...] = GRIDDATA(...,'method') where 'method' is one of
> 'linear' - Triangle-based linear interpolation (default).
> 'cubic' - Triangle-based cubic interpolation.
> 'nearest' - Nearest neighbor interpolation.
> 'v4' - MATLAB 4 griddata method.
> defines the type of surface fit to the data. The 'cubic' and 'v4'
> methods produce smooth surfaces while 'linear' and 'nearest' have
> discontinuities in the first and zero-th derivative respectively. All
> the methods except 'v4' are based on a Delaunay triangulation of the
> data.
>
> See also GRIDDATA3, GRIDDATAN, DELAUNAY, INTERP2, MESHGRID.
>
>
>
>
From: John H. <jdh...@ac...> - 2004年12月10日 21:31:11
>>>>> "Matt" == Matt Newville <new...@ca...> writes:
 Matt> For me, this block (run twice for a plot()) typically takes
 Matt> at least 50% of the plot time. Commenting out the
 Matt> tick.draw(renderer) and the following two 'extent' lines
 Matt> roughly doubles the drawing rate (though no grid or ticks
 Matt> are shown). I was surprised by this, but have not tracked it
 Matt> down much beyond this. I'm not using mathtext in the labels
 Matt> and had only standard numerical Tick labels in this example.
 Matt> I don't know if this is applicable to the slowness of the
 Matt> contour plots or error bars or if collections would help
 Matt> here. But it doesn't seem like tick drawing should be the
 Matt> bottleneck. Anyway, this seems like a simple place to test
 Matt> in other situations, and may be a good place to look for
 Matt> possible optimizations.
This is a known bottleneck. Text layout is non-trivial in matplotlib.
Put it this way: you don't get multiline text with arbitrary rotation,
font properties, horizontal, vertical, and multiline alignment for
free. Take a look at matplotlib.text.Text._get_layout.
I do cache the layout information because I've seen this performance
hit on animated demos before. But if your text properties are
changing, caching doesn't help. The cache key is returned by
Text.get_prop_tup.
It is probably worthwhile to run your animation through the profiler
so we can get a better idea of where exactly the problems are. I
think the matrix multiplication that _get_layout uses for rotations is
slow. It would be possible to special case the most common case
(rotation angle = 0) for some speedups, but the code is already fairly
hairy so I've been resisting special casing it.
FYI, the wxagg backend uses string methods to transfer the agg image
to the canvas. tk and gtk use extension code. fltk uses a python
buffer object. I investigated the latter for wxagg but couldn't make
it work. You may want to look into FigureCanvasWxAgg.draw to see if
you can do this image transfer faster, possibly adding some extension
code. If you do go the extension code route, I suggest you try/except
the import on your extension code and fall back on the string method
already in place.
Oh, I added "newville" to the list of CVS developers. Everyone,
welcome Matt, the new wx maintainer!
JDH
From: Perry G. <pe...@st...> - 2004年12月10日 21:24:59
John Hunter Wrote:
> >>>>> "Chris" == Chris Barker <Chr...@no...> writes:
> 
> Chris> Perry Greenfield wrote:
> 
> >>> Actually, I believe that the low level contour engine we are
> >>> using supports this. It takes 2-d arrays for both x and y that
> >>> represent the x and y coordinates of the array being contoured
> >>> and generates plotting points based on those x and y
> >>> arrays. These arrays allow for irregular grids.
> 
> Chris> completely irregular? or only orthogonal structured
> Chris> grids. From your description, it sounds like the
> Chris> later. Could it take an unstructured set of (x,y,z) points
> Chris> and contour the z values?
> 
> The latter, I believe. The contouring routine was implemented by
> Nadia Dencheva (CCd on this mail) and is based on a gist routine. You
Yes, the latter. For an unstructured set some other approach would be
needed. Sorry if I misunderstood. I thought what was being discussed
was irregular spacings rather than irregular organization.
Perry
From: John H. <jdh...@ac...> - 2004年12月10日 21:03:56
>>>>> "Eric" == Eric Emsellem <ems...@ob...> writes:
 Eric> Hi, 1. slow plot 2. cursor issue 3. key press event !
 Eric> ------- 1/ Here is the piece of code which is quite slow I
 Eric> think. Compared to pgplot this is a factor of more than
 Eric> 10. It does first draw a default plot (0,1 ?) and then
 Eric> overplot on it for each subplot.
 Eric> for this particular case I have 10 subplots. The slices are
 Eric> made of about 10-20 points each only (stored in a 3D array
 Eric> which is 48x5x20 points). I hope this answers the
 Eric> question. Sorry for the ''specifics''.
Plots of this size should be extremely fast - you should be able to
plot arrays 10 times this big with good performance. From your
description "It does first draw a default plot ..and then overplot on
it for each subplot." it sounds like you may have interactive mode
turned on. This would kill your performance in a case like this,
because the entire figure would be redrawn with the update of every
single plotting command. See
http://matplotlib.sourceforge.net/interactive.html and
http://matplotlib.sourceforge.net/faq.html#SHOW .
To definitively determine what mode you are in, run your script with 
 > python simple_plot.py --verbose-helpful
and verify that 'interactive is False'. Fernando Perez's ipython has
support for running scripts from the interactive shell, turning off
interactive mode for the duration of the run, and then restoring it.
If this doesn't solve your problem please
 - post your entire script
 - report the output of verbose-helpful (requires matplotlib 0.64)
 - what is your platform, machine specs, etc?
 - how are you running the script (IDE, from the command prompt, etc)
JDH
From: John H. <jdh...@ac...> - 2004年12月10日 20:52:40
>>>>> "Peter" == Peter Groszkowski <pgr...@ge...> writes:
 Peter> I use Hardy's multiquadric interpolation to to do the math,
 Peter> then use imshow (or pcolor) to make a surface map. I only
 Peter> have data for the 120 points (where the circle are - those
 Peter> are actuators), and interpolate the rest.
 Peter> If people are interested, I can clean up the code a little
 Peter> and post it.
This sounds pretty close to matlab's griddata function. It would be
very nice to have this in matplotlib.mlab, perhaps as a wrapper to
some core scipy functionality, which could be conditionally imported.
What requirements does your code have -- pure python, extension code,
scipy, numarray?
Here is the matlab docstring, FYI
 GRIDDATA Data gridding and surface fitting.
 ZI = GRIDDATA(X,Y,Z,XI,YI) fits a surface of the form Z = F(X,Y)
 to the data in the (usually) nonuniformly-spaced vectors (X,Y,Z)
 GRIDDATA interpolates this surface at the points specified by
 (XI,YI) to produce ZI. The surface always goes through the data
 points. XI and YI are usually a uniform grid (as produced by
 MESHGRID) and is where GRIDDATA gets its name.
 
 XI can be a row vector, in which case it specifies a matrix with
 constant columns. Similarly, YI can be a column vector and it
 specifies a matrix with constant rows.
 
 [XI,YI,ZI] = GRIDDATA(X,Y,Z,XI,YI) also returns the XI and YI
 formed this way (the results of [XI,YI] = MESHGRID(XI,YI)).
 
 [...] = GRIDDATA(...,'method') where 'method' is one of
 'linear' - Triangle-based linear interpolation (default).
 'cubic' - Triangle-based cubic interpolation.
 'nearest' - Nearest neighbor interpolation.
 'v4' - MATLAB 4 griddata method.
 defines the type of surface fit to the data. The 'cubic' and 'v4'
 methods produce smooth surfaces while 'linear' and 'nearest' have
 discontinuities in the first and zero-th derivative respectively. All
 the methods except 'v4' are based on a Delaunay triangulation of the
 data.
 
 See also GRIDDATA3, GRIDDATAN, DELAUNAY, INTERP2, MESHGRID.
From: John H. <jdh...@ac...> - 2004年12月10日 20:45:21
>>>>> "Chris" == Chris Barker <Chr...@no...> writes:
 Chris> Perry Greenfield wrote:
 >>> Actually, I believe that the low level contour engine we are
 >>> using supports this. It takes 2-d arrays for both x and y that
 >>> represent the x and y coordinates of the array being contoured
 >>> and generates plotting points based on those x and y
 >>> arrays. These arrays allow for irregular grids.
 Chris> completely irregular? or only orthogonal structured
 Chris> grids. From your description, it sounds like the
 Chris> later. Could it take an unstructured set of (x,y,z) points
 Chris> and contour the z values?
The latter, I believe. The contouring routine was implemented by
Nadia Dencheva (CCd on this mail) and is based on a gist routine. You
can read more about the core routine at
http://scipy.net/cgi-bin/viewcvsx.cgi/*checkout*/scipy1/xplt/src/gist/gcntr.c?rev=HEAD&content-type=text/plain.
The contour routines have been checked into CVS. A simple example can
be found in examples/contour_demo.py in CVS. We have some rudimentary
support for labeling (auto-legend and/or brute-force use of the text
command). It would be nice to develop a point and click labeling
widget and/or an auto-labeling routine. Contributors of course always
welcome!
JDH
From: John H. <jdh...@ac...> - 2004年12月10日 20:37:15
>>>>> "Humufr" == Humufr <hu...@ya...> writes:
 Humufr> Hello, I have a problem to plot some data.
 Humufr> I use "plot" to plot some data and "scatter" for other. I
 Humufr> obtain a plot whith the point trace with "scatter" are
 Humufr> behind the points from "plot". I tried to change the order
 Humufr> in the script but that change nothing. Do you know how to
 Humufr> do this? (I want use scatter because I want have a
 Humufr> specific size for this points)
I just added the long awaited zorder attribute to the Artist base
class in CVS, originally discussed here
http://sourceforge.net/mailarchive/message.php?msg_id=9363527.
There is a new example examples/zorder_demo.py that shows you how to
set the zorder. I'll include it below.
It will be in the next release, probably early next week
 #!/usr/bin/env python
 """
 The default drawing order for axes is patches, lines, text. This
 order is determined by the zorder attribute. The following default
 are set
 Artist Z-order
 Patch / PatchCollection 1
 Line2D / LineCollection 2
 Text 3
 You can change the order for individual artists by setting the zorder.
 In the fist subplot below, the lines are drawn above the patch
 collection from the scatter, which is the default.
 In the subplot below, the order is reversed
 """
 from pylab import *
 x = rand(20); y = rand(20)
 subplot(211)
 plot(x, y, 'r', lw=3)
 scatter(x,y,s=120)
 subplot(212)
 plot(x, y, 'r', zorder=1, lw=3)
 scatter(x,y,s=120, zorder=2)
 show()
From: John H. <jdh...@ac...> - 2004年12月10日 19:32:49
>>>>> "Arnold" == Arnold Moene <arn...@wu...> writes:
 Arnold> Dear all, At the moment I'm heavily using the scatter plot
 Arnold> (great!). But if I want to add a color bar (with the
 Arnold> command colorbar(), directly following the call to
 Arnold> scatter) to explain the meaning of the colors of the
 Arnold> patches, matplotlib (0.64) refuses to make a colorbar with
 Arnold> the following message:
I Arnold, thanks for alerting me to this problem. This was a bug, and
is now fixed in CVS. I should be releasing a new version of
matplotlib next week which has these changes plus more.
JDH
From: Alan G I. <ai...@am...> - 2004年12月10日 06:53:05
I have a few scripts that call show() multiple times.
(Why? Well I had pedagogical reasons: I like one
graph to come up at a time in class, in the order
I wish, with no other "distractions".)
These scripts work as I wish if run with execfile() from the
(default Python) interpreter prompt. (I.e., the first
figure is displayed, and when I close it the next is
displayed, etc.) If executed from the cmd line however they
fail:
 Fatal Python error: PyEval_RestoreThread: NULL tstate
 abnormal program termination
Can I add something to the scripts so that they behave
as I wish if executed from a cmd line? (Am I wrong to
believe this used to work until recently; say last
version number or so?)
Aside from my wishes, should the script fail in this
fashion (rather than being more gracefully rejected)?
I realize we have been warned against using show()
multiple times ...
Somewhat related:
can I control the order in which figures are displayed
when the show() command is given, or will the highest
numbered figure always display on top?
Thank you,
Alan Isaac
Win 2000, Python 2.3.3, MatPlotLib 0.63

Showing 9 results 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 によって変換されたページ (->オリジナル) /