Гистограмма с накоплением Seaborn / гистограмма

3

У меня есть pandas.DataFrame и я хочу построить график на основе двух столбцов: Age (int), Survived (int - 0 или 1). Теперь у меня есть что-то вроде этого:

Изображение 174551

Это код, который я использую:

class DataAnalyzer:

    def _facet_grid(self, func, x: List[str], col: str = None, row: str = None) -> None:
        g = sns.FacetGrid(self.train_data, col=col, row=row)
        if func == sns.barplot:
            g.map(func, *x, ci=None)
        else:
            g.map(func, *x)
        g.add_legend()
        plt.show()

    def analyze(self) -> None:
        # Check if survival rate is connected with Age
        self._facet_grid(plt.hist, col='Survived', x=['Age'])

Так что это показано на двух сюжетах. Это хорошо, но труднее увидеть разницу между количеством записей, которые имеют 0 против 1 в столбце " Survived, для конкретного возрастного диапазона.

Поэтому я хочу иметь что-то вроде этого:

Изображение 174551

В этом сценарии вы могли увидеть эту разницу. Есть ли какой-нибудь способ сделать это на seaborn (потому что там я могу легко оперировать pandas.DataFrame)? Я не хочу использовать ванильный matplotlib если это возможно

Теги:
pandas
matplotlib
seaborn

1 ответ

2

Просто сложите общую гистограмму с выжившей -0. Трудно дать точную функцию без точной формы фрейма данных, но здесь приведен базовый пример с одним из примеров наборов seaborn.

import matplotlib.pyplot as plt 
import seaborn as sns 
tips = sns.load_dataset("tips") 
sns.distplot(tips.total_bill, color="gold", kde=False, hist_kws={"alpha": 1}) 
sns.distplot(tips[tips.sex == "Female"].total_bill, color="blue", kde=False, hist_kws={"alpha":1}) 
plt.show()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню