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

如何在Pandas pivot绘制的柱状图中缩小图例条形宽度

调整分组柱状图图例中条形宽度的方案

问题场景

你使用pandas的plot.bar()绘制分组柱状图时,图例里的条形宽度和图中柱子一致,显得过宽,直接通过plt.legend()无法调整这个宽度,需要针对性处理。

解决思路

pandas绘图后会返回Axes对象,我们可以获取图例的图形句柄(handle),逐个修改这些句柄的宽度属性,再重新生成图例。

修改后的完整代码

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl

# 全局样式设置
mpl.rcParams['axes.linewidth'] = 0.8
plt.rcParams['xtick.major.pad']='1'
plt.rcParams['ytick.major.pad']='1'
plt.rcParams['font.family'] = 'serif'
plt.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']
plt.rcParams['xtick.major.size'] = 3
plt.rcParams['xtick.minor.size'] = 1.6
plt.rcParams['xtick.major.width'] = 0.9
plt.rcParams['xtick.minor.width'] = 0.9
plt.rcParams['ytick.major.size'] = 3
plt.rcParams['ytick.minor.size'] = 1.6
plt.rcParams['ytick.major.width'] = 0.9
plt.rcParams['ytick.minor.width'] = 0.9
plt.rcParams['xtick.bottom'] = True

df=pd.read_csv("input.csv")
print(df)

month_dict = {1 : "BiD", 2 : "BCD", 3 : "BTY", 4 : "HJY", 
              5 : "GGH" , 6 : "GHY", 7 : "JHT", 8 : "JRT", 
              9 : "KTY", 10 : "MNY" ,11 : "NTY",12 : "NRT", 
              13 : "PGH", 14 : "RTY" ,15 : "RER",16 : "RAS",
              17 : "STT", 18 : "TYU" ,19 : "UIU",20 : "UTY",
              21 : "UII", 22 : "UII" ,23 : "UII",24 : "UII",
              25 : "UII", 26 : "UII" ,27 : "UII",28 : "UII",
              29 : "UII", 30 : "UII"}

# 保存Axes对象
ax = df.pivot('Year','stations','Views').rename(columns=month_dict).plot.bar(figsize = (10.5,5.8),width=0.7)

# 获取图例的句柄和标签
handles, labels = ax.get_legend_handles_labels()

# 修改每个图例条形的宽度(这里设置为0.3,可根据需求调整)
for handle in handles:
    handle.set_width(0.3)

# 重新生成图例
ax.legend(handles=handles, labels=labels, bbox_to_anchor=(1.0, 1.0), prop={'size': 7.2}, frameon=False)

plt.show()

关键说明

  • 通过ax.get_legend_handles_labels()拿到图例的图形元素(每个元素是一个矩形),修改其width属性就能单独调整图例里的条形宽度,不会影响图中的柱子宽度。
  • 宽度值可以根据你的需求自由调整,比如0.2、0.3等,直到视觉效果满意为止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:10:33