Я пытаюсь скопировать Python график в R, который я нашел в этой записной книжке Kaggle: Titani c Data Science Solutions
Это код Python для создать график, используемый набор данных можно найти здесь :
import seaborn as sns
...
grid = sns.FacetGrid(train_df, row='Embarked', size=2.2, aspect=1.6)
grid.map(sns.pointplot, 'Pclass', 'Survived', 'Sex', palette='deep')
grid.add_legend()
Вот результирующий график .
Столбец survival
принимает значения 0 и 1 (выжить или не выжить), а на оси Y отображается среднее значение для pclass
. При поиске способа вычисления среднего значения с использованием ggplot2
я обычно нахожу функцию stat_summary()
. Лучшее, что я мог сделать, это:
library(dplyr)
library(ggplot2)
...
train_df %>%
ggplot(aes(x = factor(Pclass), y = Survived, group = Sex, colour = Sex)) +
stat_summary(fun.y = mean, geom = "line") +
facet_grid(Embarked ~ .)
Выход можно найти здесь .
Есть некоторые проблемы:
- Кажется, есть пустой аспект, может быть, от NA в Embarked?
- Точки не совпадают с линией
- Линии отличаются от линий на Python графике
Я думаю, что я тоже не полностью схватил многоуровневую концепцию ggplot. Я хотел бы отделить geom = "line"
в функции stat_summary()
и добавить его как + geom_line()
.