gpt4 book ai didi

python - 在matplotlib中修改viridis colormap(替换部分颜色)

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:39 25 4
gpt4 key购买 nike

我四处搜索并找到了接近工作但没有完全适合我需要的东西。

基本上,我非常喜欢将 viridis 颜色图作为起点。但是,我想用白色替换 map 最低端的紫色。

我尝试使用 set_under() 但这不符合我的需要。我需要简单地将紫色替换为白色。

例如,我尝试了以下(从这里 Matplotlib discrete colorbar 开始)-

cmap = plt.get_cmap('jet')
cmaplist = [cmap(i) for i in range(cmap.N)]
cmaplist[0] = (1.0,1.0,1.0,1.0)
cmap = cmap.from_list('Custom cmap', cmaplist, cmap.N)

它完美地工作并且完全符合我对“jet”的需求,但是当我用“viridis”替换“jet”时,我得到以下错误

AttributeError: 'ListedColormap' object has no attribute 'from_list'

我怎样才能解决这个问题并简单地做我想做的事?

如有任何帮助,我们将不胜感激。

谢谢!

最佳答案

from_list() 方法是LinearSegmentedColormap 类的静态方法。在类的实例上调用它可能没有太大意义,就像您在喷气 map 的情况下所做的那样(尽管它当然可以工作)。

现在,'viridis' 实现为 ListedColormap 而不是 LinearSegmentedColormap,这意味着它没有此方法。

无论如何,从类本身调用静态方法更有意义。

import matplotlib.colors

cmap = plt.cm.viridis
cmaplist = [cmap(i) for i in range(cmap.N)]
cmaplist[0] = (1.0,1.0,1.0,1.0)
cmap = matplotlib.colors.LinearSegmentedColormap.from_list('mcm',cmaplist, cmap.N)

以这种方式,它适用于任何颜色图,而不仅仅是那些被分割的颜色图。

关于python - 在matplotlib中修改viridis colormap(替换部分颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43384448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com