在彼此上方显示2个Seaborn地块

时间:2018-07-16 11:15:48

标签: python plot seaborn

我想创建一个图表,在该图表中可视化单个数据点以及一些针对不同变量的集中趋势度量。 我以为我可以在同一轴上使用Seaborn Stripplot(带有一些抖动)和Pointplot。

import seaborn as sns
tips = sns.load_dataset("tips")
sns.set(style="white", color_codes=True)
ax = sns.stripplot(x="sex", y="total_bill", hue='smoker', data=tips,
                   split=True, jitter=True)
ax = sns.pointplot(x="sex", y="total_bill", hue='smoker', data=tips,
                   dodge=True, join=False)

但是,当我这样做时,带状图中的数据值和点图中的误差线是倾斜的,并且彼此之间不显示: example Figure

如何解决此问题,以使误差条显示在抖动数据值的顶部?

1 个答案:

答案 0 :(得分:3)

点图的闪避参数可以是任何值,而不仅仅是True或False,它指示点之间的分隔。经过一番尝试和错误,您可以找到将两个点放在带状图点上方的值。我发现在这种情况下0.4可以解决问题。 也许有一个更优雅的解决方案,但这是我所知道的一种方法:)

代码如下:

import seaborn as sns
tips = sns.load_dataset("tips")
sns.set(style="white", color_codes=True)
fig, ax = sns.plt.subplots()
sns.pointplot(x="sex", y="total_bill", hue='smoker', data=tips,
                   dodge=0.4, join=False, ax=ax, split = True)
sns.stripplot(x="sex", y="total_bill", hue='smoker', data=tips,
                   split=True, jitter=True, ax = ax)

enter image description here