VBox(ts1, ts2, ts3) 的散景图缩放 in/out

Bokeh plot zoom in/out for VBox(ts1, ts2, ts3)

我正在使用 Bokeh 来绘制我的数据点。我使用 VBox(ts1, ts2, ts3).

将 3 个不同的图表垂直堆叠在另一个之上

我有鼠标滚动缩放 in/out 分别为每个图工作。我想确定是否可以将它们绑在一起,这样如果我在其中一个图中缩放 in/out,其他 2 个图也会相应地缩放 in/out,这样在任何时候我的 x所有 3 个图表的轴对齐相同。

这是一个玩具程序,可以满足您的需求。它使用链接的 x 和 y 范围,这意味着不仅缩放,而且平移也保持同步。您可以通过查看第二个和第三个图中如何指定 x_range 和 y_range 来了解它是如何完成的。

import numpy as np
from bokeh.plotting import *

output_file('linked_panning.html')

N=300
x = np.linspace(0, 4*np.pi, N)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(x) + np.cos(x)

s1 = figure(plot_width=350, plot_height=350)
s1.scatter(x, y1)

s2 = figure(plot_width=350, plot_height=250, x_range=s1.x_range, y_range=s1.y_range)
s2.scatter(x, y2)

s3 = figure(plot_width=350, plot_height=350, x_range=s1.x_range, y_range=s1.y_range)
s3.scatter(x, y3)

p = gridplot(([[s1, s2, s3]]))
show(p)

改编自散景示例图库文件"linked_panning.ipynb"