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

如何从CSV文件提取X/Y/Z轴数据绘制3D热力图?

从指定格式CSV提取X/Y/Z数据绘制3D热力图的解决方案

核心思路

你的CSV格式是首行对应Y轴刻度、首列对应X轴刻度、其余单元格为Z值,用Python的pandas可以快速提取对应数据,再配合numpy和matplotlib完成3D热力图绘制。

步骤与代码实现

  1. 安装依赖库
pip install pandas matplotlib numpy
  1. 读取并处理CSV数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 读取CSV:首列设为索引(X轴),首行设为列名(Y轴)
df = pd.read_csv('your_data.csv', index_col=0, header=0)

# 提取X、Y、Z原始数据
X = df.index.values  # 首列的X轴刻度
Y = df.columns.values  # 首行的Y轴刻度
Z = df.values  # 所有Z值组成的二维数组

# 将X、Y转换为网格矩阵,确保和Z的维度匹配(indexing='ij'适配pandas的行列逻辑)
X_grid, Y_grid = np.meshgrid(X, Y, indexing='ij')
  1. 绘制3D热力图
# 创建3D绘图对象
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')

# 绘制曲面热力图,可替换cmap参数选择颜色风格(如'plasma'、'coolwarm')
surf = ax.plot_surface(X_grid, Y_grid, Z, cmap='viridis', edgecolor='white', alpha=0.8)

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

# 添加颜色条,对应Z值的颜色映射
fig.colorbar(surf, shrink=0.6, aspect=10)

plt.tight_layout()
plt.show()

注意事项

  • 如果CSV中存在非数值内容,可添加df = df.apply(pd.to_numeric, errors='coerce')将非数值转为NaN,避免绘图报错
  • indexing='ij'是关键参数,若省略会导致X/Y网格和Z值的对应关系错乱
  • 若数据量极大,可考虑对Z值做降采样处理,提升绘图速度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 01:06:30