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

如何在无y坐标参数的情况下为Matplotlib横向柱状图添加指定位置文本

横向柱状图指定位置添加文本解决方案

解决该问题不需要依赖实际数据坐标系的y值,直接切换坐标参考系即可实现,具体方案如下:

方案1:添加文本到坐标轴区域左上角

直接调用plt.text()时指定坐标参考系为轴相对坐标系即可,该坐标系取值范围固定为0~1,(0,0)对应坐标轴左下角,(1,1)对应坐标轴右上角,完全不需要用到横向柱状图的实际y轴数值:

import matplotlib.pyplot as plt

# 此处保留你原有的横向柱状图绘制代码
# ...

# 直接添加左上角文本
ax = plt.gca()
plt.text(
    x=0.02, y=0.98,
    s="你需要展示的文本内容",
    transform=ax.transAxes,  # 关键参数:切换为轴相对坐标系
    ha="left", va="top", # 对齐方式设置,避免文本超出显示区域
    fontsize=12
)
plt.show()

方案2:添加文本到整个画布左上角

如果需要文本固定在整张图的左上角,不受坐标轴范围影响,使用plt.figtext()即可:

plt.figtext(
    x=0.05, y=0.95,
    s="你需要展示的文本内容",
    ha="left", va="top",
    fontsize=12
)

附加:给单个柱子添加标注

如果你需要给每个横向柱子加标注,也可以直接通过bar对象获取坐标,不需要提前知道y值:

# bars是你调用barh绘制横向柱状图返回的对象
bars = ax.barh(y_pos, value_list)
for bar in bars:
    bar_width = bar.get_width()
    bar_y_center = bar.get_y() + bar.get_height() / 2
    ax.text(bar_width, bar_y_center, f"{bar_width}", ha="left", va="center")

效果参考

当前绘图效果:
当前绘图效果
目标实现效果:
目标效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:04