Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4bb9274

Browse files
RangeSlider handle set_val bugfix
1 parent2e921df commit4bb9274

File tree

1 file changed

+39
-8
lines changed

1 file changed

+39
-8
lines changed

‎lib/matplotlib/widgets.py‎

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,10 @@ def _update_val_from_pos(self, pos):
813813
val=self._max_in_bounds(pos)
814814
self.set_max(val)
815815
ifself._active_handle:
816-
self._active_handle.set_xdata([val])
816+
ifself.orientation=="vertical":
817+
self._active_handle.set_ydata([val])
818+
else:
819+
self._active_handle.set_xdata([val])
817820

818821
def_update(self,event):
819822
"""Update the slider position."""
@@ -834,13 +837,21 @@ def _update(self, event):
834837
event.canvas.release_mouse(self.ax)
835838
self._active_handle=None
836839
return
837-
838-
# determine which handle was grabbed
839-
handle=self._handles[
840-
np.argmin(
841-
np.abs([h.get_xdata()[0]-event.xdataforhinself._handles])
842-
)
843-
]
840+
841+
ifself.orientation=="vertical":
842+
# determine which handle was grabbed
843+
handle=self._handles[
844+
np.argmin(
845+
np.abs([h.get_ydata()[0]-event.ydataforhinself._handles])
846+
)
847+
]
848+
else:
849+
# determine which handle was grabbed
850+
handle=self._handles[
851+
np.argmin(
852+
np.abs([h.get_xdata()[0]-event.xdataforhinself._handles])
853+
)
854+
]
844855
# these checks ensure smooth behavior if the handles swap which one
845856
# has a higher value. i.e. if one is dragged over and past the other.
846857
ifhandleisnotself._active_handle:
@@ -904,14 +915,34 @@ def set_val(self, val):
904915
xy[2]=.75,val[1]
905916
xy[3]=.75,val[0]
906917
xy[4]=.25,val[0]
918+
919+
hbottom_pos=self._handles[0].get_ydata()
920+
htop_pos=self._handles[1].get_ydata()
921+
ifhbottom_pos!=val[0]:
922+
hbottom_pos[0]=val[0]
923+
self._handles[0].set_ydata(hbottom_pos)
924+
ifhtop_pos!=val[1]:
925+
htop_pos[0]=val[1]
926+
self._handles[1].set_ydata(htop_pos)
907927
else:
908928
xy[0]=val[0],.25
909929
xy[1]=val[0],.75
910930
xy[2]=val[1],.75
911931
xy[3]=val[1],.25
912932
xy[4]=val[0],.25
933+
934+
hleft_pos=self._handles[0].get_xdata()
935+
hright_pos=self._handles[1].get_xdata()
936+
ifhleft_pos!=val[0]:
937+
hleft_pos[0]=val[0]
938+
self._handles[0].set_xdata(hleft_pos)
939+
ifhright_pos!=val[1]:
940+
hright_pos[0]=val[1]
941+
self._handles[1].set_xdata(hright_pos)
942+
913943
self.poly.xy=xy
914944
self.valtext.set_text(self._format(val))
945+
915946
ifself.drawon:
916947
self.ax.figure.canvas.draw_idle()
917948
self.val=val

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2026 Movatter.jp