if(!require("pacman")) install.packages("pacman")
## Loading required package: pacman
pacman::p_load(readr,ggplot2,zoo,lubridate,tidyverse)


minetflix <- read_csv("C:/Users/cided/Desktop/NetflixViewingHistory.csv")
## 
## -- Column specification --------------------------------------------------------
## cols(
##   Title = col_character(),
##   Date = col_character()
## )
str(minetflix)
## tibble [3,405 x 2] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ Title: chr [1:3405] "O Preço da Perfeição: Temporada 1: Alegria de viver" "Amor em Obras" "Cobra Kai: Temporada 3: 19 de dezembro" "Cobra Kai: Temporada 3: Natal" ...
##  $ Date : chr [1:3405] "04/01/2021" "02/01/2021" "02/01/2021" "02/01/2021" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   Title = col_character(),
##   ..   Date = col_character()
##   .. )
minetflix$Date <- dmy(minetflix$Date)
minetflix_serie <- minetflix %>%
  separate(col = Title, into = c("title", "temporada", "titulo_episodio"), sep = ': ')
## Warning: Expected 3 pieces. Additional pieces discarded in 186 rows [19, 112,
## 149, 150, 151, 152, 153, 154, 155, 156, 222, 223, 319, 338, 354, 362, 367, 670,
## 675, 676, ...].
## Warning: Expected 3 pieces. Missing pieces filled with `NA` in 354 rows [2, 20,
## 21, 28, 31, 34, 35, 36, 37, 39, 40, 41, 42, 43, 45, 56, 74, 75, 79, 80, ...].
minetflix_serie <- minetflix_serie[!is.na(minetflix_serie$temporada),]
minetflix_serie <- minetflix_serie[!is.na(minetflix_serie$titulo_episodio),]# REGISTRO DE NÚMERO DE Episódios VISTOS POR DÍA, POR SERIE
maratones_minetflix <- minetflix_serie %>%
  count(title, Date)

maratones_minetflix <- maratones_minetflix[maratones_minetflix$n >= 6,]
maratones_minetflix
## # A tibble: 149 x 3
##    title                                    Date           n
##    <chr>                                    <date>     <int>
##  1 (Des)encanto                             2019-09-22     7
##  2 12 Macacos                               2016-08-26     9
##  3 3%                                       2016-12-01     7
##  4 A Maldição da Residência Hill            2018-10-20     6
##  5 A Ordem                                  2019-03-08     6
##  6 After Life - Vocês vão ter de me engolir 2020-04-28     8
##  7 Altered Carbon                           2018-02-05     7
##  8 Areia Movediça                           2019-04-07     6
##  9 Ares                                     2020-01-23     6
## 10 Away                                     2020-09-09     9
## # ... with 139 more rows
maratones_minetflix <- maratones_minetflix[order(maratones_minetflix$Date),]
maratones_minetflix
## # A tibble: 149 x 3
##    title          Date           n
##    <chr>          <date>     <int>
##  1 Vikings        2014-12-14     6
##  2 Helix          2015-02-07     7
##  3 Helix          2015-02-08     6
##  4 Suits          2015-02-08     6
##  5 Suits          2015-02-16    20
##  6 Suits          2015-02-17    10
##  7 The Returned   2015-05-17     6
##  8 Hannibal       2015-06-20     7
##  9 Penny Dreadful 2015-06-25     8
## 10 Bates Motel    2015-07-05     6
## # ... with 139 more rows
maratones_minetflix_todas <- maratones_minetflix %>% 
  group_by(title) %>% 
  summarise(n = sum(n)) %>%
  arrange(desc(n))
## `summarise()` ungrouping output (override with `.groups` argument)
maratones_minetflix_top <- maratones_minetflix_todas %>% 
  top_n(10) %>%
  ggplot(aes(x = reorder(title, n), y = n, fill= title)) +
  geom_col() +
  coord_flip() +
  ggtitle("Top 10 de series mais vistas em meu Netflix", "4 ou mais Episódios por dia") +
  labs(x = "Série", y = "Episódios vistos no total") +
  theme_minimal() +theme(legend.position = "none")
