【问题标题】:Search for a colormap with similarities to CMRmap搜索与 CMRmap 相似的颜色图
【发布时间】:2019-10-07 21:58:24
【问题描述】:

我正在 matplotlib 中寻找以下颜色图,我在一篇论文中看到了它:

起初我以为它是CMRmap 颜色图的一部分。

cmap = plt.get_cmap('CMRmap')
new_cmap = truncate_colormap(cmap, 0.0, 0.75) #(https://stackoverflow.com/a/18926541/7559986)

但是,当我提取其中的一个子集时,会出现以下内容,看起来有点不同(尤其是黄色):

有人知道我是如何到达上层颜色图的吗?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您显示的颜色图看起来只是黑色、蓝色、红色和黄色之间的插值。这将通过

    创建
    matplotlib.colors.LinearSegmentedColormap.from_list("", ["black", "blue", "red", "yellow"])
    

    但是,我不建议使用这样的颜色图。请改用"viridis""magma""plasma""inferno" 中的任何一个。这些在感知上是统一的,因此不会产生不需要的伪影。

    下面是插值地图和"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()
    

    进一步阅读

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多