20
20
from . import _api , backend_tools , cbook , colors , ticker
21
21
from .lines import Line2D
22
22
from .patches import Circle , Rectangle , Ellipse
23
+ from .transforms import TransformedPatchPath
23
24
24
25
25
26
class LockDraw :
@@ -439,7 +440,10 @@ def __init__(self, ax, label, valmin, valmax, valinit=0.5, valfmt=None,
439
440
)
440
441
ax .add_patch (self .track )
441
442
self .poly = ax .axhspan (valmin , valinit , .25 , .75 , ** kwargs )
442
- self .hline = ax .axhline (valinit , .15 , .85 , color = initcolor , lw = 1 )
443
+ # Drawing a longer line and clipping it to the track avoids
444
+ # pixellization-related asymmetries.
445
+ self .hline = ax .axhline (valinit , 0 , 1 , color = initcolor , lw = 1 ,
446
+ clip_path = TransformedPatchPath (self .track ))
443
447
handleXY = [[0.5 ], [valinit ]]
444
448
else :
445
449
self .track = Rectangle (
@@ -449,12 +453,8 @@ def __init__(self, ax, label, valmin, valmax, valinit=0.5, valfmt=None,
449
453
)
450
454
ax .add_patch (self .track )
451
455
self .poly = ax .axvspan (valmin , valinit , .25 , .75 , ** kwargs )
452
- # These asymmetric limits (.2, .9) minimize the asymmetry
453
- # above and below the *poly* when rendered to pixels.
454
- # This seems to be different for Horizontal and Vertical lines.
455
- # For discussion see:
456
- # https://github.com/matplotlib/matplotlib/pull/19265
457
- self .vline = ax .axvline (valinit , .2 , .9 , color = initcolor , lw = 1 )
456
+ self .vline = ax .axvline (valinit , 0 , 1 , color = initcolor , lw = 1 ,
457
+ clip_path = TransformedPatchPath (self .track ))
458
458
handleXY = [[valinit ], [0.5 ]]
459
459
self ._handle , = ax .plot (
460
460
* handleXY ,
0 commit comments