在seaborn的factorplot boxplot中为每个盒子添加标签

时间:2018-04-27 19:34:45

标签: python-3.x seaborn

我知道有类似的答案,例如this one,但是这个答案适用于seaborn的箱图,并且它对我的seaborn的factorplot不起作用。在一个简单的factorplot上:

import seaborn as sns

tips = sns.load_dataset("tips")

means = tips.groupby(["sex","smoker","time"])["tip"].mean().values
means_labels = [str(int(s)) for s in means]

with sns.plotting_context("notebook",font_scale=2):
    g = sns.factorplot(x="sex", y="total_bill", hue="smoker",\
                   col="time",  data=tips, kind="box", size=6, aspect=.7)

如何在每个框下方添加注释(在上面的示例中, means_labels ),如下所示:

enter image description here

正如我所说,我尝试使用上面的答案至少试图获得每个盒子的位置:

import matplotlib.pyplot as plt
ax = plt.gca()
pos = range(len(means))
for tick,label in zip(pos,ax.get_xticklabels()):
        ax.text(pos[tick], means[tick] + 0.5, meanslabels[tick], 
               horizontalalignment='center', color='r', weight='semibold')

但这会产生:

enter image description here

我相信这是因为我通过了整个情节的轴而不是“factorplot”轴。但是我找不到这样做的方法(如果不使用 ax = plt.gca(),就像在示例中一样, ax = sns.factorplot(...) ,我收到错误: AttributeError:模块'seaborn'没有属性'gca')。

0 个答案:

没有答案