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

如何调整Seaborn displot中堆叠柱状图的柱宽?

如何调整Seaborn displot堆叠柱状图的柱子宽度?

问题描述

我正在使用Seaborn的displot绘制堆叠柱状图,代码如下:

g = sns.displot(data=df, x='collection_year', hue='WB_Income group', multiple='stack',col="ena_species",col_wrap=6,facet_kws={'sharey': False, 'sharex': False})

输出效果如下:
堆叠柱状图输出

请问如何增加这些柱状图的柱子宽度?

解决方法

displot是Seaborn的figure级函数,绘制柱状图时底层调用的是histplot,可以通过传递对应参数调整柱子宽度,分两种场景处理:

场景1:x轴为离散分类变量(如年份被当作类别处理)

通过hist_kws参数给底层histplot传递width参数,直接控制柱子宽度:

g = sns.displot(
    data=df,
    x='collection_year',
    hue='WB_Income group',
    multiple='stack',
    col="ena_species",
    col_wrap=6,
    facet_kws={'sharey': False, 'sharex': False},
    hist_kws={'width': 0.8}  # 调整数值改变宽度,0-1之间取值,值越大柱子越宽
)

注:width值超过1可能会导致相邻柱子重叠,建议根据实际展示效果微调。

场景2:x轴为连续数值变量

直接设置binwidth参数,该参数定义每个柱子覆盖的x轴范围,值越大柱子越宽:

g = sns.displot(
    data=df,
    x='collection_year',
    hue='WB_Income group',
    multiple='stack',
    col="ena_species",
    col_wrap=6,
    facet_kws={'sharey': False, 'sharex': False},
    binwidth=1.5  # 单位与x轴一致,按需调整
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:00:20