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

标签 python matplotlib colors seaborn

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

最佳答案

使用 imshowvminvmax 参数,您可以将颜色范围限制为 1800 到 2000。如果您希望较低的值映射为黑色,您可以使用cmap.set_under(black)

import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-7,7,301)
x,y = np.meshgrid(t,t)
z1 = np.sin(x)*np.cos(6*y) + np.cos(12*x*y)/6
z2 = np.exp(-((x-2)**2+(y-2)**2)*3)
z = (z1*6/7+1)*100+1800-z2*1949

cmap=plt.get_cmap("viridis")
cmap.set_under("black")

fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(9,3.0))

im1 = ax1.imshow(z, cmap=cmap)
fig.colorbar(im1, ax=ax1)

im2 = ax2.imshow(z, vmin=1800, vmax=2000, cmap=cmap)
fig.colorbar(im2, ax=ax2)


ax1.set_title("Original")
ax2.set_title("Linear between 1800 and 2000")
plt.show()

enter image description here

关于Python Colormap 用于显示高值范围内的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56459254/

相关文章:

python - 查找天数差异(与当前日期比较)

python - 获取小部件的背景颜色 - 真的

graphics - 响度的配色方案?

python - 如何合并两个数据帧并正确索引生成的数据帧(从零开始到行数-1)

python - Authlib 与 Azure AD - "iss"声明的声明验证错误

python - 更改使用 seaborn.factorplot 创建的条形图中条形的宽度

python - Matplotlib 图(x,y): Line between first and last point

python - 如何将 rgb 颜色值传递给 python 的 matplotlib eventplot?

javascript - JavaScript 中的选择性随机颜色

Python从POST请求接收formData,获取流,文件损坏