我正在创建一个直方图(频率与计数),我想添加不同颜色的内核密度估计线。我怎样才能做到这一点?例如,我想更改颜色
sns.histplot(data=penguins, x="flipper_length_mm", kde=True)
示例取自https://seaborn.pydata.org/generated/seaborn.histplot.html
我正在创建一个直方图(频率与计数),我想添加不同颜色的内核密度估计线。我怎样才能做到这一点?例如,我想更改颜色
sns.histplot(data=penguins, x="flipper_length_mm", kde=True)
示例取自https://seaborn.pydata.org/generated/seaborn.histplot.html
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': ':'})
在seaborn 的 github中,建议将histplot
和kdeplot
分开绘制。为了使两者都在 y 方向上匹配,必须使用histplot
with 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)
如果count
确实需要统计信息,另一种方法是通过 matplotlib 更改线条颜色:
penguins = sns.load_dataset('penguins')
ax = sns.histplot(data=penguins, x="flipper_length_mm", kde=True)
ax.lines[0].set_color('crimson')