library("jsonlite") library("tidyverse") data<-fromJSON("C:\\Users\\Marianne\\Desktop\\projet-analyse-exploratoire\\db_animes\\db_animes.json") dfAnimes <- as.data.frame(data) #Filtrage des animes sortis avant 1960 (pas de télé :() et après 2021 et des OVAs, films, etc dfAnimes %>% filter(start_season$year > 1960) %>% filter(start_season$year < 2021) %>% filter(media_type == "tv") -> dfAnimes #Dedoublage de la colonne saison dfAnimes %>% mutate(annee = start_season$year) %>% mutate(saison = start_season$season) -> dfAnimes #Transformation de la colonne genre pour la rendre utilisable getgenre <- function(i){ dfAnimes[i,13][[1]][[2]] -> res return(res) } dfAnimes %>% mutate(genres = lapply(1:4691, getgenre)) -> dfAnimes #Nettoyage des colonnes non utilisées dfAnimes <- select(dfAnimes, title, mean, rank, annee, saison, num_episodes, source, genres) #Rename la colonne au nom débile rename(dfAnimes, note = mean) -> dfAnimes #Pourcentage d'animes durant plus de 2 cours (estimés à 30 épisodes) par an => a améliorer dfAnimes %>% filter(num_episodes>50) %>% group_by(annee) %>% count() %>% rename(nbAnimes = n) -> longbois longbois %>% ggplot(aes(annee, nbAnimes)) + geom_point() + geom_line() dfAnimes %>% group_by(annee) %>% count() %>% rename(nbAnimes = n) -> allbois left_join(longbois, allbois, by="annee", suffix = c("_long", "_all")) %>% mutate(pourcentage_long = (nbAnimes_long/nbAnimes_all*100)) -> dFLong dFLong %>% ggplot(aes(annee, pourcentage_long)) + geom_point() + geom_line() #Evolution du nombre de lettre (moyenne et médiane) dans les titres par année dfAnimes %>% group_by(annee) %>% summarise(lettres=mean(nchar(title))) -> meanLettersByYear dfAnimes %>% group_by(annee) %>% summarise(lettres=median(nchar(title))) -> medLettersByYear meanLettersByYear %>% ggplot(aes(annee, lettres)) + geom_point()+ geom_line() medLettersByYear %>% ggplot(aes(annee, lettres)) + geom_point()+ geom_line() #Evolution des 5 genres les plus représentés #Titouan #Nombre sources des animes par an dfAnimes %>% filter(source %in% c("original", "manga", "light_novel", "game", "visual_novel", "other", "novel")) %>% group_by(source, annee) %>% count() %>% rename(nbAnimes = n) -> dFSources dFSources %>% ggplot(aes(annee, nbAnimes, fill = source)) + geom_col() #On joue avec les ratings ! #Les animes deviennent ils meilleurs avec le temps ? dfAnimes %>% group_by(annee)%>% filter(!is.na(note))%>% summarise(moy_ratings = mean(note)) -> dFRatingsAnnee dFRatingsAnnee %>% ggplot(aes(annee, moy_ratings))+geom_point()+geom_line() #En quelle saison sortent les meilleurs animes ? dfAnimes %>% group_by(saison)%>% filter(!is.na(note))%>% summarise(moy_ratings = mean(note)) -> dFRatingsSaison dFRatingsSaison %>% ggplot(aes(saison, moy_ratings, shape = saison, color = saison))+geom_point(size = 3)