Python 搜索与CMRmap相似的颜色映射

Python 搜索与CMRmap相似的颜色映射,python,matplotlib,Python,Matplotlib,我正在matplotlib中查找以下颜色映射,我在一篇论文中看到了: 起初我以为它是CMRmap的一部分 cmap = plt.get_cmap('CMRmap') new_cmap = truncate_colormap(cmap, 0.0, 0.75) #(https://stackoverflow.com/a/18926541/7559986) 然而,当我提取它的一个子集时,出现了以下情况,看起来有点不同(尤其是黄色): 有人知道我是如何找到上面的颜色贴图的吗?您显示的颜色贴图看起来

我正在matplotlib中查找以下颜色映射,我在一篇论文中看到了:

起初我以为它是CMRmap的一部分

cmap = plt.get_cmap('CMRmap')
new_cmap = truncate_colormap(cmap, 0.0, 0.75) #(https://stackoverflow.com/a/18926541/7559986)
然而,当我提取它的一个子集时,出现了以下情况,看起来有点不同(尤其是黄色):


有人知道我是如何找到上面的颜色贴图的吗?

您显示的颜色贴图看起来只是黑色、蓝色、红色和黄色之间的插值。这将通过以下方式创建:

matplotlib.colors.LinearSegmentedColormap.from_list("", ["black", "blue", "red", "yellow"])
但是,我不建议使用这种颜色映射。使用任何
“绿色”
“岩浆”
“等离子”
“地狱”
。它们在感知上是一致的,因此不会产生不需要的伪影

下面是插值贴图和
“magma”
之间的比较。正如您所看到的,插值贴图创建了“环”,因此查看器肯定会误解绘制的形状

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors

x = np.linspace(-2,2, 101)
X,Y = np.meshgrid(x,x)
Z = np.exp(-X**2-Y**2)

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

im1 = ax1.imshow(Z, cmap="magma")


cmap = mcolors.LinearSegmentedColormap.from_list("", ["black", "blue", "red", "yellow"])
im2 = ax2.imshow(Z, cmap=cmap)

fig.colorbar(im1, ax=ax1, orientation="horizontal")
fig.colorbar(im2, ax=ax2, orientation="horizontal")

plt.show()

进一步阅读

  • 关于为什么使用这种非均匀映射是不好的