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

Showing 8 results of 8

From: Darren D. <dd...@co...> - 2006年03月19日 23:22:22
I think I actually got the new api working with draw_markers and draw_lines in 
backend_ps. The transforms are done by passing the results of 
transform.as_vec6_val to postscript. I would appreciate it if someone would 
test it out and give me feedback. In order to do so, update from svn and 
unmask backend_ps.RendererPS._draw_markers (not _draw_markers_old) by 
removing the leading underscore. Try plotting things like
plot([0,1,2,3,4],'-o'); savefig('linear.eps')
plot([0,1,nan,3,4],'-o'); savefig('linear_nan.eps') # Not possible with the 
old API
semilogy([0,1,2,3,4],'-o'); savefig('nonlinear.eps')
semilogy([0,1,nan,3,4],'-o'); savefig('nonlinear_nan.eps') # Not possible with 
the old API
Are there other methods that need to be updated to use the new API? There are 
a bunch of unused methods in RendererPS that I will clean up once things have 
settled, please ignore them for now.
Darren
From: Eric F. <ef...@ha...> - 2006年03月19日 22:58:02
All,
Motivated in part by an old patch (1233294) submitted to sourceforge by 
Nikolai Hlubek, I took a look at how aspect ratio is handled in mpl, and 
concluded it wasn't quite right:
1) The aspect='preserve' kwarg in image caused the image to retain its 
aspect ratio only with some resize events, not with all. The 
implementation in the image.py code does not look right to me.
2) The aspect='equal' kwarg in axes.py did not respond to resize events 
at all.
3) I could not understand why there should be separate "aspect" kwargs 
for image and for axes.
Therefore I have reworked the aspect-handling code in axes.py, and I 
think it is working reasonably well. Indeed, I don't see any remaining 
need for an "aspect" kwarg in image.py, and I would like to take it out 
unless someone raises an objection.
I have also changed the aspect-related API to make it more flexible and 
self-explanatory:
 def set_aspect(self, aspect='auto', fixLimits=None,
 aspect_adjusts='position'):
 """
 aspect:
 'auto' - automatic; fill position rectangle with data
 'normal' - same as 'auto'; deprecated
 'equal' - same scaling from data to plot units for x and y
 A - a circle will be stretched such that the height
 is A times the width. aspect=1 is the same as
 aspect='equal'.
 aspect_adjusts:
 'position' - change width or height of bounding rectangle;
 keep it centered.
 'box_size' - as above, but anchored to lower left
 'datalim' - change xlim or ylim
 fixLimits: deprecated; False is aspect_adjusts='datalim';
 True is aspect_adjusts='position'
 ACCEPTS: ['auto' | 'equal' | aspect_ratio]
...
 def set_aspect_adjusts(self, aspect_adjusts = 'position'):
 """
 Must be called after set_aspect.
 ACCEPTS: ['position' | 'box_size' | 'datalim']
...
Anticipating that some additional work will need to be done, I have not 
yet made an entry in the CHANGELOG or API_CHANGES.
In addition to removing the aspect kwarg from image.py, I would like to 
take fixLimits out of set_aspect (above). No code in mpl or its 
examples depends on it, but this might break some user code, so for the 
present I have maintained compatibility.
One question: is there an easy way to automatically trigger a redraw in 
an interactive backend (e.g. ipython with gtkagg) at the end of the 
set_aspect() method, for example? The way it works now is that one can 
make a plot, call the set_aspect() method on the resulting axes object, 
and the result will appear as soon as the window is manipulated with the 
mouse; but this manipulation is needed to trigger a redraw.
Eric
From: Darren D. <dd...@co...> - 2006年03月19日 21:06:15
On Sunday 19 March 2006 3:14 pm, Andrew Straw wrote:
> Darren Dale wrote:
> >For backend_ps, we want to make use of the transform's numerix methods.
> >
> > if transform.need_nonlinear():
> > x,y,mask =3D transform.nonlinear_only_numerix(x, y,
> > returnMask=3D1) else:
> > mask =3D ones(x.shape)
> > x,y =3D transform.numerix_x_y(x, y)
> >
> >If I do semilogy([0,1,2,3]), the mask will be [0,1,1,1]. If I do
> >semilogy([1,2,nan,4]), I would have expected a mask that looked like
> >[1,1,0,1], but it returns [1,1,1,1].
>
> I just committed a patch that should make this work. nan support is done
> in a case-by-case basis at the C level. So this is another case.
>
> >Wouldnt it make life easy if
> >transform.nonlinear_only_numerix and transform.numerix_x_y both returned=
 a
