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

pandas绘制堆叠水平条形图y轴标签重复与配色修改问题

pandas堆叠水平条形图冗余y轴标签移除与配色修改方案

问题描述

  • 基于DataFrame的Audience列值计数结果绘制堆叠水平条形图时,y轴重复显示两次Audience标签
  • 原有实现代码:
DFGroup.Audience.value_counts().sort_values().unstack('Key').plot(kind = 'barh', stacked = True)
  • 额外需求:自定义图表配色方案

原因说明

重复标签来自value_counts()生成的Series自带的索引名,pandas调用plot绘图时会自动将索引名渲染为y轴标签,和分类标签旁的Audience文字重复,属于pandas默认渲染的冗余内容。

解决代码

直接通过绘图返回的坐标轴对象清空y轴标签即可,同时通过绘图自带参数修改配色:

import matplotlib.pyplot as plt

# 绘制堆叠水平条形图
ax = DFGroup.Audience.value_counts().sort_values().unstack('Key').plot(
    kind="barh",
    stacked=True,
    # 配色修改:可替换为matplotlib内置色板名,或传入自定义十六进制颜色列表
    colormap="tab20c",
    # 自定义纯色方案示例:color = ["#4e79a7", "#f28e2b", "#e15759", "#76b7b2"]
)

# 移除y轴重复的Audience标签
ax.set_ylabel("")

# 可选美化配置
ax.legend(title="分类Key")
plt.tight_layout()
plt.show()

配置说明

  • 移除冗余标签核心逻辑:拿到plot方法返回的Axes对象,调用set_ylabel("")把自动生成的y轴标签置空,不会影响y轴上的分类刻度显示
  • 配色配置:
    • 用内置连续/离散色板时,给colormap传入matplotlib支持的色板名称即可,常用可选值有Set3、Pastel1、viridis、coolwarm
    • 需要完全自定义颜色时,去掉colormap参数,改用color参数传入和堆叠类别数量匹配的颜色值列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:14:51