在Python中绘制多维向量

时间:2014-11-03 09:36:40

标签: python matrix vector plot

我有一个包含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()

但这给了我结果:enter image description here

我想要的是这样的: enter image description here

1 个答案:

答案 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()

以下是一些相关链接:

https://stats.stackexchange.com/questions/63589/how-to-project-high-dimensional-space-into-a-two-dimensional-plane

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57

https://www.evl.uic.edu/documents/etemadpour_choosingvisualization_springer2016.pdf