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
(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

Showing 3 results of 3

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

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