SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(1)
Nov
(33)
Dec
(20)
2004 Jan
(7)
Feb
(44)
Mar
(51)
Apr
(43)
May
(43)
Jun
(36)
Jul
(61)
Aug
(44)
Sep
(25)
Oct
(82)
Nov
(97)
Dec
(47)
2005 Jan
(77)
Feb
(143)
Mar
(42)
Apr
(31)
May
(93)
Jun
(93)
Jul
(35)
Aug
(78)
Sep
(56)
Oct
(44)
Nov
(72)
Dec
(75)
2006 Jan
(116)
Feb
(99)
Mar
(181)
Apr
(171)
May
(112)
Jun
(86)
Jul
(91)
Aug
(111)
Sep
(77)
Oct
(72)
Nov
(57)
Dec
(51)
2007 Jan
(64)
Feb
(116)
Mar
(70)
Apr
(74)
May
(53)
Jun
(40)
Jul
(519)
Aug
(151)
Sep
(132)
Oct
(74)
Nov
(282)
Dec
(190)
2008 Jan
(141)
Feb
(67)
Mar
(69)
Apr
(96)
May
(227)
Jun
(404)
Jul
(399)
Aug
(96)
Sep
(120)
Oct
(205)
Nov
(126)
Dec
(261)
2009 Jan
(136)
Feb
(136)
Mar
(119)
Apr
(124)
May
(155)
Jun
(98)
Jul
(136)
Aug
(292)
Sep
(174)
Oct
(126)
Nov
(126)
Dec
(79)
2010 Jan
(109)
Feb
(83)
Mar
(139)
Apr
(91)
May
(79)
Jun
(164)
Jul
(184)
Aug
(146)
Sep
(163)
Oct
(128)
Nov
(70)
Dec
(73)
2011 Jan
(235)
Feb
(165)
Mar
(147)
Apr
(86)
May
(74)
Jun
(118)
Jul
(65)
Aug
(75)
Sep
(162)
Oct
(94)
Nov
(48)
Dec
(44)
2012 Jan
(49)
Feb
(40)
Mar
(88)
Apr
(35)
May
(52)
Jun
(69)
Jul
(90)
Aug
(123)
Sep
(112)
Oct
(120)
Nov
(105)
Dec
(116)
2013 Jan
(76)
Feb
(26)
Mar
(78)
Apr
(43)
May
(61)
Jun
(53)
Jul
(147)
Aug
(85)
Sep
(83)
Oct
(122)
Nov
(18)
Dec
(27)
2014 Jan
(58)
Feb
(25)
Mar
(49)
Apr
(17)
May
(29)
Jun
(39)
Jul
(53)
Aug
(52)
Sep
(35)
Oct
(47)
Nov
(110)
Dec
(27)
2015 Jan
(50)
Feb
(93)
Mar
(96)
Apr
(30)
May
(55)
Jun
(83)
Jul
(44)
Aug
(8)
Sep
(5)
Oct
Nov
(1)
Dec
(1)
2016 Jan
Feb
Mar
(1)
Apr
May
Jun
(2)
Jul
Aug
(3)
Sep
(1)
Oct
(3)
Nov
Dec
2017 Jan
Feb
(5)
Mar
Apr
May
Jun
Jul
(3)
Aug
Sep
(7)
Oct
Nov
Dec
2018 Jan
Feb
Mar
Apr
May
Jun
Jul
(2)
Aug
Sep
Oct
Nov
Dec
S M T W T F S

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




Showing 3 results of 3