## Selecting by n
maratones_minetflix_top

netflix_episodios_dia <- minetflix %>%
  count(Date) %>%
  arrange(desc(n))

netflix_episodios_dia_plot <- ggplot(aes(x = Date, y = n, color = n), data = netflix_episodios_dia) +
  geom_col(color = c("#f16727")) +
  theme_minimal() +
  ggtitle("Episódios vistos em meu Netflix por dia", "Histórico de 2013 a 2021") +
  labs(x = "", y = "Episódios vistos") 
netflix_episodios_dia_plot

netflix_episodios_dia <- netflix_episodios_dia[order(netflix_episodios_dia$Date),]
netflix_episodios_dia$diasemana <- wday(netflix_episodios_dia$Date)
netflix_episodios_dia$diasemanaF <- weekdays(netflix_episodios_dia$Date, abbreviate = T)
netflix_episodios_dia$mesF <- months(netflix_episodios_dia$Date, abbreviate = T)

netflix_episodios_dia$diasemanaF <-factor(netflix_episodios_dia$diasemana, levels = rev(1:7), labels = rev(c("Seg","Ter","Qua","Qui","Sex","Sab","Dom")),ordered = TRUE)
netflix_episodios_dia$mesF <- factor(month(netflix_episodios_dia$Date),levels = as.character(1:12), labels = c("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"),ordered = TRUE)
netflix_episodios_dia$anomes <- factor(as.yearmon(netflix_episodios_dia$Date)) 
netflix_episodios_dia$semana <- as.numeric(format(netflix_episodios_dia$Date,"%W"))
netflix_episodios_dia$semanames <- ceiling(day(netflix_episodios_dia$Date) / 7)
netflix_episodios_dia_calendario <- ggplot(netflix_episodios_dia, aes(semanames, diasemanaF, fill = n)) + 
  geom_tile(colour = "white") + 
  facet_grid(year(netflix_episodios_dia$Date) ~ mesF) + 
  scale_fill_gradient(low = "#FFD000", high = "#FF1919") + 
  ggtitle("Episódios vistos por dia em meu Netflix", "Heatmap por dia da semana, mês e ano") +
  labs(x = "Número de semana", y = "Dia da semana") +
  labs(fill = "No.Episódios")
netflix_episodios_dia_calendario

vista_dia <- netflix_episodios_dia %>%
  count(diasemanaF)
vista_diavista_dia_plot <- vista_dia %>% 
  ggplot(aes(diasemanaF, n)) +
  geom_col(fill = "#5b59d6") +
  coord_polar()  +
  theme_minimal() +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.text.x = element_text(face = "bold"),
        plot.title = element_text(size = 16, face = "bold")) +
  ggtitle("Frequência de Episódios vistos", "Atividade por dia da semana em meu Netflix")
vista_diavista_dia_plot

vista_mes <- netflix_episodios_dia %>%
  count(mesF)
vista_mesvista_mes_plot <- vista_mes %>% 
  ggplot(aes(mesF, n)) +
  geom_col(fill = "#808000") +
  coord_polar()  +
  theme_minimal() +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.text.x = element_text(face = "bold"),
        plot.title = element_text(size = 18, face = "bold")) +
  ggtitle("Frequência de Episódios vistos", "Atividade por mês em meu Netflix")
vista_mesvista_mes_plot

vista_anos <- netflix_episodios_dia %>%
  count(anomes)
vista_anosvista_anos_plot <- vista_anos %>% 
  ggplot(aes(anomes, n)) +
  geom_col(fill = "#1a954d") +
  coord_polar()  +
  theme_minimal() +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        axis.text.y = element_blank(),
        axis.text.x = element_text(face = "bold"),
        plot.title = element_text(size = 18, face = "bold")) +
  ggtitle("Frequência de Episódios vistos", "Atividade por mês e ano em meu Netflix")

vista_anosvista_anos_plot