问题描述
我试图在 Seaborn 的同一个 catplot 上同时显示均值和误差(kind="point")以及单个数据点(kind="swarm")。
sns.catplot(x="Variable_A",y="Dependent_Variable",col="Variable_B",data=LRP_df,kind="swarm",color = "black")
sns.catplot(x="Variable_A",kind="point",color = "red")
sns.despine()
分别生成图:
如何使两个图位于同一轴上?
谢谢!
解决方法
使用面网格,您可以通过使用 map_dataframe() 指定每个面来覆盖每个面。此 official reference 中的示例已被修改。数据基于样本数据。
import seaborn as sns
sns.set_theme(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.FacetGrid(exercise,col="kind")
g.map_dataframe(sns.stripplot,x="time",y="pulse",color="black")
g.map_dataframe(sns.pointplot,color="red")
g.set_axis_labels("time","pulse")