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

Spark Pandas绘制多列条形图及科目过多时条形过窄问题咨询

代码正确性判断

你的写法逻辑符合需求,但是存在1处会触发报错的细节问题:
你的Spark DataFrame中的分数列名是首字母大写的Marks,但pivot方法中传入的是小写的marks,列名不匹配会抛出KeyError,修改为对应列名即可正常运行:

barchartPandas = df.toPandas()
# 修正列名大小写,匹配原始字段
barchartPandas.pivot('year', 'subject', 'Marks').plot.bar(stacked=False, figsize=(20,10))

补充说明:你当前设置了legend=False,如果科目数量较多,建议移除该参数保留图例,否则无法区分不同颜色对应的科目。


条形宽度&拥挤问题解决方案

可以通过以下几种方式组合调整,增大条形尺寸、优化展示效果:

  • 直接调整条形宽度参数
    plot.bar方法自带width参数,默认值为0.8,取值范围0-1,数值越大条形越宽:
barchartPandas.pivot('year', 'subject', 'Marks').plot.bar(
    stacked=False, 
    figsize=(20,10),
    width=0.9 # 调整每组条形的总宽度
)
  • 增大画布横轴尺寸
    你当前设置的画布尺寸是(20,10),可以进一步增大第一个参数(横轴长度),给条形预留更多展示空间:
# 横轴改为30,整体画布更宽
figsize=(30,10)
  • 改用横向条形图
    如果科目数量非常多,横向条形图的展示效果远好于纵向,只需要把plot.bar改为plot.barh即可:
barchartPandas.pivot('year', 'subject', 'Marks').plot.barh(stacked=False, figsize=(20,15))
  • 优化标签展示避免挤压
    可以添加rot参数旋转x轴标签,避免标签重叠占用额外空间,间接给条形预留更多宽度:
# x轴标签旋转45度
plot.bar(stacked=False, figsize=(20,10), width=0.9, rot=45)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 22:06:03