gpt4 book ai didi

python - Seaborn jointplot 组颜色编码(用于散点图和密度图)

转载 作者:太空狗 更新时间:2023-10-30 02:51:27 25 4
gpt4 key购买 nike

我想使用 sns.jointplot 在存在两组的情况下可视化 X 和 Y 之间的关联。然而,在

tips = sns.load_dataset("tips")
sns.jointplot("total_bill", "tip", data=tips)

enter image description here

没有像 sns.scatterplot 等其他 sns 图中那样的“色调”选项。如何在散点图中以及两个重叠的密度图中为不同的组分配不同的颜色(例如 hue="smoker")。

在 R 中,这可以通过创建一个带有两个边际密度图的散点图来完成,如 here 所示。 . enter image description here

sns 中的等价物是什么?如果这在 sns 中是不可能的,是否有另一个 python 包可以用于此目的?

最佳答案

jointplotsns.JointGrid 的简单包装器。如果您创建一个 JointGrid 对象并手动向其添加绘图,您将可以更好地控制各个绘图。

在这种情况下,您想要的 jointplot 只是一个 scatterplotkdeplot 的组合,您想要做的是传递 hue='smoker'(例如)到 散点图

kdeplot 更复杂; seaborn 并不真正为每个类支持一个 KDE,AFAIK,所以我不得不单独绘制它们(您可以对更多类使用 for 循环)。

因此,您可以这样做:

import seaborn as sns

tips = sns.load_dataset('tips')
grid = sns.JointGrid(x='total_bill', y='tip', data=tips)

g = grid.plot_joint(sns.scatterplot, hue='smoker', data=tips)
sns.kdeplot(tips.loc[tips['smoker']=='Yes', 'total_bill'], ax=g.ax_marg_x, legend=False)
sns.kdeplot(tips.loc[tips['smoker']=='No', 'total_bill'], ax=g.ax_marg_x, legend=False)
sns.kdeplot(tips.loc[tips['smoker']=='Yes', 'tip'], ax=g.ax_marg_y, vertical=True, legend=False)
sns.kdeplot(tips.loc[tips['smoker']=='No', 'tip'], ax=g.ax_marg_y, vertical=True, legend=False)

enter image description here

关于python - Seaborn jointplot 组颜色编码(用于散点图和密度图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55839345/

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