我有一个包含N个用户和K个项目的Matrix。我想通过将每一行视为具有多个坐标的向量来在Python中绘制该矩阵。例如,简单的点图需要X,Y
。我的向量具有K
坐标,我想将这些N
向量中的每一个作为一个点来查看相似之处。任何人都可以帮助我吗?
更新
#Matrix M shape = (944, 1683)
plt.figure()
plt.imshow(M, interpolation='nearest', cmap=plt.cm.ocean)
plt.colorbar()
plt.show()
但这给了我结果:
我想要的是这样的:
答案 0 :(得分:1)
从这个问题很难确定我的答案是否相关,但这是我最好的猜测。我相信deltascience正在询问多维向量通常如何绘制成二维空间,就像散点图一样。我认为最好的答案是通常会执行某种降维算法。换句话说,你不是通过找到正确的matplotlib代码来做到这一点;您将数据转换为正确的形状(X轴的一个列表和Y轴的另一个列表)然后使用典型的matplotlib方法绘制它:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
M = np.random.rand(944, 1683)
pca = PCA(n_components=2)
reduced = pca.fit_transform(M)
# We need a 2 x 944 array, not 944 by 2 (all X coordinates in one list)
t = reduced.transpose()
plt.scatter(t[0], t[1])
plt.show()
以下是一些相关链接:
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html
https://www.evl.uic.edu/documents/etemadpour_choosingvisualization_springer2016.pdf