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

如何用Python结合Excel数据创建3D曲面图

直接用X/Y/Z离散数据生成3D图的实现方法

1. 3D散点图(适配无规则离散点)

如果你的X、Y、Z是独立一维数组(每行对应一个点的三维坐标),直接用scatter3D就能绘制:

import matplotlib.pyplot as plt
import numpy as np

# 替换成你实际的X/Y/Z数据
X = np.array([1, 2, 3, 4, 5])
Y = np.array([2, 4, 6, 8, 10])
Z = np.array([3, 6, 9, 12, 15])

fig = plt.figure()
ax = fig.add_subplot(projection='3d')

# 绘制3D散点,用Z值区分颜色
ax.scatter3D(X, Y, Z, c=Z, cmap='viridis')

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

2. 3D曲面图(适配网格状数据)

如果你的X、Y、Z是网格点对应的数值(比如X/Y是网格横纵坐标,Z对应点高度),先把X/Y转成网格矩阵,再用plot_surface绘制:

import matplotlib.pyplot as plt
import numpy as np

# 替换成你实际的网格状X/Y/Z数据
X = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
Y = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
Z = np.array([[1, 2, 3], [2, 4, 6], [3, 6, 9]])

fig = plt.figure()
ax = fig.add_subplot(projection='3d')

# 绘制3D曲面
ax.plot_surface(X, Y, Z, cmap='viridis')

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

如果你的原始X/Y是一维网格坐标(比如X=[1,2,3]、Y=[1,2,3]),可以用np.meshgrid转成网格矩阵:

X_1d = np.array([1,2,3])
Y_1d = np.array([1,2,3])
X, Y = np.meshgrid(X_1d, Y_1d)
# 再对应生成3x3的Z数组即可

验证图表正确性的方法

  • 抽选几个关键点,手动核对坐标:比如找X、Y的特定取值,对应查看图表中该点的Z值是否和原始数据匹配
  • 曲面图需检查网格排列逻辑:确认X/Y的递增方向和图表轴方向一致,避免数据错位

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:42:48