我有一个稀疏矩阵X,形状(6000,300)。我喜欢像散点图这样的东西,其中有一个点,其中X(i,j)!= 0,否则就是空白。我不知道X的每一行有多少非零项.X [0]有15个非零项,X [1]有3个,等等。一行中非零项的最大数目是16。 / p>
尝试:
plt.imshow(X)
会产生一个高大的瘦图。使用plt.imshow(X, aspect='auto)
会水平拉伸图形,但点会伸展成椭圆形,图形变硬阅读。ax.spy
遇到同样的问题。 bokeh
似乎很有希望,但真正对我的jupyter内核征税。 加成:
答案 0 :(得分:1)
您可以使用nonzero()
查找非零元素,并使用scatter()
绘制点数:
import pylab as pl
import numpy as np
a = np.random.rand(6000, 300)
a[a < 0.9999] = 0
r, c = np.nonzero(a)
pl.scatter(r, c, c=a[r, c])
答案 1 :(得分:0)
在我看来,热图是这类情节的最佳人选。 imshow()将返回带有色标图例的彩色矩阵。
我没有得到你的拉伸椭圆问题,不应该是每个数据点的彩色方块吗?
如果稀疏,你可以尝试记录颜色标度。还分别绘制了12个班级,以分析是否有任何班级差异。
答案 2 :(得分:0)
plt.matshow
也证明是一个可行的解决方案。我还可以绘制带有色条的热图以及所有这些。