我正在使用 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
我想将它旋转270度,使突出显示的部分位于左下角,这样它看起来像这样(理想情况下使用更合理的轴标签格式,而不是我在ppt中所做的,但这是一个细节):
我用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)
df1 = pd.DataFrame(np.rot90(df), index=reversed(df.columns), columns=df.index)
sns.heatmap(df1)
关于python - 使用 pandas df 旋转 sns 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72900119/