gpt4 book ai didi

python - 为什么 seaborn countplots 和 histplots 显示相同的十六进制颜色不同?

转载 作者:行者123 更新时间:2023-12-04 12:31:37 27 4
gpt4 key购买 nike

我试图在我的论文中保留一个单一的调色板,我注意到我的 histplots 的蓝色和我的 countplots 的蓝色是略有不同的色调,即使我将它们设置为完全相同的十六进制值。
是否有我遗漏的设置,或者这些不同的图是否只显示给定的十六进制?我试过使用计数图饱和度,但它与颜色不匹配。理想情况下,我所有的直方图都与我的计数图(以及使用计数图着色的条形图)具有相同的颜色。
下面是一个最小代码示例:

import seaborn as sns
import matplotlib.pyplot as plt
sns.set(rc={'figure.figsize':(20,10)}, font_scale=2)
plt.rcParams['axes.grid'] = False
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(1,2)
sns.countplot(x="class", data=titanic, ax=ax[0], color='#5975a4')
sns.histplot(x="who", data=titanic, ax=ax[1], color='#5975a4')
它产生下图:
Different Blues

最佳答案

countplot 有一个饱和度参数(饱和度越高越“真实”的颜色,饱和度越低越接近灰色)。 Seaborn 在条形图中使用饱和度使默认颜色看起来“更平滑”。默认饱和度为 0.75 ;可以设置为 1以获得“真实”的颜色。histplot有一个 alpha 参数,使颜色半透明。颜色与背景混合,因此根据背景颜色看起来不同。在这种情况下,alpha似乎默认为 0.75 .由于这也具有类似于饱和的效果,histplot不使用饱和度。当在同一个子图中绘制多个直方图时,透明度特别有用。
要获得“真实”颜色,请同时设置 saturationcountplotalphahistplot到 1:

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(rc={'figure.figsize': (20, 10)}, font_scale=2)
plt.rcParams['axes.grid'] = False
titanic = sns.load_dataset('titanic')
fig, ax = plt.subplots(1, 2)
sns.countplot(x="class", data=titanic, ax=ax[0], color='#5975a4', saturation=1)
sns.histplot(x="who", data=titanic, ax=ax[1], color='#5975a4', alpha=1)
plt.show()
sns.histplot and sns.countplot with "full" color
PS:默认情况下,计数图仅使用 80% 的宽度,而直方图使用全宽。如果需要,直方图条可以缩小,例如 sns.histplot(..., shrink=0.8) , 以获得与 countplot 相同的宽度.

关于python - 为什么 seaborn countplots 和 histplots 显示相同的十六进制颜色不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68670406/

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