From: Eric F. <ef...@ha...> - 2008年09月01日 23:33:12
gl...@ff... wrote:
> Hi Eric,
> 
> I think I understand the two approaches you mention, I have about the 
> same mental distinction although with a different spin, maybe because 
> I come from finite element/data visualisation instead of image 
> manipulation: I see basically two type of 2D data that can be 
> visualized as a colormapped image:
> 
> a) point data, where you provide a collection of values with 
> associated coordinates. Algorithm is then fully responsible for 
> computing the "best" value to associate to other coordinates (not 
> provided by the user, but nonetheless needed to build a full image, 
> because there was a change of resolution or just some data lacking). 
> One can distinguish sub categories: are the points given on
> - an regular rectangular grid, *
> - a regular hexagonal/triangular grid,
> - an irregular rectangular grid *
> - another pattern? like mapped rectangular grid, ...
> - at arbitrary locations, without pattern
> for now in matplotlib only *-marked subcategories are supported, AFAIK
> b) cell data, where you provide a collection of cell (polygons), with 
> vertex coordinates and color-mapped data. Again we can distinguish su 
> categories:
> - cell-wise data, no interpolation needed *
> - or vertex-wise data, interpolation needed
> -averaging on the cell
> -proximity based interpolation
> -(bi)linear interpolation
> -higher order interpolation
> and also it can be subdivided using cell geometry criterium
> - cell part of a regular rectangular grid *
> - cell part of an irregular rectangular grid *
> - cell part of a mapped rectangular *
> - arbitray cells, but paving the plane (vertex coodinate + 
> connectivity table)
> - fully arbitrary cells, not necessarily continuously connected
> Again, AFAIK for now the *-marked categories are currently suported 
> in matplotlib.
> 
> In addition to those categories, one additional thing can be 
> considered when any kind of interpolation/extrapolation is performed: 
> Does the interpolation happen on the data, and then the interpolated 
> data is mapped to color (phong mapping/interpolation/shading in matlab 
> speach), or are is the interpolation performed on colors after the 
> initial user-provided data have been mapped (gouraud 
> mapping/interpolation/shading in matlab speach).
> 
> Some equivalences exists between cell based image and point based 
> image, in particular my patch can be seen as irregular rectangular 
> grid patches bith bilinear interpolation, or point data with bilinear 
> interpolation. It is more of the second one, as for example in 
> cell-data, one can expect to be able to set line styles for cell 
> boundaries, while in point data this would have no sense.
> 
> I do not see the fact that for point data the interpolation is choosen 
> by the algorithm as a bad thing: in fact, if one use point data, it is 
> because there is no cell information as such, so the fact that the 
> algorithm choose automatically the boundaries is an advantage.
> 
> For example, your NonUniformImage is a point-data image generator, 
> which work for non-uniform rectangular grids. It associate with each 
> pixel the data of the closest (using non-cartesian distance, but a 
> "manhatan distance" given by abs(x-x0) + abs(y-y0)) available point 
> data.
> My patch added bilinear interpolation, using x and y bilinear 
> interpolation between the four closest. Other type of interpolation 
> are possible, but more complex to implement.
> 
> The context in which we want to use NonUniformImage is not for image 
> processing, but for data visualisation: we have measurement data 
> dependent on two variables (RPM and frequency), and a classic way to 
> present such data is what is known in the field (acoustic radiation) 
> as a "waterfall diagram". However, the samples are not necessarily 
> taken on a regular grid. They are taken at best on an irregular grid 
> (especially for the RPM), and at worst using a non-obvious pattern. 
> There is no cell data here, boudaries are not really relevant, the 
> only thing that matter is to provide an attractive and 
> visualy-easy-to-parse image of 2D data which was sampled (or 
> simulated) on a set of points. In this context both interpolation 
> (nearest, usefull because if present only measured data extended in 
> the best way so that they cover the whole figure, without any actual 
> interpolation), and bilinear (show smoother variations, making more 
> easy to visually detect some pattern and interresting RPM/FREQUENCY 
> regions ) are interresting for our users...
> 
> A small example as you requested (a is withing the data, b is outside, 
> c is completely oustide)
> c
> 11 12 13
> a b
> 21 22 23
> 31 32 33
> 
> Nearest interpolation (patched (small error), but already present):
> color at a = color at 12 or 13 or 22 or 23, whichever is closest to a
> color at b = color at 13 or 23, whichever is closest to b
> color at c = color at 13
> Bilinear interpolation (new):
> S=(x23-x12)(y12-y23)
> color at a = color(12) * (x23-xa)(ya-y23)/S
> + color(13) * (xa-x22)(ya-y22)/S
> + color(22) * (x13-xa)(y13-ya)/S
> + color(23) * (xa-x12)(y12-ya)/S
> color at b = color(13) * (yb-y23)/(y13-y23)
> + color(23) * (y13-yb)/(y13-y23)
> color at c = color at 13
> 
> 
> As I mentioned in my first message, to complete the full array of 
> image generation (point data, cell data, various interpolation scheme 
> and geometric distribution of points or cell geometries, interpolation 
> before or after the color mapping) is a tremendous work. Not even 
> matlab has it completed, although it is far more complete than 
> matploblib for now and can be considered a worthy goal... But I think 
> this linear interpolation after color mapping on irregular rectangular 
> point data is already a usefull addition ;-)
> 
> Regards,
> 
> Greg.
Greg,
Thank you for your very clear and complete explanation.
I have committed your patch with only a few modifications:
0) I fixed a bug with non-agg backends by setting im.is_grayscale.
1) I changed the handling of the interpolation kwarg. The default is 
still 'nearest'.
2) I took Mike's suggestion to allocate acols and arows only if needed.
3) I renamed pcolor_nonuniform to image_nonuniform, modified it to show 
both types of interpolation, and added it to the set run by 
backend_driver.py. This is the most minimal test; one could write a 
whole test suite to exercise various inputs and options.
Among the questions that occur to me:
1) Should the functionality be exposed as an Axes method, and from there 
as a pyplot function? This could be done by integrating it into imshow, 
either via the argument signature or via kwargs for X and Y, or it could 
be a separate method.
2) If X and Y are in fact uniform, should the displayed image be the 
same as the present imshow? The big difference now is the boundary: 
NonUniformImage extends boundary values indefinitely while Image uses 
the background color for anything outside the image. I find the 
NonUniformImage behavior disconcerting.
3) Should caching be added to NonUniformImage? Every other class in the 
image.py module uses it.
4) Can we do anything with the internal function naming, at least, to 
make the distinction between point data functions and cell data 
functions? My thought was to use "image" for point data and "pcolor" 
for cell data, but this may reflect my ignorance and particular usage 
patterns from matlab days. What I would do is rename the _image.cpp 
pcolor function to nonuniform_image, or something like that, to 
distinguish it more clearly from pcolor2, which works with cell data.
Eric
From: Kevinsysu <kev...@21...> - 2008年09月01日 07:06:47
Hi all:
I'm using matplotlib for plotting in recent days. I love it especially the
usability and the plot quality.
My current work is to display a real time data set update into several 2D
graphs (5 or more, 400x400 graphs).
The environment I'm using is:
wxpython 2.8.8.1
matplotlib 0.98.3
python 2.5.1.1
Intel P IV 2.4G
Using the wxagg backend.
The issue I encoutered was that the graphs refresh took too much CPU time,
or in other word, the graph is not draw fast enough.
Sorry to raise this performance topic again, as I knew you've discussed a
lot on this topic, there're also some posts related to this, but I just
can't find a solution suite to me.
For single graph sized 400x400, my target is to reach 50 fps. Actually, it
can be easily achieved using the animation method: copy_from_bbox/
restore_region in the following link.
http://www.scipy.org/Cookbook/Matplotlib/Animations. (I reach 90+ fps with
this) The difficulty I got is that the above method is only updating the
bbox area, but I have to update the x/y axis as well. As John indicated in
another post, updating the x/y axis is the bottleneck of the draw process.
When I update the x/y axis at the same time, the performance drops to 20+
fps, which is lower than my requirement.
Below are my questions, any kind of answer or hints would be appreciated:
1.	Can I reach the performance requirement by using the wxagg? If yes, how
can I get there?
2.	Is there any existing backend can reach the performance requirement? Can
it be embedded with wxpython?
3.	What differences (especially performance aspect) between the wxagg and
agg backend? 
4.	As I know, in the recent post, Paul Kienzle is planning to develop the
opengl backend. Could the opengl backend have a great improvement on
performance compare with the wxagg?
Thanks a lot for reading
-- 
View this message in context: http://www.nabble.com/plot-performance-for-help-tp19249835p19249835.html
Sent from the matplotlib - devel mailing list archive at Nabble.com.
From: Citi, L. <lc...@es...> - 2008年09月01日 00:34:42
Hi all,
I am a matplotlib user. I am new to this list. Please pardon me if it is not the right place to post it.
I was looking for an automated way to generate colors for the plots when the number of lines is high (15+).
I ended up writing these lines. If you think they can be useful to others, here they are.
Cheers,
Luca
import scipy as S
def gen_color():
 i = 1.
 while 1:
 c = S.frexp(i)[0] * 2
 c = .2 * (1 + S.sin(12 * S.pi * c)) + .3 * (1 + S.sin(2 * S.pi * (c + [0., 1./3, 2./3])))
 yield c
 i += 2

Showing 3 results of 3

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