Bokeh 双 Y 轴绘图:如何实现独立 Y 轴缩放

碧海醫心
发布: 2025-11-03 13:09:20
原创
915人浏览过

bokeh 双 y 轴绘图:如何实现独立 y 轴缩放

本文介绍如何在 Bokeh 绘图中实现双 Y 轴,并允许用户独立缩放其中一个 Y 轴,保持另一个 Y 轴固定。通过使用 extra_y_ranges 和 Range1d 创建双 Y 轴,并调整缩放行为,我们可以实现更灵活的数据可视化

在 Bokeh 绘图中,有时我们需要展示具有不同量纲或取值范围的数据。这时,双 Y 轴就显得非常有用。然而,默认情况下,缩放操作会同时影响两个 Y 轴。本文将介绍如何创建双 Y 轴绘图,并允许用户独立缩放其中一个 Y 轴,保持另一个 Y 轴的刻度范围固定。

创建双 Y 轴绘图

首先,我们需要使用 extra_y_ranges 和 Range1d 创建双 Y 轴。extra_y_ranges 允许我们在 Bokeh 图中添加额外的 Y 轴范围,而 Range1d 则用于定义这些范围的起始和结束值。

以下是一个创建双 Y 轴绘图的示例代码:

from bokeh.plotting import figure, show
from bokeh.models import Range1d

# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [6, 7, 2, 4, 5]
y2 = [2, 3, 4, 5, 6]

# 创建绘图对象
p = figure(width=400, height=400)

# 创建额外的 Y 轴范围
p.extra_y_ranges = {"y2_range": Range1d(start=0, end=10)}

# 添加线条到绘图
line1 = p.line(x, y1, color="navy", legend_label="Line 1")
line2 = p.line(x, y2, color="firebrick", y_range_name="y2_range", legend_label="Line 2")

# 添加第二个 Y 轴
p.add_layout(p.extra_y_ranges['y2_range'], 'right')

# 设置轴标签
p.yaxis.axis_label = "Y1"
p.extra_y_ranges['y2_range'].start = 0
p.extra_y_ranges['y2_range'].end = 10
p.yaxis.formatter.precision = 0
p.yaxis.major_label_orientation = "vertical"
p.right.axis_label = "Y2"

# 显示绘图
show(p)
登录后复制

这段代码首先创建了两个列表 y1 和 y2 作为要绘制的数据。然后,创建了一个 Bokeh 图形对象 p。关键部分是 p.extra_y_ranges = {"y2_range": Range1d(start=0, end=10)},这定义了一个名为 "y2_range" 的额外 Y 轴范围,并设置了其起始值为 0,结束值为 10。 line2 通过 y_range_name="y2_range" 与这个额外的 Y 轴关联。 最后,使用 p.add_layout 将这个额外的 Y 轴添加到绘图的右侧。

实现独立 Y 轴缩放

默认情况下,Bokeh 的缩放工具会同时影响所有的 Y 轴。为了实现独立缩放,我们需要自定义缩放行为。虽然Bokeh本身没有直接提供独立缩放的选项,但可以通过修改坐标轴的 renderers 属性来间接实现。然而,根据提供的信息,直接修改 renderers 属性并不能达到目的。

图像转图像AI
图像转图像AI

利用AI轻松变形、风格化和重绘任何图像

图像转图像AI 65
查看详情 图像转图像AI

一个可行的解决方案是使用 JavaScript 回调函数来控制 Y 轴的范围。

注意事项:

  • 使用 JavaScript 回调函数会增加代码的复杂性。
  • 确保你的 Bokeh 版本支持 JavaScript 回调函数。
  • 由于原始问题已经通过外部链接解决,建议查阅相关链接以获取更详细的解决方案。

总结:

通过 extra_y_ranges 和 Range1d,我们可以方便地创建双 Y 轴绘图。 虽然 Bokeh 默认的缩放行为会同时影响所有 Y 轴,但我们可以通过调整 renderers 属性或使用 JavaScript 回调函数来实现独立 Y 轴缩放,从而满足更复杂的可视化需求。根据原始问题提供的信息,查阅相关链接是获取更详细解决方案的最佳途径。

以上就是Bokeh 双 Y 轴绘图:如何实现独立 Y 轴缩放的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号