2

我试图在条形图上叠加点图。这两种类型的绘图都是使用 seaborn 的 catplot 函数生成的。

散点图代码:

dotplot2 = sns.catplot(x="Group", y="MASQ_Score", col= "MASQ_Item", units="subject", aspect=.6, hue="Group", ci = 68, data=df_reshaped)

生成的绘图图像:

散点图

条形图代码:

barplot2 = sns.catplot(x="Group", y="MASQ_Score", hue='Group', kind="bar", col= "MASQ_Item", units="subject", aspect=.6, ci = 68, data=df_reshaped)

生成的绘图图像:

条形图

有谁知道是否有办法将散点图数据叠加在条形图的顶部?这样两种类型的信息都可以方便地看到。

4

2 回答 2

2

基于@ImportanceOfBeingErnest 评论,这是一个使用以下map_dataframe方法的开放数据的工作解决方案FacetGrid

import seaborn as sns
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="time")
g.map_dataframe(sns.stripplot,x="sex", y="total_bill")
g.map_dataframe(sns.boxplot,x="sex", y="total_bill",boxprops={'facecolor':'None'},showfliers = False)

输出结果

和可以很容易地被其他 seaborn 组件(如或stirpplot)替换。boxplotswarmplotviolinplot

于 2020-10-08T16:23:43.847 回答
0

你正在绘制的不是散点图,它是一个搅拌图。正如@Rachid Riad 所示。如果您正在寻找的是制作 barplot 而不是 a boxplot,您只需将该行更改为:

sns.barplot()

我个人建议使用boxplotand swarmplot

于 2021-03-11T14:14:18.620 回答