Comparar commits
2 commits
6790ba0289
...
bbb623d738
| Autor | SHA1 | Fecha | |
|---|---|---|---|
| bbb623d738 | |||
| 00919c2d5d |
Se han modificado 4 ficheros con 230 adiciones y 0 borrados
BIN
Evolution des 5 genres les plus représentés sur les 20 dernières années.pdf
Archivo normal
BIN
Evolution des 5 genres les plus représentés sur les 20 dernières années.pdf
Archivo normal
Archivo binario no mostrado.
BIN
Les 10 genres les plus représentés.pdf
Archivo normal
BIN
Les 10 genres les plus représentés.pdf
Archivo normal
Archivo binario no mostrado.
115
main.R
Archivo normal
115
main.R
Archivo normal
|
|
@ -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
Archivo normal
115
main2.R
Archivo normal
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Cargando…
Referenciar en una nueva incidencia