Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib中修改viridis颜色映射(替换某些颜色)_Python_Matplotlib_Viridis - Fatal编程技术网

Python 在matplotlib中修改viridis颜色映射(替换某些颜色)

Python 在matplotlib中修改viridis颜色映射(替换某些颜色),python,matplotlib,viridis,Python,Matplotlib,Viridis,我四处寻找,找到了一些几乎可以工作的东西,但没有什么完全符合我的需要 基本上,我真的很喜欢viridis彩色地图作为起点。但是,我想用白色替换地图最下端的紫色 我尝试在()下使用set\u,但这不符合我的需要。 我需要用白色来代替紫色 例如,我尝试了以下方法(从这里开始)- 它工作得很好,完全符合我对“jet”的需求,但是当我用“viridis”替换“jet”时,我得到了以下错误 AttributeError: 'ListedColormap' object has no attribute '

我四处寻找,找到了一些几乎可以工作的东西,但没有什么完全符合我的需要

基本上,我真的很喜欢viridis彩色地图作为起点。但是,我想用白色替换地图最下端的紫色

我尝试在()下使用
set\u
,但这不符合我的需要。 我需要用白色来代替紫色

例如,我尝试了以下方法(从这里开始)-

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

AttributeError: 'ListedColormap' object has no attribute 'from_list'
我怎样才能绕过这个问题,做我想做的事呢

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

谢谢大家!

from_list()方法是
LinearSegmentedColormap
类的静态方法。在类的实例上调用它可能并没有太大意义,就像在jet 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)
这样,它将只适用于任何颜色贴图,而不仅仅是那些分段的

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)