仅绘制相关矩阵的一行或几行
Plot only one or few rows of a correlation matrix
我有一个名为 corrdata
的相关矩阵,它是我使用 numpy.corrcoef
计算的。然后我所做的是提取该矩阵的一行或几行,现在只想绘制它们而不是整个矩阵。
因为矩阵不再是正方形,所以无法使用 pcolor
、imshow
或类似的方法绘制数据。
所以我想寻求最好的替代方法来绘制这些提取的相关系数,并获得与相关矩阵相同的外观,即代表相关系数值的彩色方块,但只显示几行的完整矩阵。
您可以简单地插入一个额外的单一维度,以便将您的 (n,)
一维向量转换为 (1, n)
二维数组,然后使用 pcolor
、imshow
等。正常:
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 了解更多将一维向量转换为二维数组的方法。
我有一个名为 corrdata
的相关矩阵,它是我使用 numpy.corrcoef
计算的。然后我所做的是提取该矩阵的一行或几行,现在只想绘制它们而不是整个矩阵。
因为矩阵不再是正方形,所以无法使用 pcolor
、imshow
或类似的方法绘制数据。
所以我想寻求最好的替代方法来绘制这些提取的相关系数,并获得与相关矩阵相同的外观,即代表相关系数值的彩色方块,但只显示几行的完整矩阵。
您可以简单地插入一个额外的单一维度,以便将您的 (n,)
一维向量转换为 (1, n)
二维数组,然后使用 pcolor
、imshow
等。正常:
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 了解更多将一维向量转换为二维数组的方法。