将 ColorMap 转换为列表
convert ColorMap to list
如果我运行
import seaborn as sns
list(sns.diverging_palette(230, 20, as_cmap=False))
然后我得到
[(0.2509335357076959, 0.4944143311197457, 0.6104170295454565),
(0.5266567751883763, 0.6751928585334119, 0.7467240840661897),
(0.8050726244296104, 0.8577368012538521, 0.884362262166227),
(0.9140860646530862, 0.8246826885128927, 0.8028133239419792),
(0.8384144678873866, 0.5785740917778832, 0.5129511551488873),
(0.7634747047461135, 0.3348456555528834, 0.225892295531744)]
但是,如果我这样做
list(sns.diverging_palette(230, 20, as_cmap=True))
然后我得到一个错误:
TypeError: 'LinearSegmentedColormap' object is not iterable
有没有办法将 Colormap
转换为列表,就像我通过 as_cmap=False
时所做的那样?
这是我想要结束的:
def func(cmap):
...
cmap = sns.diverging_palette(230, 20, as_cmap=True)
func(cmap)
返回一个类似上面的列表。
怎么才能写出这样的func
?
在内部,matplotlib 颜色图只是 256 种颜色的列表。在外部,它是一个将 0 到 1 之间的数字映射到其中一种颜色的函数。
因此,您可以使用 0 到 1 之间的 256 个等距点的数组调用颜色图来获取列表:
import seaborn as sns
import numpy as np
cmap_as_list1 = sns.diverging_palette(230, 20, as_cmap=True)(np.linspace(0, 1, 256))
sns.palplot(cmap_as_list1)
Seaborn 将其调色板存储为颜色列表,因此您可以使用 as_cmap=False
并询问 n=256
颜色:
cmap_as_list2 = sns.diverging_palette(230, 20, n=256, as_cmap=False)
sns.palplot(cmap_as_list2)
如果我运行
import seaborn as sns
list(sns.diverging_palette(230, 20, as_cmap=False))
然后我得到
[(0.2509335357076959, 0.4944143311197457, 0.6104170295454565),
(0.5266567751883763, 0.6751928585334119, 0.7467240840661897),
(0.8050726244296104, 0.8577368012538521, 0.884362262166227),
(0.9140860646530862, 0.8246826885128927, 0.8028133239419792),
(0.8384144678873866, 0.5785740917778832, 0.5129511551488873),
(0.7634747047461135, 0.3348456555528834, 0.225892295531744)]
但是,如果我这样做
list(sns.diverging_palette(230, 20, as_cmap=True))
然后我得到一个错误:
TypeError: 'LinearSegmentedColormap' object is not iterable
有没有办法将 Colormap
转换为列表,就像我通过 as_cmap=False
时所做的那样?
这是我想要结束的:
def func(cmap):
...
cmap = sns.diverging_palette(230, 20, as_cmap=True)
func(cmap)
返回一个类似上面的列表。
怎么才能写出这样的func
?
在内部,matplotlib 颜色图只是 256 种颜色的列表。在外部,它是一个将 0 到 1 之间的数字映射到其中一种颜色的函数。 因此,您可以使用 0 到 1 之间的 256 个等距点的数组调用颜色图来获取列表:
import seaborn as sns
import numpy as np
cmap_as_list1 = sns.diverging_palette(230, 20, as_cmap=True)(np.linspace(0, 1, 256))
sns.palplot(cmap_as_list1)
Seaborn 将其调色板存储为颜色列表,因此您可以使用 as_cmap=False
并询问 n=256
颜色:
cmap_as_list2 = sns.diverging_palette(230, 20, n=256, as_cmap=False)
sns.palplot(cmap_as_list2)