如何在seaborn displot中使用hist_kws

3
我想在同一张图上绘制直方图和KDE线,并使用不同的颜色。我想将直方图设为绿色,将KDE线设为蓝色。我已经找到了使用line_kws来改变KDE线的颜色,但是hist_kws在displot上无效。我尝试过使用histplot,但是无法为直方图和线条设置不同的颜色。
2个回答

7
您可以使用line_kws={'color': ...}来更改KDE曲线的颜色。直接使用facecolor=...来更改直方图的颜色。 以下代码已在seaborn 0.11.1中进行了测试,并使用默认kindkind='hist')和无hue
  • sns.displot(..., facecolor=...)更改直方图面的颜色
  • sns.displot(..., edgecolor=...)更改直方图边缘的颜色
  • sns.displot(..., color=...)更改KDE曲线的颜色(当kde=True时)
  • sns.displot(..., line_kws={'lw':...})更改kdeline的参数,但不包括颜色
这是一个例子:
import seaborn as sns

penguins = sns.load_dataset('penguins')
sns.displot(data=penguins, x="flipper_length_mm", kde=True, col="species", color='red',
            line_kws={'lw': 3}, facecolor='lime', edgecolor='black')

displot, 为直方图设置颜色

Seaborn的强项是使用hue参数,将多个分布放在一起,这时对应的kde和直方图需要使用相同的颜色。当使用hue时,上述着色将被覆盖。


非常感谢您的帮助,Johan。它已经可用了。我可以知道你是如何想出来的吗?这些参数在sns文档中没有提到。我是编程新手,渴望成为数据科学家。 - FeelBird
Seaborn通过其参数创建某种链。displot将这些称为kwargs(“关键字参数”),并表示其他关键字参数在相关的轴级函数中有文档记录。在这种情况下,它们被发送到histplot,然后再发送到plt.bar等。 - JohanC
@JohanC,请问您是在哪个 seaborn 版本中实施了上述代码?我正在使用 Google Colab,并且仅遇到了更改“kde”线的颜色的问题。线宽等所有设置都有效,但颜色无法更改。请参见此图片!(https://i.imgur.com/LtDvhpO.png)。我已经尝试了许多不同的颜色! - Girish Kumar Chandora
1
@GirishKumarChandora 我不清楚出了什么问题。我已经更新了答案,并使用 seaborn 0.11.1 进行了测试。 - JohanC

0

hist_kws是distplot中的可选参数,仅接受字典中的值。您可以使用它来设置linewidth、edgecolor等。 示例供参考


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接