新闻中心
Bokeh 绘图:实现双 Y 轴独立缩放控制

本文介绍了如何在 Bokeh 绘图中实现双 Y 轴的独立缩放控制。通过设置 y_range 和 extra_y_ranges,并结合 Bokeh 的交互工具,可以实现对不同 Y 轴的单独缩放,从而更灵活地展示和分析数据。
在 Bokeh 中创建具有多个 Y 轴的绘图可以有效地展示具有不同比例或单位的数据。然而,默认情况下,缩放操作会影响所有 Y 轴。为了实现对不同 Y 轴的独立控制,需要对 Bokeh 的 Range 对象和交互工具有更深入的理解。
核心思路
实现双 Y 轴独立缩放的关键在于:
- 定义独立的 Y 轴范围: 使用 Range1d 创建独立的 Y 轴范围,并将其分配给主 Y 轴 (y_range) 和额外的 Y 轴 (extra_y_ranges)。
- 控制缩放行为: Bokeh 的缩放工具默认会影响所有 Y 轴。需要检查并配置相关工具的行为。
实现步骤
以下是一个简化的示例,展示了如何使用 Bokeh 创建具有独立缩放 Y 轴的绘图:
VALL-E
VALL-E是一种用于文本到语音生成 (TTS) 的语言建模方法
134
查看详情
from bokeh.plotting import figure, show from bokeh.models import Range1d, LinearAxis # 创建绘图对象 p = figure(width=600, height=400) # 创建数据 x = [1, 2, 3, 4, 5] y1 = [6, 7, 2, 4, 5] y2 = [2, 3, 4, 5, 6] # 定义第一个 Y 轴的范围 y1_range = Range1d(start=0, end=10) p.y_range = y1_range # 绘制第一条线 line1 = p.line(x, y1, color="blue", legend_label="Line 1") # 定义第二个 Y 轴的范围 y2_range = Range1d(start=1, end=7) p.extra_y_ranges = {"y2": y2_range} # 添加第二个 Y 轴 p.add_layout(LinearAxis(y_range_name="y2"), 'right') # 绘制第二条线 line2 = p.line(x, y2, color="red", legend_label="Line 2", y_range_name="y2") # 调整缩放工具 (可选,根据具体需求) # p.tools[0].y_range = y1_range # 如果有默认的缩放工具,将其限制到第一个 Y 轴 # 显示绘图 show(p)
代码解释:
- Range1d 用于定义每个 Y 轴的独立范围。
- extra_y_ranges 是一个字典,用于存储额外的 Y 轴范围。
- LinearAxis 用于添加额外的 Y 轴到绘图中,并将其与相应的范围关联。
- y_range_name 用于将数据系列与特定的 Y 轴范围关联。
- p.tools[0].y_range = y1_range 这行代码是可选的,但很重要。如果你的绘图默认包含一个缩放工具(通常是 WheelZoomTool 或 BoxZoomTool),你需要显式地将其 y_range 属性设置为你想要控制的 Y 轴的范围。否则,默认情况下,缩放工具可能会影响所有 Y 轴。 你需要根据你的具体情况,找到对应的缩放工具并设置其 y_range。
注意事项:
- 在使用 add_periodic_callback 实时更新绘图时,需要确保每次更新都使用正确的 Y 轴范围。
- 如果使用自定义的缩放工具,需要确保其行为符合预期,并正确地更新 Y 轴的范围。
- 不同的 Bokeh 版本可能在 API 上略有差异,请参考官方文档。
总结:
通过合理地使用 Range1d、extra_y_ranges 和 Bokeh 的交互工具,可以轻松实现对双 Y 轴绘图的独立缩放控制。 关键在于理解每个组件的作用,并根据具体的需求进行配置。 掌握这些技巧,可以创建更灵活、更强大的数据可视化应用。
以上就是Bokeh 绘图:实现双 Y 轴独立缩放控制的详细内容,更多请关注其它相关文章!
# 数据可视化
# 惠州绍兴网站建设公司
# 更灵活
# 命令行
# 关键在于
# 图像处理
# 可选
# 第二个
# 将其
# 是一个
# 自定义
# 递归
# red
# 工具
# SEO怎么快速出效果
# 泸州网络推广网站建设
# php网站建设项目教程
# Seo2的含义
# 营销会议音乐推广方案
# 铜仁营销推广培训学校有哪些
# 商洛关键词seo优化
# 葫芦岛全网营销推广费用
# 如皋餐厅网站建设
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接
C++如何生成随机数_C++ random库使用方法与范围设置
蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接
机器学习中对数变换预测结果的反向还原
魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】
J*aScript中管理异步API调用:确保操作顺序与数据一致性
如何仅使用CSS更改登录界面背景图像图标的颜色
qq游戏免费畅玩入口_qq游戏电脑版快速启动
动漫花园资源网使用步骤_动漫花园资源网下载流程
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
照顾宝贝2小游戏点击立即在线玩
CKEditor 5 自定义构建在React应用中渲染失败的调试与解决
如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器
深入理解J*a链表中的IPosition接口与使用
苹果手机如何防止被恶意App追踪
192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台
Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】
网易大神账号申诉需要多久_网易大神账号申诉流程说明
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
内存检查:在VS Code中调试C++时的内存视图
百度网盘网页版入口 百度网盘网页版官方登录网址
c++中为什么推荐使用using替代typedef_c++现代化类型别名
消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技
Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求
印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】
Go语言中JSON数据解码与字段访问指南
C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图
实现全屏滚动与导航点:专业教程
黑鲨3Pro怎样在相册开漫画风滤镜_iPhone黑鲨3Pro相册开漫画风滤镜【趣味滤镜】
Golang指针如何与map组合使用_Golang map指针组合实践
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】
Node.js 中使用 node-cron 实现定时 API 数据抓取与处理
Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧
c++ 命名空间怎么用 c++ namespace使用指南
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程
PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧
Win11怎么查看显卡显存 Win11显示适配器属性及专用视频内存查询
必由学官方登录入口 必由学教师学生账号快速访问
css滚动动画效果怎么实现_使用Animate.css滚动触发动画类
将HTML Canvas内容转换为可上传的图像文件(File对象)
解决Python logging 中 datefmt 导致时间戳固定不变的问题
Go Martini框架:动态服务解码后的图片内容
excel如何生成目录 excel一键生成工作表目录超链接
小米14应用无法联网原因分析_小米14网络权限修复
在FastAPI中利用lifespan与依赖注入高效管理Redis连接池


2025-11-04
浏览次数:次
返回列表
(start=1, end=7)
p.extra_y_ranges = {"y2": y2_range}
# 添加第二个 Y 轴
p.add_layout(LinearAxis(y_range_name="y2"), 'right')
# 绘制第二条线
line2 = p.line(x, y2, color="red", legend_label="Line 2", y_range_name="y2")
# 调整缩放工具 (可选,根据具体需求)
# p.tools[0].y_range = y1_range # 如果有默认的缩放工具,将其限制到第一个 Y 轴
# 显示绘图
show(p)