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

如何为Python多组双列条形图设置自定义独立标签?

实现每组自定义标签的双列条形图

基于原示例的matplotlib实现逻辑,只需要调整x轴刻度的位置与对应标签,就能给每组双列条形设置完全不同的自定义标签,下面是完整的可运行代码:

import matplotlib.pyplot as plt
import numpy as np

# 定义组名、每组的条形标签和对应数据
group_names = ['第一组', '第二组']
per_group_labels = [
    ['project 7', 'project 8'],
    ['low salary 5 years', 'high salary 5 years']
]
group_data = [
    [12, 18],  # 第一组两个条形的数值
    [9, 22]    # 第二组两个条形的数值
]

bar_width = 0.35
# 计算每组的中心x位置
group_x = np.arange(len(group_names))

fig, ax = plt.subplots()

# 循环绘制每组的两个条形
for idx in range(len(group_names)):
    # 单个条形的x位置:组中心 ± 半宽
    bar_x_positions = [group_x[idx] - bar_width/2, group_x[idx] + bar_width/2]
    ax.bar(bar_x_positions, group_data[idx], bar_width, label=group_names[idx])

# 收集所有条形的位置和对应的自定义标签
all_bar_positions = []
all_bar_labels = []
for idx in range(len(group_names)):
    all_bar_positions.extend([group_x[idx] - bar_width/2, group_x[idx] + bar_width/2])
    all_bar_labels.extend(per_group_labels[idx])

# 设置x轴刻度为每个条形的位置,标签替换为自定义文本
ax.set_xticks(all_bar_positions)
ax.set_xticklabels(all_bar_labels, rotation=45, ha='right')

# 图表基础设置
ax.set_ylabel('数值')
ax.set_title('每组自定义标签的双列条形图')
ax.legend()

# 自动调整布局,避免标签被截断
plt.tight_layout()
plt.show()

关键修改说明

  • 单独定义per_group_labels列表,分别存放两组的自定义条形标签
  • 绘制条形时,精准计算每个条形的x坐标(基于组中心位置偏移)
  • 把所有条形的位置和对应标签汇总后,替换原有的组级刻度,让每个条形显示专属标签
  • 给x轴标签添加旋转角度,避免长标签重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:35:28