如何将seaborn boxplot与其x刻度居中对齐?

lem*_*n93 2 python pandas seaborn

我的箱线图似乎与图的 x-tick 不一致。如何使箱线图与 x-tick 对齐?

df = pd.DataFrame([['0', 0.3],['1', 0.5],['2', 0.9],
                   ['0', 0.8],['1', 0.3],['2', 0.4],
                   ['0', 0.4],['1', 0.0],['2', 0.7]])

df.columns = ['label', 'score']

label_list = ['0', '1', '2']

fig = plt.figure(figsize=(8, 5))
g=sns.boxplot(x='label', y='score', data=df, hue='label', hue_order=label_list)
g.legend_.remove()

plt.show()

Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

moy*_*oys 6

您可以添加dodge =False到您的boxplot行中,这应该可以解决此问题。更新后的代码如下

g=sns.boxplot(x='label', y='score', data=df, hue='label', hue_order=label_list,dodge =False)
Run Code Online (Sandbox Code Playgroud)

然后,您可以width控制箱线图的宽度(默认宽度为 0.8),如下所示

g=sns.boxplot(x='label', y='score', data=df, hue='label', hue_order=label_list,dodge =False,width=.2)
Run Code Online (Sandbox Code Playgroud)