似乎stripplot(或swarmplot)总是自动添加到boxplot的顶部,即使我在调用一个函数之前调用另一个函数。
我在这里错过了什么吗?如何使条形图在箱线图后面?而且,我实际上只是使用箱线图来使用菱形标记的“平均值”。
下面是一个示例代码,说明我现在如何调用这些函数:
fig, axs = plt.subplots(nrows=1, ncols=1, figsize=(5, 4), dpi=200)
sns.boxplot(ax=axs, data=df, x='region', y='measure', hue='group',
meanprops={'marker' : 'D', 'markeredgecolor' : 'black', 'markersize' : 6},
medianprops={'visible': False}, whiskerprops={'visible': False},
showmeans=True, showfliers=False, showbox=False, showcaps=False)
sns.stripplot(ax=axs, data=df, x='region', y='measure', hue='group',
dodge=True, jitter=0.05)
plt.show()
2条答案
按热度按时间nfzehxib1#
您可以添加
sns.stripplot(..., zorder=0)
以将条形图放在其他元素下方。要在图例中包含均值,您可以添加一个
label
。由于这将标记每个单独的均值,您可以收集所有图例句柄,并过滤掉第一个句柄,以及表示stripplot
的点的PathCollection
,同时也会忽略表示左侧框的矩形。irlmq6kh2#
如果要使用两个或更多绘图
使用ax=ax[0,1],行和列,