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

Matplotlib绘制3D图时出现维度不匹配错误求助

问题排查与解决方案

错误原因

你调用的ha.plot()是Matplotlib中用于绘制3D折线图的函数,它要求传入的X、Y、Z参数必须是一维数组。但你传入的X、Y、first_return_area都是二维数组(shape (360,800)),函数内部会自动将二维数组展平为一维(共360*800=288000个元素),后续处理时无法匹配折线图所需的维度逻辑,因此触发广播错误。

修正代码

要绘制二维数组对应的3D曲面,你需要使用plot_surface()(填充曲面)或plot_wireframe()(线框曲面)函数,这两个函数支持二维数组输入:

import numpy as np
import matplotlib.pyplot as plt

NUM_ROWS = 360
NUM_COLS = 800 

fig = plt.figure()
ha = fig.add_subplot(111, projection='3d')

x = range(NUM_ROWS)
y = range(NUM_COLS)
X, Y = np.meshgrid(x, y, indexing='ij')

first_return_area = np.random.rand(360, 800)

# 使用plot_surface绘制填充曲面,或者换成plot_wireframe绘制线框
ha.plot_surface(X, Y, first_return_area, cmap='viridis')
plt.show()

补充说明

  • plot_surface():生成带有颜色填充的连续3D曲面,适合展示密集数据的整体趋势
  • plot_wireframe():生成由线条组成的3D网格,适合展示数据的网格结构,性能优于填充曲面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 20:33:09