---
title: "Практика 5"
output: html_document
date: "2023-09-29"
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Начало работы

### Шаг 1

Подгрузим нужные пакеты.

```{r message=FALSE, warning=FALSE}
library(tidyverse)
```


### Шаг 2

Прочитаем данные по сериалу "Тед Лассо". Прочитать о том, что это за данные можно по [ссылке](https://github.com/rfordatascience/tidytuesday/blob/master/data/2023/2023-09-26/readme.md). 

```{r message=FALSE}
richmondway <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2023/2023-09-26/richmondway.csv")

glimpse(richmondway)
```

## Столбчатая диаграмма

### Шаг 1

Построим столбчатую диаграмму, которая бы отражала число произнесенных F-ck слов всеми героями сериала в течение разных эпизодов всех трех сезонов.

```{r}
richmondway %>% 
  ggplot(aes(x = as.factor(Episode), y = F_count_total)) +
  geom_col(aes(fill = as.factor(Season), color = as.factor(Season)), alpha = 0.8, show.legend = FALSE) +
  facet_wrap(
    vars(Season), 
    labeller = as_labeller(c("1" = "Season 1", "2" = "Season 1", "3" = "Season 1")), 
    ncol = 1) +
  scale_fill_manual(values = c("#1d2f6f", "#8390fa", "#fac748")) +
  scale_color_manual(values = c("#1d2f6f", "#8390fa", "#fac748")) +
  labs(x = "Episode", y = "Total F-ck count") +
  theme_bw() +
  theme(
    strip.background = element_rect(fill = "transparent"),
    strip.text = element_text(face = "bold")
  )
```


### Шаг 2

Построим столбчатую диаграмму, которая бы отражала число произнесенных F-ck слов Роем Кентом и всеми героями сериала. Столбцы должны быть расположены рядом (группированная диаграмма).

```{r}
richmondway %>% 
  mutate(
    Episode = as.factor(Episode),
    Season = as.factor(Season)
  ) %>% 
  select(Season, Episode, F_count_RK, F_count_total) %>% 
  pivot_longer(
    cols = c("F_count_RK", "F_count_total"),
    names_to = "RK_or_total", 
    values_to = "F_count") %>% 
  ggplot(aes(x = Episode, y = F_count)) +
  geom_col(
    aes(fill = RK_or_total), 
    position = "dodge",
    color = "black", alpha = 0.8) +
  facet_wrap(
    vars(Season), 
    labeller = as_labeller(c("1" = "Season 1", "2" = "Season 1", "3" = "Season 1")), 
    ncol = 1) +
  scale_fill_manual(
    values = c("#8390fa", "#fac748"),
    labels = c("Roy Kent", "Total")) +
  labs(x = "Episode", y = "F-ck count") +
  guides(fill = guide_legend(nrow = 1, title = NULL)) +
  theme_bw() +
  theme(
    strip.background = element_rect(fill = "transparent"),
    strip.text = element_text(face = "bold"),
    legend.position = c(0.85, 0.95),
    legend.background = element_rect(fill = "transparent", color = "black")
  )
```


## Ящик с усами

### Шаг 1

Отрисуем в виде ящика с усами распределение процента F-ck слов, произнесенных Роем Кентом, в течение каждого из трех сезонов. Как зависит этот процент от того, встречается ли Рой с Кили или нет?

```{r}
richmondway %>% 
  mutate(
    Episode = as.factor(Episode),
    Season = as.factor(Season),
    Season = fct_reorder(Season, F_perc, .desc = TRUE),
    Dating_flag = fct_rev(Dating_flag)
  ) %>% 
  ggplot(aes(x = Season, y = F_perc, fill = Dating_flag)) +
  geom_boxplot(width = 0.5) +
  scale_fill_manual(
    values = c("#fac748", "#8390fa"),
    breaks = c("Yes", "No")
  ) +
  labs(x = "Season", y = "F-ck percent", fill = "Dating Keeley status") +
  theme_classic() +
  theme(
    legend.position = "top"
  )
```

### Шаг 2

Корректно ли ящик с усами показывает распределение? Как в действительности выглядят эти данные?

```{r}
richmondway %>% 
  mutate(
    Episode = as.factor(Episode),
    Season = as.factor(Season),
    Season = fct_reorder(Season, F_perc, .desc = TRUE),
    Dating_flag = fct_rev(Dating_flag)
  ) %>% 
  ggplot(aes(x = Season, y = F_perc, fill = Dating_flag)) +
  geom_violin(alpha = 0.5, position = position_dodge(width = 0.8)) +
  geom_boxplot(position = position_dodge(width = 0.8), width = 0.2) +
  geom_point(position=position_jitterdodge()) +
  scale_fill_manual(
    values = c("#fac748", "#8390fa"),
    breaks = c("Yes", "No")
  ) +
  labs(x = "Season", y = "F-ck percent", fill = "Dating Keeley status") +
  theme_classic() +
  theme(
    legend.position = "top"
  )
```


