Matplotlib:如何根据值绘制热图

时间:2019-06-01 10:47:04

标签: python pandas matplotlib seaborn heatmap

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

,  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()方法。我在网上看到的示例通常处理相关矩阵的热图,或者文件的结构不同。

1 个答案:

答案 0 :(得分:1)

这是我尝试使用一些伪造数据并假定每个单元格中的值都可以按原样使用并且不需要进行更多处理的情况。

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)

使用熊猫读取其中不包含“-”的行中的数据。

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

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

sns.heatmap(data)

我得到以下输出。

Heatmap from matrix csv

希望这就是您的想法。