Seaborn箱形图沿x轴错误移动

问题描述 投票:1回答:1
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)

enter image description here

因此,用于生成此箱图的代码段就在上面。结果是二元浮点型熊猫系列。 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)

... enter image description here

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

python pandas matplotlib seaborn
1个回答
2
投票

你有两个不同的hues,这样第一个被绘制在位置的左边,第二个被绘制在位置的右边。这通常是期望的,参见例如这张来自the documentation的情节

enter image description here

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()

在这里,你不希望蓝色和橙色的箱形图重叠,是吗?

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

enter image description here

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()
© www.soinside.com 2019 - 2024. All rights reserved.