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

如何将pandas DataFrame绘制的seaborn热力图旋转270度

seaborn热力图270度旋转实现方法

场景说明

  • 使用pandas读取256×256规模的纯数值数据集,文件为制表符分隔格式,无行列标签,读取代码如下:
import pandas as pd
import seaborn as sns
df_Data = pd.read_csv(datapath, sep="\t", header=None)
  • 测试数据结构:左上角区域值为100,其余区域值为0,结构示例:
100 100 100 100 100 100 100 100 0 0 0 0 0 ..... 0
100 100 100 100 100 100 100 100 0 0 0 0 0 ..... 0
100 100 100 100 100 100 100 100 0 0 0 0 0 ..... 0
100 100 100 100 100 100 100 100 0 0 0 0 0 ..... 0
100 100 100 100 100 100 100 100 0 0 0 0 0 ..... 0
0 . ... ... ... ... ... ... ... ... ... ... ... 0
... ... ... ... ... ... ... ... ... ... ... ... .
0 . ... ... ... ... ... ... ... ... ... ... ... 0
  • 初始绘图代码:
sns.heatmap(df_IntegratedData)
  • 初始效果:数值为100的高亮块位于热力图左上角:
    原始格式热力图
  • 目标效果:将热力图旋转270度,使高亮块移动到左下角,坐标轴标签调整不属于核心需求,目标效果参考:
    旋转后效果

最优实现方案

不需要调整画布旋转参数,直接对输入数据做矩阵变换即可实现,无额外性能开销,也不会出现文字倒置、标签错位问题。
270度旋转的矩阵等价操作是:先对矩阵转置,再沿垂直方向上下翻转,直接在传入heatmap时完成变换即可:

sns.heatmap(df_IntegratedData.T.iloc[::-1])

代码逻辑说明

  • .T:pandas原生转置方法,等价于将矩阵顺时针旋转90度
  • .iloc[::-1]:按行索引倒序取值,实现矩阵上下翻转,和转置操作叠加后刚好实现270度顺时针旋转效果
  • 该操作不会修改原始DataFrame的数据,若需要复用旋转后的数据,可以提前赋值给新变量:
df_rotated_270 = df_IntegratedData.T.iloc[::-1]
sns.heatmap(df_rotated_270)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:51:19