【问题标题】:Plot only one or few rows of a correlation matrix仅绘制相关矩阵的一行或几行
【发布时间】:2015-08-29 23:52:54
【问题描述】:

我有一个名为corrdata 的相关矩阵,我使用numpy.corrcoef 计算了该矩阵。然后我要做的是提取该矩阵的一行或几行,现在只想绘制它们而不是整个矩阵。 由于矩阵不再是正方形,因此无法使用pcolorimshow 等来绘制数据。

所以我想寻求最好的替代方法来绘制这些提取的相关系数,并获得与相关矩阵相同的外观,用彩色方块表示相关系数的值,但只显示几行完整的矩阵。

【问题讨论】:

    标签: python numpy matplotlib heatmap correlation


    【解决方案1】:

    您可以简单地插入一个额外的单例维度,以便将您的 (n,) 1D 向量转换为 (1, n) 2D 数组,然后照常使用 pcolorimshow 等:

    import numpy as np
    from matplotlib import pyplot as plt
    
    # dummy correlation coefficients
    coeffs = np.random.randn(10, 10)
    row = coeffs[0]
    
    # indexing with None (or equivalently, np.newaxis) inserts an extra singleton
    # dimension
    plt.imshow(row[None, :], cmap=plt.cm.jet, interpolation='nearest')
    

    See here 了解更多将一维向量转换为二维数组的方法。

    【讨论】:

    • 这很好用,非常感谢。很高兴解决方案是“简单”:)
    • 是否也可以将其用于通过 .corr() 获得的“常规”相关数据帧?
    猜你喜欢
    • 2021-11-18
    • 2023-02-21
    • 2018-12-05
    • 2015-06-08
    • 2022-11-14
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 2019-11-15
    相关资源
    最近更新 更多