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

如何修改水平条形图尺寸与颜色以避免数值重叠(附代码)

修改水平条形图尺寸与颜色以避免数值重叠的实现方案

针对需求,直接在原代码的plot()方法中添加参数,再配合少量额外处理,就能实现尺寸调整、颜色自定义,同时解决数值重叠问题,具体实现如下:

1. 完整修改代码

import matplotlib.pyplot as plt

# 获取用户统计数据并按升序排序
user_counts = df1.user.value_counts().sort_values()

# 绘制水平条形图,同步调整尺寸、颜色与基础字体
ax = user_counts.plot(
    kind='barh',
    figsize=(10, 7),  # 自定义图表宽高,类别多就加大高度
    color='#2196F3',  # 单一颜色(可用十六进制色值/预定义颜色名)
    fontsize=10       # 缩小坐标轴字体,避免标签拥挤
)

# 手动将数值标签放在条形右侧,彻底避免重叠
for index, value in enumerate(user_counts):
    ax.text(value + 0.3, index, str(value), va='center')

# 自动优化布局,让元素间距更合理
plt.tight_layout()

plt.show()

2. 关键参数与处理说明

  • 调整尺寸:通过figsize=(宽度, 高度)自定义图表大小,比如类别数量多就适当增大高度值
  • 自定义颜色:
    • 单一颜色:用color指定(如'#FF5722'或'green')
    • 多色/渐变:替换为cmap='viridis'(或其他matplotlib内置配色方案),让每个条形颜色不同
  • 避免数值重叠:
    • 用fontsize缩小坐标轴字体,减少标签占用空间
    • 通过ax.text()手动将数值标签移到条形外侧,彻底避开条形区域
    • plt.tight_layout()自动调整图表元素间距,防止边缘内容被截断

3. 针对大量类别的扩展处理

如果用户类别特别多,还可以单独缩小y轴标签字体:

ax.set_yticklabels(user_counts.index, fontsize=8)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:45:39