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
(1) |
2
|
3
|
|
4
|
5
|
6
(3) |
7
(3) |
8
(3) |
9
(4) |
10
(1) |
|
11
(5) |
12
(2) |
13
|
14
(2) |
15
(1) |
16
(6) |
17
(7) |
|
18
(3) |
19
|
20
|
21
|
22
(1) |
23
|
24
|
|
25
|
26
|
27
(1) |
28
(1) |
29
|
30
|
31
|
|
From: Alexander H. <mat...@2s...> - 2011-12-18 19:49:16
|
Sorry for the multiple mailings.
in makers.py I request to change
def _set_custom_marker(self, path):
verts = path.vertices
rescale = max(np.max(np.abs(verts[:,0])),
np.max(np.abs(verts[:,1])))
self._transform = Affine2D().scale(1.0 / rescale)
self._path = path
to
def _set_custom_marker(self, path):
verts = path.vertices
rescale = np.max(np.sqrt(np.square(verts[:,0]) +
np.square(verts[:,1])))
self._transform = Affine2D().scale(1.0 / rescale)
self._path = path
such that the symbol *radius* is normalized to 1.0
This way my previous example give better results if the symbol is rotated:
import matplotlib.path as path
from matplotlib.transforms import Affine2D
# define codes
P = path.Path
Pm = P.MOVETO
Pl = P.LINETO
Pc = P.CLOSEPOLY
c = [Pm] + [Pl]*3 + [Pc]
cx=c*2
# define basic path
r=np.array(((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1)))
# we add second closed path of half size but reverse parity
rh=0.5*r[::-1]
rx = np.vstack((r,rh))
p = path.Path(rx,codes=cx)
x = np.linspace(0,1,10)**2
plot(x,c='r',marker=p,ms=10)
pr = p.transformed(Affine2D().rotate_deg(45.))
plot(x,c='r',marker=pr,ms=10)
show()
I think this is how it is "meant" to be, but maybe you have to add a
parameter to allow people recover the current behavior in that case.
-Alexander
====
I just like round cows better than square cows.
|
|
From: Alexander H. <al...@ph...> - 2011-12-18 19:44:54
|
in makers.py I request to change
def _set_custom_marker(self, path):
verts = path.vertices
rescale = max(np.max(np.abs(verts[:,0])),
np.max(np.abs(verts[:,1])))
self._transform = Affine2D().scale(1.0 / rescale)
self._path = path
to
def _set_custom_marker(self, path):
verts = path.vertices
rescale = np.max(np.sqrt(np.square(verts[:,0]) +
np.square(verts[:,1])))
self._transform = Affine2D().scale(1.0 / rescale)
self._path = path
such that the symbol *radius* is normalized to 1.0
This way my previous example give better results if the symbol is rotated:
import matplotlib.path as path
from matplotlib.transforms import Affine2D
# define codes
P = path.Path
Pm = P.MOVETO
Pl = P.LINETO
Pc = P.CLOSEPOLY
c = [Pm] + [Pl]*3 + [Pc]
cx=c*2
# define basic path
r=np.array(((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1)))
# we add second closed path of half size but reverse parity
rh=0.5*r[::-1]
rx = np.vstack((r,rh))
p = path.Path(rx,codes=cx)
x = np.linspace(0,1,10)**2
plot(x,c='r',marker=p,ms=10)
pr = p.transformed(Affine2D().rotate_deg(45.))
plot(x,c='r',marker=pr,ms=10)
show()
I think this is how it is "meant" to be, but maybe you have to add a
parameter to allow people recover the current behavior in that case.
-Alexander
====
I just like round cows better than square cows.
|
|
From: Alexander H. <mat...@2s...> - 2011-12-18 19:28:24
|
In [1]: matplotlib.__version__ Out[1]: '1.2.x' ~/matplotlib/lib/matplotlib>diff markers.py_broken markers.py 190c190 < path = Path(verts) --- > path = Path(self._marker) PS - I tried to log into https://github.com/matplotlib/matplotlib/issues using my mailing list password to create a bug report, but it would not accept it, so you get it this way. DOCUMENTATION NOTES 1) in the table for marker vertices it states http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.lines.Line2D.set_marker verts a list of (x, y) pairs in range (0, 1) it really should be just normalized or abs(1), (0,0) being center, and hence the (x,y) values should be in the range (-1,+1). Would be good to add an example x=np.linspace(0,1,10)**2 plot(x,c='r',marker=((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1)),ms=10) 2) the source also support to just provide a path as a marker, which (a) is cool, and (b) seemed natural as internal many things are done a paths, and even complies paths are generated from the $...$ syntax math. In any case, this should be added to the documentation for allowed markers path a matplotlib.path.Path object import matplotlib.path as path x = np.linspace(0,1,10)**2 p = path.Path(((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1))) plot(x,c='r',marker=p,ms=10) or a cool example that you may want tot add to the library... import matplotlib.path as path # define codes P = path.Path Pm = P.MOVETO Pl = P.LINETO Pc = P.CLOSEPOLY c = [Pm] + [Pl]*3 + [Pc] cx=c*2 # define basic path r=np.array(((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1))) # we add second closed path of half size but reverse parity rh=0.5*r[::-1] rx = np.vstack((r,rh)) p = path.Path(rx,codes=cx) x = np.linspace(0,1,10)**2 plot(x,c='r',marker=p,ms=10) PS - I guess I need to figure out how to do such updates w/o requesting action from the lest eventually. Just to emphasize (2a): COOL!!! Wishlist: Can we add a "transform" parameter to overwrite self._transform? I suppose this would have to go many places. "set_marker_transform" Maybe add to MarkerStyle from transforms import Transform def self.set_transform(self, transform = IdentityTransform()): assert isinstance(x, Transform) self._transfrom = transfrom() Maybe less fancy, and better for starters, to add an angle "set_marker_rotation(angle)" using Affine2D().rotate_deg(angle) -Alexander |