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"
我正在使用 Bokeh 来绘制我的数据点。我使用 VBox(ts1, ts2, ts3)
.
我有鼠标滚动缩放 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"