Добавьте метки в каждую коробку на поле фактора - PullRequest
0 голосов
/ 27 апреля 2018

Я знаю, что есть похожие ответы, такие как , этот , но этот относится к блокпосту Сиборна, и он не работает для меня с факторплотом Саборна. На простом факториале:

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)

Как можно добавить аннотацию (в приведенном выше примере означает_лабели ) под каждым полем, например:

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

Я полагаю, это потому, что я передаю оси целого графика вместо осей "факториала". Но я не смог найти способ сделать это (если вместо ax = plt.gca () я использую, как в примере, ax = sns.factorplot (...) , я получаю сообщение об ошибке: AttributeError: модуль 'seaborn' не имеет атрибута 'gca' ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...