> >mask with zeros where x or y is a nan or inf?
>
> I'm not sure this is the right thing to do for inf (or -inf) -- I can
> imagine transforms that accept inf and return something useful (such as
> a reciprocal transform). Maybe we don't use any such transforms
> currently, but that doesn't mean we should prevent that case in the
> future. Is the inf case important for you?
I don't know. For a reciprocal transform, I suppose inf shouldn't effect th=
e=20
mask, but then we can plot the results of the transform. If we can't plot t=
he=20
transformed value, I think the mask should reflect it.
Moving on, I've been trying to follow John's work in __draw_lines_hide (you=
=20
masked that sucker twice, is it that bad?). Help me understand this, are we=
=20
allowed to use transform.numerix_x_y in the new API, or do we have to use=20
transform.as_vec6_val? If I can use the former:
=A0 =A0 =A0 =A0 print x,y
=A0 =A0 =A0 =A0 if transform.need_nonlinear():
=A0 =A0 =A0 =A0 =A0 =A0 x,y,mask =3D transform.nonlinear_only_numerix(x, y,=
 returnMask=3D1)
=A0 =A0 =A0 =A0 =A0 =A0 print x, y
=A0 =A0 =A0 =A0 else:
=A0 =A0 =A0 =A0 =A0 =A0 mask =3D ones(x.shape)
=A0 =A0 =A0 =A0 x, y =3D transform.numerix_x_y(x, y)
=A0 =A0 =A0 =A0 print x, y=20
that returns a "ValueError: Domain error on Transformation::numerix_x_y"=20
message when I try to do semilog plots. Linear plots look fine.
If I should be using the latter, well, I'm playing with it, but I'm spillin=
g=20
blue ink all over the place.
From: Andrew S. <str...@as...> - 2006年03月19日 20:14:21
Darren Dale wrote:
>For backend_ps, we want to make use of the transform's numerix methods.
>
> if transform.need_nonlinear():
> x,y,mask = transform.nonlinear_only_numerix(x, y, returnMask=1)
> else:
> mask = ones(x.shape)
> x,y = transform.numerix_x_y(x, y)
>
>If I do semilogy([0,1,2,3]), the mask will be [0,1,1,1]. If I do 
>semilogy([1,2,nan,4]), I would have expected a mask that looked like 
>[1,1,0,1], but it returns [1,1,1,1]. 
>
I just committed a patch that should make this work. nan support is done
in a case-by-case basis at the C level. So this is another case.
>Wouldnt it make life easy if 
>transform.nonlinear_only_numerix and transform.numerix_x_y both returned a 
>mask with zeros where x or y is a nan or inf? 
>
I'm not sure this is the right thing to do for inf (or -inf) -- I can
imagine transforms that accept inf and return something useful (such as
a reciprocal transform). Maybe we don't use any such transforms
currently, but that doesn't mean we should prevent that case in the
future. Is the inf case important for you?
Cheers!
Andrew
From: Darren D. <dd...@co...> - 2006年03月19日 17:55:13
I'm playing with the new API in backend_ps today. I'm trying to make 
draw_markers work:
On Tuesday 14 March 2006 1:38 pm, John Hunter wrote:
> >>>>> "Eric" == Eric Firing <ef...@ha...> writes:
>
> Eric> Here is a simple illustration of the problem and
> Eric> inconsistency, using just the first few points in
> Eric> Tennessee's plot and a few lines from his script. With a
> Eric> log scale for y, the Agg backends are leaving gaps (breaking
> Eric> the line) at the points where y==0; the PS and SVG backends
> Eric> are removing those points, but *not* breaking the line. I
> Eric> think the Agg behavior is much better. But maybe it would
> Eric> be better yet to raise an exception, forcing the user to
> Eric> deal with the error explicitly. For example, the user might
> Eric> want to change the zero values to a very small number, and
> Eric> then explicitly set the y range to exclude the small
> Eric> numbers. This is illustrated in the second subplot.
>
> This issue has a long history, which I'll summarize here. In the old
> days, we raised an exception when non-positive numbers were passed to
> log plotting. Most people found this objectionable, and prefer to see
> the valid points plotted rather than nothing (though a warning would
> be nice). This is what matlab does. I needed to make some
> architectural changes to support this, because the transformations
> happened in the lines class which passed the transformed data to the
> backend.
>
> I looked into filtering the data in the lines class (basically what
> you did for ma data) but did not think it would be fast enough,
> because we potentially would have had to create a lot of line
> segments.
>
> So I changed the backend API and modified draw_lines to take the
> transformation as an argument. Then the backend can do the following
> (eg _backend_agg)
>
> if (needNonlinear)
> try {
> 	mpltransform->nonlinear_only_api(&thisx, &thisy);
> }
> catch (...) {
> 	moveto = true;
> 	continue;
> }
>
> Ie if there is a nonlinear transformation that raises an exception,
> the path state is changed from lineto to moveto. This is very fast,
> at least an order of magnitude faster than trying to compute the
> segments at the python level I suspect.
For backend_ps, we want to make use of the transform's numerix methods.
 if transform.need_nonlinear():
 x,y,mask = transform.nonlinear_only_numerix(x, y, returnMask=1)
 else:
 mask = ones(x.shape)
 x,y = transform.numerix_x_y(x, y)
