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

不使用Numpy、Pandas时Matplotlib柱状图柱子分隔问题求助

问题原因

你的代码核心错误是Python原生列表不支持直接与数值进行批量算术运算,eixo_X_ano - largura/2属于非法操作,无法得到每个年份减去宽度偏移后的坐标,因此无法正确排布两组柱子的位置。

修正后代码(无需引入Numpy/Pandas)

import matplotlib.pyplot as plt

eixo_X_ano = [78,82,86,90,94]
eixo_Y_AMM = [1.8,1.75,1.9,1.77,1.74]
eixo_Y_AMF = [1.71,1.69,1.8,1.73,1.82]

plt.title("获得奖牌运动员的平均身高")
plt.xlabel("年份")
plt.ylabel("平均身高")

largura = 2
# 用列表推导式计算两组柱子的X轴偏移位置
x_pos_masculino = [x - largura/2 for x in eixo_X_ano]
x_pos_feminino = [x + largura/2 for x in eixo_X_ano]

plt.ylim(1,2.50)
plt.bar(x_pos_masculino, eixo_Y_AMM, largura, label = "男子组", color = "teal")
plt.bar(x_pos_feminino, eixo_Y_AMF, largura, label = "女子组", color = "r")
plt.legend()
plt.xticks(eixo_X_ano)
plt.show()

修改说明

  • 采用Python原生列表推导式逐元素计算两组柱状图的X轴偏移位置,完全不需要引入Numpy、Pandas库,符合使用限制要求
  • 设定的柱子宽度2适配X轴年份间隔4的设置,两组柱子各自占2单位宽度,同一年份的两组柱子不会重叠,相邻年份的柱子也不会互相挤压。

内容的提问来源于stack exchange,提问作者FELIP ANDRADE RALIN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:06:03