You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bokeh图表中添加90°直角箭头标注

Bokeh实现90°直角箭头标注方案

该需求完全可实现,Bokeh原生支持自定义组合标注元素,无需依赖第三方扩展即可复刻你提到的seaborn同款直角箭头效果。

实现思路

  • 核心逻辑是将直角箭头拆分为两段垂直/水平的转折线段和末端箭头两个独立元素,分别绘制后坐标对齐即可得到完整的直角标注
  • 调用bokeh.models.Segment接口绘制直角的转折线段,再调用bokeh.models.Arrow接口仅绘制末端的箭头头,两者参数匹配即可
  • 高频使用场景下可封装为自定义函数,传入标注起点、终点、转折位置参数后自动生成对应标注元素

示例代码

from bokeh.plotting import figure, show
from bokeh.models import Arrow, NormalHead, Segment

# 初始化画布
p = figure(width=400, height=300)

# 绘制直角转折线段:示例路径为从坐标(2,5)水平延伸到(5,5),再垂直向下延伸到(5,2)
p.add_glyph(Segment(x0=2, y0=5, x1=5, y1=5, line_color="gray", line_width=1.5))
p.add_glyph(Segment(x0=5, y0=5, x1=5, y1=2, line_color="gray", line_width=1.5))

# 添加末端箭头,仅保留箭头头无需额外绘制箭身
p.add_layout(Arrow(
    end=NormalHead(fill_color="gray", line_color="gray", size=10),
    x_start=5, y_start=2.8, x_end=5, y_end=2
))

# 添加标注文本
p.text(x=1.8, y=5.1, text=["目标数据点"], text_font_size="10pt", text_color="gray")

show(p)

你可以根据实际需求调整线段颜色、粗细、箭头样式、转折方向,完全匹配seaborn的标注视觉效果。

内容的提问来源于stack exchange,提问作者Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:54:09