0

我正在创建一个直方图(频率与计数),我想添加不同颜色的内核密度估计线。我怎样才能做到这一点?例如,我想更改颜色

sns.histplot(data=penguins, x="flipper_length_mm", kde=True)

在此处输入图像描述

示例取自https://seaborn.pydata.org/generated/seaborn.histplot.html

4

1 回答 1

1

histplot'sline_kws={...}是为了改变 kde 行的外观。但是,当前的 seaborn 版本不允许以这种方式更改颜色,可能是因为颜色与hue参数一起使用(尽管hue在这种情况下不使用)。

import seaborn as sns

penguins = sns.load_dataset('penguins')
ax = sns.histplot(data=penguins, x="flipper_length_mm", kde=True,
                  line_kws={'color': 'crimson', 'lw': 5, 'ls': ':'})

histplot 更改 kde 行参数

seaborn 的 github中,建议将histplotkdeplot分开绘制。为了使两者都在 y 方向上匹配,必须使用histplotwith stat='density'kdeplot没有参数可以使用histplot's default stat='count')。

penguins = sns.load_dataset('penguins')
ax = sns.histplot(data=penguins, x="flipper_length_mm", kde=False, stat='density')
sns.kdeplot(data=penguins, x="flipper_length_mm", color='crimson', ax=ax)

sns.histplot 和 sns.kdeplot 分别

如果count确实需要统计信息,另一种方法是通过 matplotlib 更改线条颜色:

penguins = sns.load_dataset('penguins')
ax = sns.histplot(data=penguins, x="flipper_length_mm", kde=True)
ax.lines[0].set_color('crimson')

用 kde=True 改变 sns.histplot 的线条颜色

于 2021-10-11T11:29:10.987 回答