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


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="n*y", 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 属性并不能达到目的。

ViiTor AI ViiTor AI

一个强大的多语言AI语音合成和视频转译平台

ViiTor AI 9414 查看详情 ViiTor AI

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

注意事项:

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

总结:

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

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


# 相关链接  # 柴文磊seo博客分享  # 黄岛网站优化软件  # 怀柔区特殊网站建设调整  # 平山网站快照优化多少钱  # 柳州seo公司方便火星  # 网站推广了吗  # 珠海seo推广多少钱  # 成都小程序网站建设  # 产后营销活动推广方案  # 搜索淘宝关键词网站排名  # 是一个  # 值为  # javascript  # 其中一个  # 可以通过  # 遍历  # 如何实现  # 迭代  # 迷思  # 回调  # 数据可视化  # 工具  # 回调函数  # java 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 《海底捞》点外卖方法  Win10输入法不见了怎么办 Win10找回语言栏图标教程  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  J*aScript包管理器_Npm与Yarn对比  蜻蜓FM如何设置移动流量播放  Chart.js 教程:自定义插件实现图表与图例间距调整  实现二叉树的层序插入:基于树大小的路径导航  《procreate》绘制渐变效果教程  中通快递官网指定查询 中通快递单号查询平台入口  PHP中获取HTTP响应状态消息:方法与限制  Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法  《火花chat》搜索好友方法  基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口  猫眼电影app如何参与官方的抽奖活动_猫眼电影官方抽奖参与方法  《顺丰同城骑士》查看我的技能方法  使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式  《环球网校》设置报考省市方法  VS Code的时间线(Timeline)视图:您的代码时光机  C++二维数组动态分配方法_C++指针与数组内存布局  创建您的便携版VS Code:让配置随身携带  易车网官网直达入口 易车网在线登录入口  win11如何开启单声道音频 Win11为听障用户合并左右声道【辅助】  Win11如何分屏操作_Win11多窗口分屏技巧  铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明  苹果手机手电筒无法开启  视频转蓝光m2ts格式  天堂漫画网页版在线阅读 天堂漫画手机版入口  《U校园》学生登录入口2025  windows10怎么开启wsl_windows10安装linux子系统教程  行者app怎样导出日志  163邮箱网页版官方登录入口 163邮箱网页版访问页面  PHP utf8_encode 字符编码转换疑难解析与最佳实践  如何用mysql实现客户反馈管理_mysql客户反馈数据库方法  在React中正确处理HTML input type="number"的数值类型  纯CSS实现滚动时动态时间轴线条颜色填充效果  ToDesk远程摄像头功能使用方法_ToDesk远程视频画面查看设置教程  Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改  Linux如何开发轻量级数据服务模块_Linux服务化设计  百度竞价WAP显示PC链接问题  发布小红书怎么屏蔽粉丝?屏蔽粉丝能看到吗?  英雄联盟争者留名活动介绍  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  《东方财富》条件单关闭方法  J*aScript:从子元素中批量移除特定CSS类  视频号视频怎么免费保存到相册?保存到相册需要注意什么?  Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题  VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略  学习通网页版个人登录_学习通网页版个人账户登录入口  漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享  怎样让Windows 11的开始菜单恢复经典样式_Open-Shell工具使用指南【怀旧】 

 2025-11-03

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.