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

Matplotlib报错:x与y首维度不一致,求解决方法

问题解决:x和y维度不匹配错误及线性回归线拟合

错误原因

你的代码里,每次循环计算的p是单个数值(标量),而x是包含101个元素的数组,plt.plot()要求传入的x和y必须是相同长度的序列,所以才会报“x和y不具有相同的首维度”的错误。而且当前循环里每次画单个点就立刻显示,也不符合绘制完整曲线、拟合回归线的需求。

修正后的代码

先收集所有z和对应p值的数组,再绘制数据并拟合回归线:

import matplotlib.pyplot as plt
import numpy as np

# 生成所有z值的数组,批量计算对应p值
z_values = np.arange(0, 10100, 100)
p_values = 1013 * np.power((1 - ((z_values/1000) / 45.846)), 5.263)

# 绘制原始数据点
plt.scatter(z_values, p_values, label='原始数据')

# 拟合线性回归线:polyfit返回斜率和截距
slope, intercept = np.polyfit(z_values, p_values, 1)
regression_line = slope * z_values + intercept

# 绘制回归线
plt.plot(z_values, regression_line, color='red', label=f'回归线: y={slope:.4f}x + {intercept:.4f}')

# 设置图表属性
plt.xlabel('z')
plt.ylabel('p')
plt.legend()
plt.show()

关键说明

  • 用np.arange批量生成z的数组,直接运算得到所有p值,避免循环里的单个标量问题
  • np.power比内置pow更适配数组运算场景
  • np.polyfit(z, p, 1)用于拟合一次(线性)回归,参数依次是自变量、因变量、多项式次数
  • 用scatter展示原始数据点,plot绘制回归线,两者对比更直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:30:28