Seaborn 箱线图沿 x 轴错误移动

Est*_*lus 4 python matplotlib pandas seaborn

from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame({})
df[soi_name]=soi
df[outcome_name]=outcome
soi,outcome = utils.format_cols(soi, outcome,'continuous',agg_method)
sns.factorplot(data=df, x=outcome_name,y=soi_name,hue=outcome_name,kind='box')
plt.savefig(ofilepath)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

所以用于生成此箱线图的代码片段就在上面。结果是一个二进制浮点型熊猫系列。soi 是浮点型熊猫系列。这种 x 轴偏移发生在箱线图和小提琴图上。当我使用以下代码生成因子图时:

df = pd.DataFrame({})
df[soi_name]=soi
df[outcome_name]=outcome
sns.factorplot(data=df, x=outcome_name,y=soi_name,hue=outcome_name)
plt.savefig(ofilepath)
Run Code Online (Sandbox Code Playgroud)

... 在此处输入图片说明

我得到了我想要的输出。关于为什么箱形图可能会发生变化的任何想法?

Imp*_*est 5

您有两个不同的hues,第一个绘制在位置的左侧,第二个绘制在位置的右侧。这通常是需要的,例如参见文档中的此图

在此处输入图片说明

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="time",
                  data=tips, linewidth=2.5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在这里,您不希望蓝色和橙色箱线图重叠,是吗?

但如果你愿意,你可以。dodge=False为此目的使用该参数。

在此处输入图片说明

import matplotlib.pyplot as plt
import seaborn as sns

tips = sns.load_dataset("tips")
ax = sns.boxplot(x="day", y="total_bill", hue="time",
                  dodge=False, data=tips, linewidth=2.5)

plt.show()
Run Code Online (Sandbox Code Playgroud)