[医]IntervalSlider
|
该页面正在翻译中。 |
间隔滑块从提供的属性中选择一个间隔(低,高) 范围. (近似)开始值可以设置为 起始价值.
当前选定的间隔在属性中 间隔时间 是一个元组 (低,高). 不要手动更改此值,而是使用函数 set_close_to!(intslider,v1,v2). 这是必要的,以确保值实际存在于 范围 属性。
您可以单击当前选定范围之外的任何位置,较近的间隔边缘将跳转到该点。 然后,您可以拖动边缘。 将鼠标悬停在滑块上时,较大的按钮表示将作出反应的边缘。
如果鼠标悬停在间隔的中心区域上,并且两个按钮都被放大,则单击和拖动将间隔作为一个整体移动。
您可以双击滑块将其重置为存在于 起始价值. 如果 startvalues===Makie。自动的,将选择完整的间隔(这是默认值)。
如果设置属性 snap=false,滑块将在拖动时连续移动,并且仅在释放鼠标时跳转到最接近的可用值。
using GLMakie
f = Figure()
Axis(f[1, 1], limits = (0, 1, 0, 1))
rs_h = IntervalSlider(f[2, 1], range = LinRange(0, 1, 1000),
startvalues = (0.2, 0.8))
rs_v = IntervalSlider(f[1, 2], range = LinRange(0, 1, 1000),
startvalues = (0.4, 0.9), horizontal = false)
labeltext1 = lift(rs_h.interval) do int
string(round.(int, digits = 2))
end
Label(f[3, 1], labeltext1, tellwidth = false)
labeltext2 = lift(rs_v.interval) do int
string(round.(int, digits = 2))
end
Label(f[1, 3], labeltext2,
tellheight = false, rotation = pi/2)
points = rand(Point2f, 300)
# color points differently if they are within the two intervals
colors = lift(rs_h.interval, rs_v.interval) do h_int, v_int
map(points) do p
(h_int[1] < p[1] < h_int[2]) && (v_int[1] < p[2] < v_int[2])
end
end
scatter!(points, color = colors, colormap = [:gray90, :dodgerblue], strokewidth = 0)
f