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
|
2
(2) |
3
|
4
|
5
|
6
(1) |
|
7
|
8
|
9
(2) |
10
(6) |
11
(4) |
12
|
13
(3) |
|
14
(2) |
15
(7) |
16
(1) |
17
(1) |
18
(9) |
19
(2) |
20
(4) |
|
21
(6) |
22
(6) |
23
(7) |
24
(8) |
25
(5) |
26
(7) |
27
(7) |
|
28
(1) |
29
(2) |
30
(16) |
31
(3) |
|
|
|
|
From: Jordan D. <jdawe@u.washington.edu> - 2006-05-18 23:44:06
|
> Jordan> Here's a reference talking about the different coordinate > Jordan> systems accessible in matplotlib: > > Jordan> http://www.scipy.org/Cookbook/Matplotlib/Transformations > > Jordan> I think what we need is to set the coordinate transform to > Jordan> be in and absolute, instead of relative, coordinate > Jordan> system, or to build one ourselves. But I don't know > Jordan> enough about matplotlib's internals to know if this is > Jordan> right. Comments? > > This is probably what you want to do. You want to define your arrow > in something like points, then do a rotation, and then apply one of > the transformation offsets to place your arrow at an x,y location. > Note there is a bug in some version of matplotlib in the affine code > which is fixes in SVN -- this arrow should have it's base at 0.5, 0.5 > and be pointing NW and measure 2 inches from base to tip. The arrow > size is independent of zoom and figure window size, which may or may > not be desirable.... > Wow, that's service. Yeah, that's almost exactly what we want... but you are right, it would be better if the arrow scaled with the figure size, but maintained it's aspect ratio. I'll try to play around with your example and figure out how to make it work. Thanks a lot. Jordan |
|
From: Christopher B. <Chr...@no...> - 2006-05-18 23:35:10
|
John Hunter wrote:
> Jordan> I think what we need is to set the coordinate transform to
> Jordan> be in and absolute, instead of relative, coordinate
> Jordan> system,
> This is probably what you want to do. You want to define your arrow
> in something like points, then do a rotation, and then apply one of
> the transformation offsets to place your arrow at an x,y location.
This sounds a lot like what a I did a while ago (following suggested
code form JDH), and posted here. My intent is to clean it up so that it
can get included in MPL, but I haven't had the chance. Meanwhile, here
it is again. Use it as you will.
-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: John H. <jdh...@ac...> - 2006-05-18 23:24:01
|
>>>>> "Jordan" == Jordan Dawe <jdawe@u.washington.edu> writes:
Jordan> Here's a reference talking about the different coordinate
Jordan> systems accessible in matplotlib:
Jordan> http://www.scipy.org/Cookbook/Matplotlib/Transformations
Jordan> I think what we need is to set the coordinate transform to
Jordan> be in and absolute, instead of relative, coordinate
Jordan> system, or to build one ourselves. But I don't know
Jordan> enough about matplotlib's internals to know if this is
Jordan> right. Comments?
This is probably what you want to do. You want to define your arrow
in something like points, then do a rotation, and then apply one of
the transformation offsets to place your arrow at an x,y location.
Note there is a bug in some version of matplotlib in the affine code
which is fixes in SVN -- this arrow should have it's base at 0.5, 0.5
and be pointing NW and measure 2 inches from base to tip. The arrow
size is independent of zoom and figure window size, which may or may
not be desirable....
from matplotlib.transforms import Affine, Value, zero
from matplotlib.patches import Polygon
from pylab import figure, show, nx
fig = figure()
ax = fig.add_subplot(111, xlim=(0,1), ylim=(0,1), autoscale_on=False)
sx = 144/72.*fig.dpi.get() # 2 inches
sy = 144/72.*fig.dpi.get()
theta = 45*nx.pi/180.
# arrow drawn in pixels
trans = Affine(
Value(sx*nx.cos(theta)),
Value(sx*nx.sin(theta)),
Value(-sy*nx.sin(theta)),
Value(sy*nx.cos(theta)),
zero(),
zero())
verts = [
(-0.05,0.75),
(0, 1.),
(0.05,0.75),
(0.05,0),
(-0.05,0),
]
# offset in data coords
trans.set_offset((0.5, 0.5), ax.transData)
poly = Polygon(verts, transform=trans)
ax.add_patch(poly)
show()
|
|
From: Jordan D. <jdawe@u.washington.edu> - 2006-05-18 22:35:29
|
Gary Ruben wrote:
> Hi Jordan,
> When I zoom, if the x and y zooms are not locked you will still get
> the problem you mention with my modified arrows. They're still just
> patches locked to the current x and y coordinates.
> I've attached my modified Arrow() in case you want to look at it. It
> requires a change to quiver in axes.py too to add the arrowstyle
> parameter and pass it through but you can just ignore that stuff and
> remove the arrowstyle references if you want to try it out. The
> changes just keep the arrow head length fixed and adjust the length of
> the arrow shaft until it gets so short that it becomes necessary to
> start scaling down the width in proportion with the length (I'm not
> sure if that makes sense).
> Gary
That makes a lot of sense. I've just been changing this line:
arrow[:,1] *= width
to
arrow[:,1] *= L*width
but this, of course, ends up with some weird looking arrows at the ends
of the data range
The main problem with quiver as it currently exists is that, if say you
plot:
quiver(ones([1,2]),ones([1,2]))
You end up with arrows that are twice as tall as they are wide, instead
of 45 degree arrows. This is definitely a bug, not a feature.
Here's a reference talking about the different coordinate systems
accessible in matplotlib:
http://www.scipy.org/Cookbook/Matplotlib/Transformations
I think what we need is to set the coordinate transform to be in and
absolute, instead of relative, coordinate system, or to build one
ourselves. But I don't know enough about matplotlib's internals to know
if this is right. Comments?
Jordan
|
|
From: Gary R. <gr...@bi...> - 2006-05-18 22:16:15
|
Hi Jordan,
When I zoom, if the x and y zooms are not locked you will still get the
problem you mention with my modified arrows. They're still just patches
locked to the current x and y coordinates.
I've attached my modified Arrow() in case you want to look at it. It
requires a change to quiver in axes.py too to add the arrowstyle
parameter and pass it through but you can just ignore that stuff and
remove the arrowstyle references if you want to try it out. The changes
just keep the arrow head length fixed and adjust the length of the arrow
shaft until it gets so short that it becomes necessary to start scaling
down the width in proportion with the length (I'm not sure if that makes
sense).
Gary
Jordan Dawe wrote:
<snip>
> Wow, serendipitously I'm working on exactly the same thing at the
> moment. Question: when you zoom, do you ensure that the x-direction in
> your window is the same length as the y-direction? My current theory on
> this is the distorted arrows are the result of quiver measuring
> everything in the x-y space of the plot, instead of in absolute terms.
> Setting axis('equal') or axis('scaled') seems to improve the arrow
> appearance...
>
> Jordan
|
|
From: Gary R. <gr...@bi...> - 2006-05-18 22:02:42
|
Hi John, I'll have a look at this over the weekend. From the link and example you provided I'm not yet sure that subpixel rendering is the problem, but it could well be - What I'm getting is the vertices displaced away from the expected position by quite a way, but I'll see if the patch you made is at the Python level, in which case I can try it easily, or if at the C level, it may be time to try my Ubuntu installation out and finally learn to build from source. thanks, Gary |
|
From: John H. <jdh...@ac...> - 2006-05-18 15:44:30
|
>>>>> "Gary" == Gary Ruben <gr...@bi...> writes:
Gary> I've been rewriting the Arrow class in patches.py to improve
Gary> the look of quiver plots and am getting generally good
Gary> results. The problems with current quiver plots are that
Gary> arrows representing very small values are scaled along their
Gary> length but not in width and also that arrowheads are not of
Gary> a constant size. I have addressed both of these problems and
Gary> getting results much more like Matlab quiver plots
Gary> now. However, now that I am scaling arrow patches down to
Gary> very small sizes, I see weird shaped arrows at some zoom
Gary> levels but when I zoom in close enough to see the shape
Gary> properly they look nicely formed. Is there a known problem,
Gary> perhaps with Agg doing some fancy truncation in order to
Gary> achieve good speed, where patches are distorted if their
Gary> vertices are very close together at a particular
Gary> magnification? I can provide code and graphic examples if it
Gary> would help.
My guess is that this has something to do with subpixel rendering, and
it has cropped up in a number of circumstances. Unfortunately, I
don't know of an easy answer. If you tell agg to draw a line from 0,0
to 1,1, the line will look different than a line from .5,.5 to 1.5,1.5
See
http://antigrain.com/tips/line_alignment/line_alignment.agdoc.html#PAGE_LINE_ALIGNMENT
One way to confirm that this is your problem is to turn antialiasing
off
patch.set_antialiased(False)
but I just noticed that the agg draw_polygon method does not respect
the aa setting, so I just committed changes to svn to fix this. Do
you have access to svn?
With svn in the example below, the green polygon should look more
jaggy than the yellow one. My guess is that this weirdness for small
arrows will go away with antialiasing off, but then you will have
crappy, aliased arrows. Not sure what the right answer is...
from matplotlib.patches import RegularPolygon
from pylab import figure, show
p1 = RegularPolygon((1,1), 5, antialiased=True, facecolor='yellow', linewidth=5)
p2 = RegularPolygon((0,0), 5, antialiased=False, facecolor='green', linewidth=5, alpha=0.5)
fig = figure()
ax = fig.add_subplot(111, xlim=(-6,6), ylim=(-6,6), autoscale_on=False)
ax.add_patch(p1)
ax.add_patch(p2)
show()
JDH
|
|
From: Jordan D. <jdawe@u.washington.edu> - 2006-05-18 15:17:41
|
Gary Ruben wrote:
> I've been rewriting the Arrow class in patches.py to improve the look
> of quiver plots and am getting generally good results. The problems
> with current quiver plots are that arrows representing very small
> values are scaled along their length but not in width and also that
> arrowheads are not of a constant size. I have addressed both of these
> problems and getting results much more like Matlab quiver plots now.
> However, now that I am scaling arrow patches down to very small sizes,
> I see weird shaped arrows at some zoom levels but when I zoom in close
> enough to see the shape properly they look nicely formed. Is there a
> known problem, perhaps with Agg doing some fancy truncation in order
> to achieve good speed, where patches are distorted if their vertices
> are very close together at a particular magnification? I can provide
> code and graphic examples if it would help.
Wow, serendipitously I'm working on exactly the same thing at the
moment. Question: when you zoom, do you ensure that the x-direction in
your window is the same length as the y-direction? My current theory on
this is the distorted arrows are the result of quiver measuring
everything in the x-y space of the plot, instead of in absolute terms.
Setting axis('equal') or axis('scaled') seems to improve the arrow
appearance...
Jordan
|
|
From: Gary R. <gr...@bi...> - 2006-05-18 14:54:25
|
I've been rewriting the Arrow class in patches.py to improve the look of quiver plots and am getting generally good results. The problems with current quiver plots are that arrows representing very small values are scaled along their length but not in width and also that arrowheads are not of a constant size. I have addressed both of these problems and getting results much more like Matlab quiver plots now. However, now that I am scaling arrow patches down to very small sizes, I see weird shaped arrows at some zoom levels but when I zoom in close enough to see the shape properly they look nicely formed. Is there a known problem, perhaps with Agg doing some fancy truncation in order to achieve good speed, where patches are distorted if their vertices are very close together at a particular magnification? I can provide code and graphic examples if it would help. Gary R. |