python 如何在散景中获得WheelZoomTool的实际缩放

a11xaf1n  于 2023-05-16  发布在  Python
关注(0)|答案(1)|浏览(103)
class ZoomLevelGetter:
    def __init__(self):
        self.currentBokehObject = figure(
                title="Plot",
                plot_width=300, plot_height=300,
                x_axis_label='Time', y_axis_label='Value',
                tools=["pan", "wheel_zoom", hoverTool, "reset"],
                active_drag="pan",
                active_scroll="wheel_zoom")
        self.currentZoom = 1.0

    def zoom_changed(self):
        # i want here to get a new zoom of "wheel_zoom" tool to self.currentZoom
        self.currentZoom = #new zoom#

我想获得WheelZoom工具的缩放级别。但正如我所看到的-没有令人满意的财产,以获得在这个工具。
1.我在哪里可以得到缩放(我认为缩放不仅仅是应用于轴的浮动)?
1.我怎样才能像一个事件一样得到它,它可以调用我的python函数?
谢谢

bvk5enib

bvk5enib1#

没有内置的方法来获取当前的缩放百分比,但是,我们可以通过使用x范围和y范围来计算它,首先我们需要将x和y轴绑定到一个特定的或相对的值,如x和y轴值的最大值和最小值,如果我们想要的话,我们也可以保留一些偏移量,因为散景图具有无限属性。
范例

plot1 = figure()
x_range = plot1.x_range
x_start, x_end = x_range.start, x_range.end

y_range = plot1.y_range
y_start, y_end = y_range.start, y_range.end

x_zoom_percent = (x_end - x_start) / (max(x) - min(x)) * 100
y_zoom_percent = (y_end - y_start) / (max(y) - min(y)) * 100

欲了解更多详细信息,请参阅此链接https://docs.bokeh.org/en/latest/docs/examples/interaction/js_callbacks/js_on_event.html#index-0

相关问题