如何在seaborn中用'hue'参数绘制一个关节图

Pab*_*blo 9 python matplotlib pandas seaborn

我想要以下命令行的图:

import numpy as np, pandas as pd
import seaborn as sns; sns.set(style="white", color_codes=True)
tips = sns.load_dataset("tips")
g = sns.jointplot(x="total_bill", y="tip", data=tips, hue= 'sex')
Run Code Online (Sandbox Code Playgroud)

如果参数'hue'是在jointplot中实现的.

我怎样才能做到这一点?

也许重叠两个联合情节?

Rom*_*ain 11

一个简单的替代方案是使用seaborn.lmplot- 即使没有绘制x和y直方图.

sns.lmplot(x='total_bill', y='tip', hue='sex', data=tips, fit_reg=False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Man*_* CJ 8

此功能是在2020 年 9 月的v0.11 Seaborn 版本中添加的 (参见例如发布博客文章文档)。

该文档现在提供了一个基于企鹅数据集的出色示例:

penguins = sns.load_dataset("penguins")
sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="species")
Run Code Online (Sandbox Code Playgroud)

带有散点图的seaborn联合图示例

我还想在联合图中给出一个核密度估计的最小例子(一个 2d kdeplot):

# optional: sns.set(style='darkgrid')
data = {'x': [1, 2, 3, 4, 5, 6], 
        'y': [2, 4, 1.5, 4, 3, 5], 
        'class': ['1', '1', '1', '0', '0', '0']}
sns.jointplot(data=data, x='x', y='y', hue='class', kind='kde',
              fill=True, joint_kws={'alpha': 0.7})
Run Code Online (Sandbox Code Playgroud)

带有 kdeplot 的 seaborn jointplot 示例


May*_*u36 6

你不能,不幸的是

并且近期不会实现,因为应该保留jointplot的简单性。

见这里:https : //github.com/mwaskom/seaborn/issues/365

你只能做到一半(两个类都没有历史):在 seaborn.jointplot 中绘制两个分布