If I do semilogy([0,1,2,3]), the mask will be [0,1,1,1]. If I do 
semilogy([1,2,nan,4]), I would have expected a mask that looked like 
[1,1,0,1], but it returns [1,1,1,1]. Wouldnt it make life easy if 
transform.nonlinear_only_numerix and transform.numerix_x_y both returned a 
mask with zeros where x or y is a nan or inf? Then I can filter out the 
un-drawable markers with something like
 to_draw = izip(x[start:end],y[start:end],mask[start:end])
 ps = ['%1.3f %1.3f marker' % (xp, yp) for xp, yp, m in to_draw i m]
I could do something similar for draw_lines, using Johns suggestion above. 
This would mask nans, infs and log(x<=0) without the need for masked arrays, 
and would provide an opportunity to issue a warning about the bad values (if 
that is actually desireable).
Darren
(There is a lot going on in the transforms that I'm still trying to wrap my 
head around, so please feel free to correct me where my assumptions are 
incorrect or naive.)
From: Mark B. <ma...@gm...> - 2006年03月19日 11:43:12
Ahah, I have seen this problem before several times on win32 but never sat
down to
nail down the problem. It also occurs, as described, on win32, mpl 0.86.1fo=
r
py2.3.
After you use the save button the entire axis is forgotten. gca() doesn't
work, xlabel,
or anything.
Mark
Fernando Perez wrote:
In [1]: plot(range(10))
Out[1]: [<matplotlib.lines.Line2D instance at 0x41ccd12c>]
At this point, click on the save button and save the figure to any filename=
.
Do NOT try savefig(), as it does NOT cause the problem.
Now, try
close('all')
From: Fernando P. <Fer...@co...> - 2006年03月19日 04:06:43
Hi all,
I just rebuilt mpl on my ubuntu laptop with current SVN, and noticed a bug 
related to window management. Here's how to reproduce it:
- Backend: TkAgg
- Interactively start ipython -pylab
In [1]: plot(range(10))
Out[1]: [<matplotlib.lines.Line2D instance at 0x41ccd12c>]
At this point, click on the save button and save the figure to any filename. 
Do NOT try savefig(), as it does NOT cause the problem.
Now, try
close('all')
The window doesn't close. In fact, if you type figure(1), you'll get a 
SECOND window named (1). The original figure 1 has become inaccessible. 
Something is getting corrupted in the internal window management lists.
I tried GTKAgg and the problem is not present there, so it seems Tk-specific. 
 In 0.83 (what I have at work), this bug was not present either.
Cheers,
f
From: Andrew S. <str...@as...> - 2006年03月19日 02:11:03
John Hunter wrote:
>>>>>>"James" == James Evans <jre...@ea...> writes:
>>>>>> 
>>>>>>
>
> James> The patch is as follows: -- In several places arrays are
> James> initialized with a variable for the length. As per
> James> Stroustrup arrays can only be specified with constants or
> James> using 'new' .
>
>Hey James, I notice you have 3 patches with the title 
>
> Strict C/C++ Conformance
>
>Have all of these been resolved by the patch Andrew applied? If so,
>I'll close them.
> 
>
Hmm, I only applied the one that was emailed to this list. I assume 
you're talking about patches on the SourceForge tracker? I haven't 
touched those...

Showing 8 results of 8

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