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

Seaborn heatmap如何从DataFrame中指定x、y轴绘制误差热力图

实现方法

你当前的问题根源是seaborn.heatmap要求输入二维矩阵结构的宽格式DataFrame:行索引对应纵轴标签、列名对应横轴标签,单元格值直接对应热力填充数值。你目前使用的是长格式的三元组表(x坐标、y坐标、误差值),直接传入无法匹配热力图的结构要求,需要先做格式转换。

具体操作步骤

  1. 用pivot方法将长表转换为符合要求的宽表
  2. 可选调整:对y轴排序以符合常规坐标显示逻辑(y值越大位置越靠上)
  3. 传入转换后的宽表绘制热力图

完整可运行代码

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd

# 1. 长表转宽表:index指定纵轴字段,columns指定横轴字段,values指定填充值字段
df_heatmap = df_X.pivot(index='y_position', columns='x_position', values='x_error')

# 可选:如果希望y轴数值大的在上(符合常规坐标显示习惯),取消下行注释
# df_heatmap = df_heatmap.sort_index(ascending=False)

# 2. 绘制热力图,cmap可根据需求更换配色方案
p1 = sns.heatmap(df_heatmap, annot=True, cmap='viridis')

# 补充坐标轴标签
plt.xlabel('x_position')
plt.ylabel('y_position')

plt.show()

特殊情况处理

如果你的(x,y)组合存在重复值,可先用pivot_table做聚合后再绘图,示例如下:

# 重复坐标的误差值取平均
df_heatmap = df_X.pivot_table(index='y_position', columns='x_position', values='x_error', aggfunc='mean')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:36:03