Python 如何使用seaborn对单个数据点进行箱线图

Python 如何使用seaborn对单个数据点进行箱线图,python,plot,seaborn,data-visualization,Python,Plot,Seaborn,Data Visualization,我使用以下命令创建了一个方框图: sns.boxplot(y='points_per_block', x='block', data=data, hue='habit_trial') 因此,不同的颜色表示试验是否为习惯试验(0,1)。我还想绘制各个数据点,我尝试使用以下方法实现: sns.stripplot(y='points_per_block', x='block', data=data, hue='habit_trial') 结果如下 我希望各个点显示在相应的方框图上。有没有一种方法

我使用以下命令创建了一个方框图:

sns.boxplot(y='points_per_block', x='block', data=data, hue='habit_trial')
因此,不同的颜色表示试验是否为习惯试验(0,1)。我还想绘制各个数据点,我尝试使用以下方法实现:

sns.stripplot(y='points_per_block', x='block', data=data, hue='habit_trial')
结果如下

我希望各个点显示在相应的方框图上。有没有一种方法可以做到这一点而不必以某种方式攻击他们的立场?问题来自这样一个事实,即使用色调分离数据对stripplot和boxplot的效果不同,但我认为它们很容易组合


提前感谢。

处理分类数据的Seaborn函数通常有一个
dodge=
参数,指示不同色调的数据是否应该稍微分开一点。对于
箱线图
闪避
默认为
,因为不闪避通常看起来很糟糕。对于
stripplot
,默认值为
dodge=False

以下示例还显示了如何更新图例(对于
HandlerTuple
,需要matplotlib 3.4):

导入seaborn作为sns
从matplotlib.legend\u处理程序导入HandlerTuple
tips=sns.load_数据集(“tips”)
ax=sns.boxplot(数据=tips,x=“天”,y=“账单总额”,
hue=“smoker”,hue_顺序=['Yes','No',boxprops={'alpha':0.4})
sns.stripplot(数据=提示,x=“天”,y=“账单总额”,
hue=“smoker”,hue_顺序=[‘是’、‘否’],道奇=真,斧=斧)
句柄,标签=ax.get\u legend\u handles\u labels()
图例(句柄=[(句柄[0],句柄[2]),(句柄[1],句柄[3]),
标签=[“吸烟者”、“非吸烟者”],
loc='左上角',扶手长度=4,
handler_map={tuple:HandlerTuple(ndivide=None)})

这非常有效@JohanC,谢谢,你想重新发布作为答案,我会接受吗?