问题
Why are seaborn chart colors different from the colors specified by the palette?
The following two charts show the difference between the colors as they appear on a bar chart, and the colors as they appear in the palette plot. You can see if yo ulook carefully, that the colors on the bar chart are slightly less bright/saturated.
Why are these different, and how can I get the bar chart to have the exact same colors as the ones specified in the palette?
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))
Bar chart
Palette plot
回答1:
Many seaborn plotting commands have an argument saturation
, whose default value is 0.75
. It sets the saturation (S) of the colors in the HSL colorspace (ranging from 0 to 1) to the given value.
Setting this parameter to 1
in the countplot will give you the same colors in both plots.
ax = sns.countplot(x="class", data=titanic, palette=sns.xkcd_palette(colors), saturation=1)
sns.palplot(sns.xkcd_palette(colors))
The reason for this default desaturation is that many people consider a plot with less contrast to be more appealing. That is also why the default background in seaborn is not white but some bluish gray. After all, this is of course a question of taste.
来源:https://stackoverflow.com/questions/44334874/seaborn-chart-colors-are-different-than-those-specified-by-palette