python - 使用 pandas df 旋转 sns 热图

标签 python pandas dataframe seaborn heatmap

我正在使用 pandas 导入 256x256 数量的数据,我想使用(类似于)sns.heatmap() 来绘制这些数据。

我将数据读入 pandas 数据框,如下所示:

df_Data = pd.read_csv(datapath,sep="\t",header=None)

作为一次试运行,为了清楚地看到发生了什么,我的数据如下所示(它没有任何标签,因为它是直接从其他软件中仅使用原始数字提取的):

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

产生这个图: Plot in original format

我想将它旋转270度,使突出显示的部分位于左下角,这样它看起来像这样(理想情况下使用更合理的轴标签格式,而不是我在ppt中所做的,但这是一个细节): Rotate image

我用seaborn绘制它,如下所示:

sns.heatmap(df_IntegratedData)

最方便的方法是什么?

最佳答案

您可以使用 rot90 旋转数据框中的数组:

df_rot90 = pd.DataFrame(np.rot90(df_IntegratedData),
                        index=reversed(df_IntegratedData.columns),
                        columns=df_IntegratedData.index)
sns.heatmap(df_rot90)

示例:

import pandas as pd
import numpy as np
import seaborn as sns

data = np.zeros((10,15))
data[0,0] = 1
df = pd.DataFrame(data)
sns.heatmap(df)

enter image description here

df1 = pd.DataFrame(np.rot90(df), index=reversed(df.columns), columns=df.index)
sns.heatmap(df1)

enter image description here

关于python - 使用 pandas df 旋转 sns 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72900119/

相关文章:

Python:如何计算数据框中特定列中的特定值

python - 无法在 Windows 上安装 Boto3

python - 限制 Python VM 内存

Python pandas将列表插入单元格

python - 从一个 Dataframe 到另一个 Dataframe 查找元素并返回其索引的快速方法

python - pandas 数据框中基于现有列值的新列

pandas - 转换 Pandas 数据框 : un pivot

python - 用Python中另一个列表中的项目替换满足某些条件的列表元素

方法内的 Python 类属性

python dataframe水平 append 列