我想创建一个图表,在其中可视化单个数据点以及不同变量的一些集中趋势度量。 我想我可以在同一轴上使用 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)
但是,当我这样做时,条形图中的数据值和点图中的误差条是倾斜的,并且没有显示在彼此之上:
我该如何解决这个问题,以便误差线显示在抖动的数据值之上?
最佳答案
pointplot 的 dodge 参数可以是任意值,不只是 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)
关于python - 在彼此之上显示 2 个 Seaborn 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360524/