我知道有类似的答案,例如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 ),如下所示:
正如我所说,我尝试使用上面的答案至少试图获得每个盒子的位置:
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')
但这会产生:
我相信这是因为我通过了整个情节的轴而不是“factorplot”轴。但是我找不到这样做的方法(如果不使用 ax = plt.gca(),就像在示例中一样, ax = sns.factorplot(...) ,我收到错误: AttributeError:模块'seaborn'没有属性'gca')。