Bokeh 共享 Bokeh 图表之间的 x 轴
在本文中,我们将介绍如何在 Bokeh 库中共享两个或多个图表之间的 x 轴。Bokeh 是一个用于创建交互式数据可视化的 Python 库,它提供了丰富的绘图工具和功能,可以帮助用户创建各种类型的图表。
通常情况下,当我们在 Bokeh 中创建多个图表时,每个图表都会有自己的独立 x 轴。但有时候我们需要让多个图表共享同一个 x 轴,这样可以更好地比较和分析数据。Bokeh 提供了一种简单的方法来实现这个需求。
阅读更多:Bokeh 教程
创建两个独立的 Bokeh 图表
我们首先创建两个独立的 Bokeh 图表,然后将它们叠加在一起。下面是一个示例代码:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
from bokeh.layouts import column
# 创建数据源
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[3, 5, 2, 4, 6]))
# 创建第一个图表
p1 = figure(title="图表一", x_axis_label='x 轴', y_axis_label='y 轴')
p1.line('x', 'y', source=source)
# 创建第二个图表
p2 = figure(title="图表二", x_axis_label='x 轴', y_axis_label='y 轴')
p2.circle('x', 'y', source=source)
# 叠加两个图表
layout = column(p1, p2)
show(layout)
运行以上代码,我们可以看到两个独立的图表在同一个页面上显示出来。每个图表都有自己的 x 轴和 y 轴。
共享 x 轴
为了让两个图表共享同一个 x 轴,我们只需将第二个图表的 x_range 属性与第一个图表的 x_range 属性绑定在一起。下面是修改后的代码:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
from bokeh.layouts import column
# 创建数据源
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[3, 5, 2, 4, 6]))
# 创建第一个图表
p1 = figure(title="图表一", x_axis_label='x 轴', y_axis_label='y 轴')
p1.line('x', 'y', source=source)
# 创建第二个图表
p2 = figure(title="图表二", x_axis_label='x 轴', y_axis_label='y 轴', x_range=p1.x_range)
p2.circle('x', 'y', source=source)
# 叠加两个图表
layout = column(p1, p2)
show(layout)
通过将 p2
的 x_range
设置为 p1.x_range
,两个图表之间的 x 轴就被共享了。这意味着在两个图表上进行 x 轴的缩放或平移操作时,它们将保持同步。
总结
在本文中,我们介绍了如何在 Bokeh 中共享两个图表之间的 x 轴。通过将第二个图表的 x_range
属性设置为第一个图表的 x_range
,我们可以实现两个图表之间的 x 轴共享。这种功能可以帮助我们更好地比较和分析数据,在交互式数据可视化中起到很大的作用。
希望本文能对您在使用 Bokeh 创建图表时共享 x 轴有所帮助!