python 散景 - 创建自定义平移按钮

python bokeh - create a custom pan button

刚开始做bokeh,很期待,想知道有没有办法实现如下:

我有一个过去 1 年的财务数据系列: 我想创建特殊的工具,使我能够: - 一个特殊的缩放,在第一个月点击一次缩放 - 一个特殊的 zoom/pan,单击 1 次即可向前移动 1 个月,并将图表的高度调整为可见数据

是否可以在散景中实现? 我认为这意味着调整原始 zoom/pan 定义并使用它们创建新工具。

这是一个使用 taptool 的例子,对你有用吗?每次单击都会查看绘图区域的 10 个单位间隔。要调整数据图,您可以从源数据中找到最大和最小 y 值并更改 y 范围的结束和开始。

from bokeh.models import ColumnDataSource, BoxSelectTool,TapTool, HoverTool
from bokeh.plotting import figure
from bokeh.io import curdoc

source2 = ColumnDataSource(data=dict(x=[0,100],y=[0,100]))

taptool = TapTool()

p = figure(plot_width=400,
           plot_height=400,
           tools=[taptool],
           title="Select Below")

p.circle(x='x',y='y',source=source2)

""" initial x-range is  0, 100"""
p.x_range.start = 0
p.x_range.end = 100

def tool_events_callback(attr, old, new):
    if(p.x_range.end == 100):
        p.x_range.end = p.x_range.start + 10
        p.x_range.start = p.x_range.end - 10
    else:
        p.x_range.start = p.x_range.start + 10
        p.x_range.end = p.x_range.start + 10

p.tool_events.on_change('geometries', tool_events_callback)
p.add_tools(BoxSelectTool(), HoverTool())
curdoc().add_root(p)