@@ -24,8 +24,9 @@ class MarkerStyle:
24
24
marker description
25
25
============================== ===============================================
26
26
%s
27
- ``'$...$'`` render the string using mathtext
28
- *verts* a list of (x, y) pairs in range (0, 1)
27
+ ``'$...$'`` render the string using mathtext.
28
+ *verts* a list of (x, y) pairs used for Path vertices.
29
+ path a :class:`~matplotlib.path.Path` instance.
29
30
(*numsides*, *style*, *angle*) see below
30
31
============================== ===============================================
31
32
@@ -150,6 +151,8 @@ def set_marker(self, marker):
150
151
if (iterable (marker ) and len (marker ) in (2 , 3 ) and
151
152
marker [1 ] in (0 , 1 , 2 , 3 )):
152
153
self ._marker_function = self ._set_tuple_marker
154
+ elif isinstance (marker , np .ndarray ):
155
+ self ._marker_function = self ._set_vertices
153
156
elif marker in self .markers :
154
157
self ._marker_function = getattr (
155
158
self , '_set_' + self .markers [marker ])
@@ -159,10 +162,10 @@ def set_marker(self, marker):
159
162
self ._marker_function = self ._set_path_marker
160
163
else :
161
164
try :
162
- path = Path (marker )
165
+ _ = Path (marker )
163
166
self ._marker_function = self ._set_vertices
164
- except :
165
- raise ValueError ('Unrecognized marker style %s' % marker )
167
+ except ValueError :
168
+ raise ValueError ('Unrecognized marker style {}' . format ( marker ) )
166
169
167
170
self ._marker = marker
168
171
self ._recache ()
@@ -195,6 +198,8 @@ def _set_path_marker(self):
195
198
self ._set_custom_marker (self ._marker )
196
199
197
200
def _set_vertices (self ):
201
+ # XXX how can this possibly work?
202
+ verts = self ._marker
198
203
path = Path (verts )
199
204
self ._set_custom_marker (path )
200
205
@@ -230,7 +235,6 @@ def _set_mathtext_path(self):
230
235
231
236
Submitted by tcb
232
237
"""
233
- from matplotlib .patches import PathPatch
234
238
from matplotlib .text import TextPath
235
239
from matplotlib .font_manager import FontProperties
236
240
@@ -437,10 +441,10 @@ def _set_star(self):
437
441
else :
438
442
verts = polypath .vertices
439
443
440
- top = Path (np .vstack ((verts [0 :4 ,:], verts [7 :10 ,:], verts [0 ])))
441
- bottom = Path (np .vstack ((verts [3 :8 ,:], verts [3 ])))
442
- left = Path (np .vstack ((verts [0 :6 ,:], verts [0 ])))
443
- right = Path (np .vstack ((verts [0 ], verts [5 :10 ,:], verts [0 ])))
444
+ top = Path (np .vstack ((verts [0 :4 , :], verts [7 :10 , :], verts [0 ])))
445
+ bottom = Path (np .vstack ((verts [3 :8 , :], verts [3 ])))
446
+ left = Path (np .vstack ((verts [0 :6 , :], verts [0 ])))
447
+ right = Path (np .vstack ((verts [0 ], verts [5 :10 , :], verts [0 ])))
444
448
445
449
if fs == 'top' :
446
450
mpath , mpath_alt = top , bottom
@@ -470,10 +474,10 @@ def _set_hexagon1(self):
470
474
471
475
# not drawing inside lines
472
476
x = np .abs (np .cos (5 * np .pi / 6. ))
473
- top = Path (np .vstack (([- x ,0 ],verts [(1 ,0 , 5 ),:],[x ,0 ])))
474
- bottom = Path (np .vstack (([- x ,0 ],verts [2 :5 ,:],[x ,0 ])))
475
- left = Path (verts [(0 ,1 , 2 , 3 ),:])
476
- right = Path (verts [(0 ,5 , 4 , 3 ),:])
477
+ top = Path (np .vstack (([- x , 0 ], verts [(1 , 0 , 5 ), :], [x , 0 ])))
478
+ bottom = Path (np .vstack (([- x , 0 ], verts [2 :5 , :], [x , 0 ])))
479
+ left = Path (verts [(0 , 1 , 2 , 3 ), :])
480
+ right = Path (verts [(0 , 5 , 4 , 3 ), :])
477
481
478
482
if fs == 'top' :
479
483
mpath , mpath_alt = top , bottom
@@ -504,10 +508,10 @@ def _set_hexagon2(self):
504
508
505
509
# not drawing inside lines
506
510
x , y = np .sqrt (3 )/ 4 , 3 / 4.
507
- top = Path (verts [(1 ,0 , 5 , 4 , 1 ),:])
508
- bottom = Path (verts [(1 ,2 , 3 , 4 ),:])
509
- left = Path (np .vstack (([x ,y ],verts [(0 ,1 , 2 ),:],[- x ,- y ],[x ,y ])))
510
- right = Path (np .vstack (([x ,y ],verts [(5 ,4 , 3 ),:],[- x ,- y ])))
511
+ top = Path (verts [(1 , 0 , 5 , 4 , 1 ), :])
512
+ bottom = Path (verts [(1 , 2 , 3 , 4 ), :])
513
+ left = Path (np .vstack (([x , y ], verts [(0 , 1 , 2 ), :], [- x , - y ], [x , y ])))
514
+ right = Path (np .vstack (([x , y ], verts [(5 , 4 , 3 ), :], [- x , - y ])))
511
515
512
516
if fs == 'top' :
513
517
mpath , mpath_alt = top , bottom
0 commit comments