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

Matplotlib水平条形图Y轴刻度标签移至条形内部左对齐方法

将Matplotlib水平条形图Y轴刻度标签移至条形内部并左对齐

当然可以实现这个需求!咱们只需要调整刻度标签的显示逻辑,用自定义文本替代默认的Y轴刻度标签即可,具体操作如下:

实现思路

  1. 先隐藏默认的Y轴刻度标签(我们会在条形内部重新添加自定义标签)
  2. 遍历每个条形,在对应位置添加左对齐的文本标签,确保标签落在条形内部

修改后的完整示例代码

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
# Example data
people = ('Tom', 'Dick', 'Harry', 'Slim', 'Jim')
y_pos = np.arange(len(people))
performance = 3 + 10 * np.random.rand(len(people))
error = np.random.rand(len(people))

# 绘制水平条形图
ax.barh(y_pos, performance, xerr=error, align='center', color='green', ecolor='black')

# 隐藏默认的Y轴刻度标签和刻度线(若需保留刻度线,可去掉ax.set_yticks([]))
ax.set_yticks([])
ax.tick_params(axis='y', labelleft=False)

# 为每个条形添加内部左对齐的标签
for y_coord, name in zip(y_pos, people):
    # x=0.1 让标签和条形左边缘留一点空隙;va='center' 保证垂直方向与条形居中对齐
    ax.text(0.1, y_coord, name, va='center', ha='left', color='white', fontsize=10)

plt.tight_layout()
plt.show()

参数细节说明

  • ax.text()的x参数设为0.1是为了避免标签紧贴条形左边缘,你可以根据条形的实际长度灵活调整这个值;
  • va='center'确保文本在垂直方向和条形完美居中;
  • ha='left'直接实现文本左对齐的效果;
  • color='white'是为了和绿色条形形成鲜明对比,你可以根据自己的条形配色调整文本颜色;
  • 如果想保留Y轴的刻度线,只需要删除ax.set_yticks([])这一行代码就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:20:50