使用 DataFrame 的热图

Heat Map with DataFrame

我有一个 pandas 形式的数据框

    State   RF      LOG     KNN     MLP     DT      LDA     AB
0   AR      0.95    0.87    0.81    0.89    0.81    0.84    0.87
1   FL      0.83    0.86    0.85    0.86    0.89    0.82    0.85
2   NJ      0.89    0.81    0.88    0.83    0.89    0.84    0.83
3   NV      0.77    0.72    0.89    0.79    0.79    0.73    0.70
4   TX      0.71    0.70    0.71    0.77    0.70    0.70    0.92
5   CA      0.69    0.81    0.81    0.88    0.88    0.60    0.89

我怎样才能制作一个热图,例如,在 Seaborn 上,X 轴上有列的名称:[RF、LOG、KNN、MLP、DT、LDA、AB],在Y 轴列状态 [AR、FL、NJ、NV、TX、CA] 的名称以及方块中显示的相应值是“热”指标吗?

如果对州的列进行索引,可以直接绘制热图。

import pandas as pd
import numpy as np
import io
import seaborn as sns
sns.set_theme()

data = '''
    State   RF      LOG     KNN     MLP     DT      LDA     AB
0   AR      0.95    0.87    0.81    0.89    0.81    0.84    0.87
1   FL      0.83    0.86    0.85    0.86    0.89    0.82    0.85
2   NJ      0.89    0.81    0.88    0.83    0.89    0.84    0.83
3   NV      0.77    0.72    0.89    0.79    0.79    0.73    0.70
4   TX      0.71    0.70    0.71    0.77    0.70    0.70    0.92
5   CA      0.69    0.81    0.81    0.88    0.88    0.60    0.89
'''
df = pd.read_csv(io.StringIO(data), delim_whitespace=True)
df.set_index('State', inplace=True)
ax = sns.heatmap(df)