@@ -203,6 +203,7 @@ def __init__(self, xdata, ydata,
203203 self ._markerfacecolor = markerfacecolor
204204 self ._markeredgecolor = markeredgecolor
205205 self ._markeredgewidth = markeredgewidth
206+ self ._point_size_reduction = 0.5
206207
207208 self .verticalOffset = None
208209 self ._useDataClipping = rcParams ['lines.data_clipping' ]
@@ -669,17 +670,16 @@ def _draw_dotted(self, renderer, gc, xt, yt):
669670 renderer .draw_lines (gc , xt , yt )
670671
671672 def _draw_point (self , renderer , gc , xt , yt ):
672- if self . _newstyle :
673- rgbFace = self . _get_rgb_face ( )
674- path = agg . path_storage ()
675- path . move_to ( - 0.5 , - 0.5 )
676- path . line_to ( - 0.5 , 0.5 )
677- path . line_to ( 0.5 , 0.5 )
678- path . line_to ( 0.5 , - 0.5 )
679- renderer . draw_markers ( gc , path , rgbFace , xt , yt , self . _transform )
673+
674+ r = 0.5 * renderer . points_to_pixels ( self . _markersize )
675+ r *= self . _point_size_reduction
676+ gc . set_linewidth ( 0 )
677+ if r <= 0.5 :
678+ self . _draw_pixel ( renderer , gc , xt , yt )
679+ elif r <= 2 :
680+ self . _draw_hexagon1 ( renderer , gc , xt , yt , point = True )
680681 else :
681- for (x ,y ) in zip (xt , yt ):
682- renderer .draw_arc (gc , None , x , y , 1 , 1 , 0.0 , 360.0 )
682+ self ._draw_circle (renderer , gc , xt , yt , point = True )
683683
684684 def _draw_pixel (self , renderer , gc , xt , yt ):
685685 if self ._newstyle :
@@ -695,9 +695,12 @@ def _draw_pixel(self, renderer, gc, xt, yt):
695695 renderer .draw_point (gc , x , y )
696696
697697
698- def _draw_circle (self , renderer , gc , xt , yt ):
698+ def _draw_circle (self , renderer , gc , xt , yt , point = False ):
699+
700+ w = renderer .points_to_pixels (self ._markersize )
701+ if point :
702+ w *= self ._point_size_reduction
699703
700- w = h = renderer .points_to_pixels (self ._markersize )
701704
702705 rgbFace = self ._get_rgb_face ()
703706
@@ -718,7 +721,7 @@ def _draw_circle(self, renderer, gc, xt, yt):
718721 else :
719722 for (x ,y ) in zip (xt , yt ):
720723 renderer .draw_arc (gc , rgbFace ,
721- x , y , w , h , 0.0 , 360.0 )
724+ x , y , w , w , 0.0 , 360.0 )
722725
723726
724727
@@ -895,8 +898,10 @@ def _draw_pentagon(self, renderer, gc, xt, yt):
895898 (x + offsetX1 , y + offsetY1 ))
896899 renderer .draw_polygon (gc , rgbFace , verts )
897900
898- def _draw_hexagon1 (self , renderer , gc , xt , yt ):
901+ def _draw_hexagon1 (self , renderer , gc , xt , yt , point = False ):
899902 offset = 0.6 * renderer .points_to_pixels (self ._markersize )
903+ if point :
904+ offset *= self ._point_size_reduction
900905 offsetX1 = offset * 0.87
901906 offsetY1 = offset * 0.5
902907 rgbFace = self ._get_rgb_face ()
0 commit comments