Matplotlib:如何根据值绘制热图

Matplotlib: How to plot heatmap based on values

我需要根据文件中的值绘制热图。文件结构如下:

,  c1 ,  c2  , ... , cN
-- --    --          --
c1, 1 , 0.24 , ... , 0.37
c2,0.29,  1  , ... , 0.31
...
...
...
cN,0.42, 0.27, ... ,  1

我需要热图形式的输出,其中 x 轴和 y 轴的标签都是 c1,c2,...,cN

这些值不是相关值,而是0到1范围内的交集值。因此,我无法使用corr()方法。我在网上看到的示例通常处理相关矩阵的热图,或者文件以不同的方式构建。

这是我对一些假数据的尝试,并假设每个单元格中的值都可以按原样使用,不需要更多处理。

import seaborn as sns

创建虚假数据

data = """
,  c1 ,  c2  , cN
-- --    --    --
c1, 1 , 0.24 , 0.37
c2,0.29,  1  , 0.31
cN,0.42, 0.27, 1
"""
with open("temp.txt", "wt") as f:
    f.write(data)

使用pandas读取数据并排除其中带有'--'的行。

data = pd.read_csv("temp.txt",index_col=0, skiprows=[2])

使用 seaborn.heatmap 创建带有适当标签的热图。

sns.heatmap(data)

我得到以下输出。

希望这是您的想法。