Как добавить среднюю линию на группу в морях - PullRequest
0 голосов
/ 03 марта 2020

У меня есть график ниже:

graph image

, созданный со следующим кодом

subset1=data1[feats_to_explore+['wine_class']]
f, (ax1, ax2, ax3) = plt.subplots(3, figsize=(7,14), sharey=True)

l=[ax1,ax2,ax3]

for graph in l:
    for i in (subset1['wine_class']).unique():
        df =subset1[subset1.wine_class == i]
        sns.distplot(df[feats_to_explore[l.index(graph)]],  kde=False, label=i, ax=graph)
        graph.legend(title='Wine Class')

Я хотел бы добавить, для каждой гистограммы - средняя линия того же цвета, что и соответствующая гистограмма. Другими словами, три строки на каждый подзаговор.

Может кто-нибудь мне помочь?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 марта 2020

Вы должны добавить plt.axvline вызов:

for graph in l:
    for i in (subset1['wine_class']).unique():
        df =subset1[subset1.wine_class == i]
        plt.axvline(df[feats_to_explore[l.index(graph)]].mean())  ## Here
        sns.distplot(df[feats_to_explore[l.index(graph)]],  kde=False, label=i, ax=graph)
        graph.legend(title='Wine Class')

Ваш синтаксис для переменной, которую вы выводите, немного странный, поэтому я не уверен, что то, что я написал, будет называть среднее значение вашей группы, поэтому смело заменяйте df[feats_to_explore[l.index(graph)]].mean() на любой синтаксис, вызывающий среднее значение группы, которую вы планируете.

...