Compare commits
2 commits
6790ba0289
...
bbb623d738
| Author | SHA1 | Date | |
|---|---|---|---|
| bbb623d738 | |||
| 00919c2d5d |
4 changed files with 230 additions and 0 deletions
Binary file not shown.
BIN
Les 10 genres les plus représentés.pdf
Normal file
BIN
Les 10 genres les plus représentés.pdf
Normal file
Binary file not shown.
115
main.R
Normal file
115
main.R
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
library("jsonlite")
|
||||
library("tidyverse")
|
||||
|
||||
|
||||
|
||||
data<-fromJSON(txt = "/home/labourde/Bureau/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)
|
||||
|
||||
####### Distribution des genres
|
||||
distributeGenres <- function(i){
|
||||
line <- as.data.frame(i$genres)
|
||||
line %>%
|
||||
rename(genres = 1) -> Genres
|
||||
i[ , !(names(dfAnimes) %in% c("genres"))] -> anime
|
||||
newdf <- cbind(anime, Genres)
|
||||
return(newdf)
|
||||
}
|
||||
|
||||
dfAnimesFinal <- data.frame(matrix(ncol = ncol(dfAnimes), nrow = 0))
|
||||
x <- names(dfAnimes)
|
||||
colnames(dfAnimesFinal) <- x
|
||||
dfAnimesFinal
|
||||
|
||||
for(i in 1:nrow(dfAnimes)) {
|
||||
row <- dfAnimes[i,]
|
||||
animeWithGenres <- distributeGenres(row)
|
||||
dfAnimesFinal <- rbind(dfAnimesFinal,animeWithGenres)
|
||||
}
|
||||
dfAnimesFinal
|
||||
|
||||
####### Plot the genre the most represented
|
||||
dfAnimesFinal %>%
|
||||
mutate(Nombre=sum(1)) %>%
|
||||
group_by(genres) %>%
|
||||
summarise(NombreGenre=sum(Nombre)) %>%
|
||||
arrange(desc(NombreGenre)) -> mostCommonGenre
|
||||
mostCommonGenre <- head(mostCommonGenre,10)
|
||||
ggplot(mostCommonGenre,aes(x=reorder(genres,NombreGenre),y=NombreGenre)) +
|
||||
geom_bar(stat='Identity',aes(fill=genres)) +
|
||||
labs(y="Occurence", x = "Genre") +
|
||||
ggtitle("Les 10 genres les plus représentés")
|
||||
|
||||
|
||||
####### Evolution des 5 genres les plus représentés sur les 5 dernières années
|
||||
dfAnimesFinal %>%
|
||||
filter(annee>1999) %>%
|
||||
mutate(Nombre=1) %>%
|
||||
group_by(genres,annee) %>%
|
||||
summarise(NombreGenre=sum(Nombre)) %>%
|
||||
arrange(desc(NombreGenre)) %>%
|
||||
group_by(annee) %>%
|
||||
slice_max(order_by = NombreGenre, n = 5) -> mostCommonGenrePast10Years
|
||||
ggplot(mostCommonGenrePast10Years,aes(x=annee,y=NombreGenre,color=genres)) +
|
||||
geom_point() +
|
||||
geom_line() +
|
||||
labs(y="Occurence", x = "Genre") +
|
||||
ggtitle("Evolution des 5 genres les plus représentés sur les 20 dernières années")
|
||||
|
||||
|
||||
|
||||
|
||||
#Nombre d'animes durant plus de 2 cours (estimés à 30 épisodes) par an => a améliorer
|
||||
dfAnimes %>%
|
||||
filter(num_episodes>30) %>%
|
||||
group_by(annee) %>%
|
||||
count() %>%
|
||||
rename(nbAnimes = n) -> longbois
|
||||
|
||||
longbois %>% ggplot(aes(annee, nbAnimes)) + geom_col()
|
||||
|
||||
#Evolution du nombre de lettre (moyenne et médiane) dans les titres par année
|
||||
dfAnimes %>%
|
||||
group_by(annee) %>%
|
||||
summarise(lettres=mean(nchar(data.title))) -> dfAnimes
|
||||
|
||||
dfAnimes %>%
|
||||
group_by(annee) %>%
|
||||
summarise(lettres=median(nchar(data.title))) -> medLettersByYear
|
||||
|
||||
meanLettersByYear %>% ggplot(aes(annee, lettres)) + geom_col()
|
||||
|
||||
medLettersByYear %>% ggplot(aes(annee, lettres)) + geom_col()
|
||||
|
||||
#Evolution des 5 genres les plus représentés
|
||||
|
||||
# Explosion de la colonne tags
|
||||
dfAnimes %>%
|
||||
mutate(annee = anime$year) %>%
|
||||
mutate(saison = start_season$season) -> animes_genres_doubles
|
||||
|
||||
|
||||
|
||||
115
main2.R
Normal file
115
main2.R
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
library("jsonlite")
|
||||
library("tidyverse")
|
||||
|
||||
|
||||
|
||||
data<-fromJSON(txt = "/home/labourde/Bureau/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)
|
||||
|
||||
####### Distribution des genres
|
||||
distributeGenres <- function(i){
|
||||
line <- as.data.frame(i$genres)
|
||||
line %>%
|
||||
rename(genres = 1) -> Genres
|
||||
i[ , !(names(dfAnimes) %in% c("genres"))] -> anime
|
||||
newdf <- cbind(anime, Genres)
|
||||
return(newdf)
|
||||
}
|
||||
|
||||
dfAnimesFinal <- data.frame(matrix(ncol = ncol(dfAnimes), nrow = 0))
|
||||
x <- names(dfAnimes)
|
||||
colnames(dfAnimesFinal) <- x
|
||||
dfAnimesFinal
|
||||
|
||||
for(i in 1:nrow(dfAnimes)) {
|
||||
row <- dfAnimes[i,]
|
||||
animeWithGenres <- distributeGenres(row)
|
||||
dfAnimesFinal <- rbind(dfAnimesFinal,animeWithGenres)
|
||||
}
|
||||
dfAnimesFinal
|
||||
|
||||
####### Plot the genre the most represented
|
||||
dfAnimesFinal %>%
|
||||
mutate(Nombre=sum(1)) %>%
|
||||
group_by(genres) %>%
|
||||
summarise(NombreGenre=sum(Nombre)) %>%
|
||||
arrange(desc(NombreGenre)) -> mostCommonGenre
|
||||
mostCommonGenre <- head(mostCommonGenre,10)
|
||||
ggplot(mostCommonGenre,aes(x=reorder(genres,NombreGenre),y=NombreGenre)) +
|
||||
geom_bar(stat='Identity',aes(fill=genres)) +
|
||||
labs(y="Occurence", x = "Genre") +
|
||||
ggtitle("Les 10 genres les plus représentés")
|
||||
|
||||
|
||||
####### Evolution des 5 genres les plus représentés sur les 5 dernières années
|
||||
dfAnimesFinal %>%
|
||||
filter(annee>1999) %>%
|
||||
mutate(Nombre=1) %>%
|
||||
group_by(genres,annee) %>%
|
||||
summarise(NombreGenre=sum(Nombre)) %>%
|
||||
arrange(desc(NombreGenre)) %>%
|
||||
group_by(annee) %>%
|
||||
slice_max(order_by = NombreGenre, n = 5) -> mostCommonGenrePast10Years
|
||||
ggplot(mostCommonGenrePast10Years,aes(x=annee,y=NombreGenre,color=genres)) +
|
||||
geom_point() +
|
||||
geom_line() +
|
||||
labs(y="Occurence", x = "Genre") +
|
||||
ggtitle("Evolution des 5 genres les plus représentés sur les 20 dernières années")
|
||||
|
||||
|
||||
|
||||
|
||||
#Nombre d'animes durant plus de 2 cours (estimés à 30 épisodes) par an => a améliorer
|
||||
dfAnimes %>%
|
||||
filter(num_episodes>30) %>%
|
||||
group_by(annee) %>%
|
||||
count() %>%
|
||||
rename(nbAnimes = n) -> longbois
|
||||
|
||||
longbois %>% ggplot(aes(annee, nbAnimes)) + geom_col()
|
||||
|
||||
#Evolution du nombre de lettre (moyenne et médiane) dans les titres par année
|
||||
dfAnimes %>%
|
||||
group_by(annee) %>%
|
||||
summarise(lettres=mean(nchar(data.title))) -> dfAnimes
|
||||
|
||||
dfAnimes %>%
|
||||
group_by(annee) %>%
|
||||
summarise(lettres=median(nchar(data.title))) -> medLettersByYear
|
||||
|
||||
meanLettersByYear %>% ggplot(aes(annee, lettres)) + geom_col()
|
||||
|
||||
medLettersByYear %>% ggplot(aes(annee, lettres)) + geom_col()
|
||||
|
||||
#Evolution des 5 genres les plus représentés
|
||||
|
||||
# Explosion de la colonne tags
|
||||
dfAnimes %>%
|
||||
mutate(annee = anime$year) %>%
|
||||
mutate(saison = start_season$season) -> animes_genres_doubles
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in a new issue