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

能否在Python中绘制如图所示的2D与3D等高线组合图?

Python实现2D与3D等高线组合图的方案

完全可以用Python实现这类2D+3D等高线组合图,核心依赖matplotlib库(搭配mpl_toolkits.mplot3d模块),即使没有精确数学方程,用模拟数据或实际数值数据就能完成实现。

示例代码(模拟数据版)

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 生成网格坐标
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)

# 模拟复杂地形的Z值(无需真实方程,用高斯函数叠加模拟)
Z = np.exp(-(X**2 + Y**2)/2) + 0.5*np.exp(-((X-2)**2 + (Y-2)**2)/4) + 0.3*np.exp(-((X+3)**2 + (Y-1)**2)/3)

# 创建画布与双栏布局
fig = plt.figure(figsize=(12, 6))

# 左侧3D等高线图(带底部投影等高线)
ax3d = fig.add_subplot(121, projection='3d')
# 绘制3D曲面+底部等高线投影
surface = ax3d.plot_surface(X, Y, Z, cmap='viridis', alpha=0.7)
ax3d.contour(X, Y, Z, zdir='z', offset=np.min(Z)-0.2, cmap='viridis')
ax3d.set_xlabel('X')
ax3d.set_ylabel('Y')
ax3d.set_zlabel('Z')
ax3d.set_title('3D等高线图')

# 右侧2D等高线热力图
ax2d = fig.add_subplot(122)
# 填充式等高线+黑色轮廓线
ax2d.contourf(X, Y, Z, cmap='viridis')
ax2d.contour(X, Y, Z, colors='black')
ax2d.set_xlabel('X')
ax2d.set_ylabel('Y')
ax2d.set_title('2D等高线热力图')

# 共享颜色条
fig.colorbar(surface, ax=[ax3d, ax2d], shrink=0.8)

plt.tight_layout()
plt.show()

关键说明

  • 若有实际数值数据(比如从CSV、TXT读取的离散点),只需将示例中模拟的X、Y、Z替换为你的真实数据即可,无需依赖数学方程。
  • 可通过调整cmap(配色方案)、alpha(曲面透明度)、等高线层级(contour函数的levels参数)、子图布局等,匹配参考图的视觉风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:30:50