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

Matplotlib绘制散点图报x and y must be the same size错误如何修复

报错根因

触发ValueError: x and y must be the same size的核心原因是代码笔误:绘制未存活群体的散点时,y轴参数错用了存活组的survived.Pclass,和x轴传入的未存活组failed.Fare样本长度不一致。对应泰坦尼克号数据集的存活、未存活人数本身就不相等,两个长度不同的数组无法一一对应绘制散点,直接触发Matplotlib的参数校验报错。
出错的代码行如下:

# 错误:y轴取了survived组的Pclass,和x轴failed组的Fare长度不匹配
plt.scatter(failed.Fare, survived.Pclass, alpha =0.5, color = 'blue', label='Failed');
修复方案

把上述错误行的y轴参数替换为未存活组自己的failed.Pclass即可,修复后的完整可运行代码:

plt.figure(figsize=(10,6))
plt.scatter(survived.Fare, survived.Pclass, alpha =0.5, color = 'orange', label='Survived')
plt.scatter(failed.Fare, failed.Pclass, alpha =0.5, color = 'blue', label='Failed')
plt.title('Distribution of Pclass and Fare for Survived and Failed')
plt.xlabel('Fare')
plt.ylabel('Pclass')
plt.legend()
plt.savefig('Survived_and_not_survived.jpg')

运行后即可正常输出两类群体的Pclass-Fare分布散点图,不会再触发长度不匹配报错。

同类错误排查技巧
  • 写分组绘图代码时,传入scatter/plot的x、y参数必须来自同一个数据子集,跨子集取数非常容易出现长度不匹配问题
  • 报错前可以先打印各子集长度做校验:print(f"存活组样本数:{len(survived)}, 未存活组样本数:{len(failed)}"),快速确认数据源长度
  • Pclass是取值为1/2/3的离散分类变量,后续可以加一行plt.yticks([1,2,3])优化y轴刻度显示,避免出现无意义的小数刻度

之前运行代码输出的异常散点图参考:
错误触发时输出的异常散点图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:00:17