为什么seaborn图表颜色与调色板指定的颜色不同?
以下两个图表显示条形图上显示的颜色与调色板图中显示的颜色之间的差异。您可以看看是否仔细观察,条形图上的颜色略微不那么明亮/饱和。
为什么这些不同,如何让条形图与调色板中指定的颜色完全相同?
import seaborn as sns
sns.set(style="white")
titanic = sns.load_dataset("titanic")
colors = ["windows blue", "amber", "greyish", "faded green", "dusty
purple"]
ax = sns.countplot(x="class", data=titanic,
palette=sns.xkcd_palette(colors))
sns.palplot(sns.xkcd_palette(colors))
条形图
调色板图
答案 0 :(得分:3)
许多seaborn绘图命令都有一个参数saturation
,其默认值为0.75
。它将HSL颜色空间中颜色的饱和度(S)(范围从0到1)设置为给定值。
在计数图中将此参数设置为1
将在两个图中为您提供相同的颜色。
ax = sns.countplot(x="class", data=titanic, palette=sns.xkcd_palette(colors), saturation=1)
sns.palplot(sns.xkcd_palette(colors))
这种默认去饱和的原因是许多人认为对比度较低的情节更具吸引力。这也是为什么seaborn中的默认背景不是白色而是一些蓝灰色的原因。毕竟,这当然是一个品味问题。