我有一个500 X 18904的大矩阵。
由于大多数值都是零,因此我无法清晰地看到图案,因为零在颜色栏中占主导地位。
为了更仔细地查看数据,我需要放大图像的不同部分。有没有可靠的方法使用colorbar可视化这些数据?
这是我的代码和输出。
import numpy as np
import matplotlib.pyplot as plt
import scipy.io as sio
j = sio.loadmat('UV_matrix.mat')
k = j['UV']
plt.imshow(k, aspect='auto')
plt.show()
答案 0 :(得分:4)
我可以通过使用numpy数组来考虑两个选项。
假设您的数据大多高于零,但有很多零。:
vmin = some_value_higher_than_zero
plt.matshow(k,aspect='auto',vmin=vmin)
将所有零设置为NaN。他们自动被排除在外。
k[k==0.0]=np.nan
plt.matshow(k,aspect='auto')
NB。 imshow和matshow都在这里工作。
另一种选择,当你的矩阵非常稀疏时,就是使用散点图。
x,y = k.nonzero()
plt.scatter(x,y,s=100,c=k[x,y]) #color as the values in k matrix