【问题标题】:Matplotlib: How to plot heatmap based on valuesMatplotlib:如何根据值绘制热图
【发布时间】:2019-10-17 17:57:44
【问题描述】:

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

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

【问题讨论】:

    标签: python pandas matplotlib seaborn heatmap


    【解决方案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)
    

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

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

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

    sns.heatmap(data)
    

    我得到以下输出。

    希望这是你的想法。

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2019-10-21
      • 2016-01-21
      • 2013-07-19
      • 2013-11-26
      • 2018-11-23
      • 2017-04-23
      • 2020-06-20
      • 2021-11-04
      相关资源
      最近更新 更多