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

调用distrobution.plot绘散点图报错‘x与y必须尺寸相同’,求原因

问题原因及解决方案

错误原因

你调用distrobution.plot()绘制散点图时,x参数传入了两个列名(["Observed", "Modelled"]),而y参数仅传入了一个列名(["Amount (mm)"])。

散点图的核心逻辑是需要一对一的数值对:每个x值必须对应一个y值。当你给x传入多列时,pandas会将这两列数据合并为二维数组,而y对应的是一维数组,两者维度不匹配,因此触发x and y must be the same size错误。

解决方案

根据你的需求,有两种常见处理方式:

1. 同一坐标轴上分别绘制两个散点图

如果想同时展示Observed与Amount (mm)、Modelled与Amount (mm)的散点关系,可以复用同一个坐标轴:

# 先绘制Observed的散点图,获取坐标轴对象
ax = distrobution.plot(x="Observed", y="Amount (mm)", kind="scatter", label="Observed", color="steelblue")
# 在同一坐标轴上绘制Modelled的散点图
distrobution.plot(x="Modelled", y="Amount (mm)", kind="scatter", label="Modelled", color="tomato", ax=ax)

2. 重塑数据后绘制分组散点图

通过melt方法将数据转换为长格式,再利用hue参数区分两组数据:

# 重塑数据:将Observed和Modelled转为分组列
df_melted = distrobution.melt(
    id_vars=["Amount (mm)"],
    value_vars=["Observed", "Modelled"],
    var_name="Data Type",
    value_name="Value"
)
# 绘制带分组标识的散点图
df_melted.plot(x="Value", y="Amount (mm)", kind="scatter", hue="Data Type")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:47:33