Python Colormap用于显示高值范围内的差异

时间:2019-06-05 11:05:39

标签: python matplotlib colors seaborn

是否有任何彩色图显示好图像的高值范围内的差异,并且如果没有(因为我没有找到cm),则可以通过msyself定义它并将其作为参数cmap提供给seaborn / matplotlib图?我已经尝试过对数色阶调整,但是很难定义只有图像中最高的10%应该明显具有良好的色差,其余的例如是黑色。 因此,我有一个图像/数组,其数字在0到2000之间。我只知道在1800到2000之间的数字之间有明显区别。 有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

使用imshow的{​​{1}}和vmin参数,可以将颜色范围限制为1800到2000。如果希望将较低的值映射为黑色,则可以使用{{ 1}}。

vmax

enter image description here

答案 1 :(得分:0)

这并不是您想要的,但是您可以尝试分别绘制两组,我的意思是:

vals = np.array([1,2,3,101,120,150])
xs = np.arange(6)
ys = np.arange(6)

mask = vals>100
vals2 = vals[mask]
xs1 = xs[mask]
xs2 = xs[np.logical_not(mask)]
ys1 = ys[mask]
ys2 = ys[np.logical_not(mask)]

plt.scatter(xs2,ys2,c='black')
plt.scatter(xs1,ys1,c=vals2)
plt.show()

当然,您可以调整第二张图的颜色图,以区分“有趣”的点与其他点