Animes são uma das minhas paixões. A primeira de concientemente vi um
desenho japonês foi no meu jardim de infância, quando foi
me apresentado as animações da TV Globinho. Talvez eu tivesse 6-7 anos,
mas o meu facínio por personagens de olhos grandes iniciou-se ai. E até
hoje, sou um consumidor desse estilo de animação, com a franquia Digimon
sendo minha preferida.
Mesmo amando animes e apesar do aumento de acesso aos produtos japoneses, meu tempo livre foi diminuido na mesma proporção com os anos…. Não posso mais assitir cada novo lançamento, não posso perder horas ver um anime cuja a historia começa em nada e vai a lugar nenhum.
Fui, como um adulto moderno que sou, torna-me refém da opinião alheia para saber o que é bom ou não. E assi chegamos no My Anime List.
O My Anime List é como se fosse um repositório, Lá tem infomações técnicas sobre várias animações japonesas. E não só isso, o que os fãs pensam delas. Ela é bastante útil pois permite que você busque os últimos lançamentos pelos tipo e demografia de anime que você gosta. E apartir do voto populr, se essa produção merece seu tempo ou não.
O dataset que vamos analisar hoje foi disponibilizado no kaggle, visite-o por este link, pelo usuário Bruno Bacelar Domingues Correia,
library(tidyverse)
library(treemap)
library(stringr)
library(RColorBrewer)
library(TeachingDemos)
library(plotly)
library(kableExtra)
animes_raw <- read_csv("mal_top2000_anime.csv")
animes <- animes_raw
Os tipos são relacionados a qual midia audiovisual ele foi lançado o produto, como filme, serie de TV, OVA, música e etc
pizza <- function(x) {
tabela <- table(x)
tabela <- tabela[order(tabela)]
prop_tabela <- prop.table(tabela) * 100
pie(tabela, labels = paste(prop_tabela, "%"), col = brewer.pal(n = names(tabela),
name = "Set1"), clockwise = T)
legend("bottomleft", legend = names(tabela), fill = brewer.pal(n = names(tabela),
name = "Set1"))
}
arvore <- function(x, titulo = "") {
table(x) %>%
as.data.frame() %>%
treemap("x", "Freq", title = titulo, fontfamily.title = "serif", fontsize.title = 24)
}
arvore(animes$Type, "Tipos de Animes")
A Demografia é algo curioso, pois aqui a demografia nada mais se refere ao público-alvo. Entretanto sabendo a demografia de uma animes é possivel esperar alguns cliches, certos desenvolvimentos e estilos de personagens. A demografia, pelo menos para minha visão ocidental, dizia mais sobre o animes, do propria o seu gênero.
arvore(animes$Demographic)
O Gênero de animes são os em sua maioria parecidos com os Gêneros de filmes e livres: fantasia, suspese, ação e outros. Os Temas são especificos, pode ser tema escolar, espacial, mechas (robos gigantes), mitologia e etc
Neste Dataset um anime pode ter mais de um Gênero ou Tema, entretanto eles estão aglutinados em uma coluna. Iremos separa-los com o seguinte código.
animes[paste0("Genero.", 1:6)] <- str_split_fixed(animes$Genres, ",", 6)
animes$Genero.1 <- str_remove_all(animes$Genero.1, "[[:punct:]]")
animes$Genero.2 <- str_remove_all(animes$Genero.2, "[[:punct:]]")
animes$Genero.3 <- str_remove_all(animes$Genero.3, "[[:punct:]]")
animes$Genero.4 <- str_remove_all(animes$Genero.4, "[[:punct:]]")
animes$Genero.5 <- str_remove_all(animes$Genero.4, "[[:punct:]]")
animes$Genero.6 <- str_remove_all(animes$Genero.4, "[[:punct:]]")
animes[paste0("Tema.", 1:6)] <- str_split_fixed(animes$`Theme(s)`, ",", 6)
animes$Tema.1 <- str_remove_all(animes$Tema.1, "[[:punct:]]")
animes$Tema.2 <- str_remove_all(animes$Tema.2, "[[:punct:]]")
animes$Tema.3 <- str_remove_all(animes$Tema.3, "[[:punct:]]")
animes$Tema.4 <- str_remove_all(animes$Tema.4, "[[:punct:]]")
animes$Tema.5 <- str_remove_all(animes$Tema.4, "[[:punct:]]")
animes$Tema.6 <- str_remove_all(animes$Tema.4, "[[:punct:]]")
Tema_total <- animes %>%
select(Name, starts_with("Tema")) %>%
pivot_longer(cols = starts_with("Tema"), values_to = "Tema", values_drop_na = T) %>%
mutate_all(na_if, "") %>%
filter(!is.na(Tema))
Tema_total$Tema <- str_squish(Tema_total$Tema)
Tema_total <- Tema_total %>%
group_by(Tema) %>%
summarise(Total = n()) %>%
arrange(desc(Total))
kbl(Tema_total, align = "c") %>%
kable_minimal(bootstrap_options = "striped", full_width = T, html_font = 10) %>%
scroll_box(width = "900px", height = "200px")
| Tema | Total |
|---|---|
| None | 409 |
| School | 404 |
| Historical | 200 |
| Military | 160 |
| Psychological | 139 |
| Music | 137 |
| Super Power | 132 |
| Mythology | 126 |
| Mecha | 125 |
| Adult Cast | 121 |
| Space | 108 |
| Iyashikei | 107 |
| Parody | 84 |
| Gag Humor | 80 |
| Samurai | 78 |
| Martial Arts | 74 |
| Detective | 70 |
| Isekai | 69 |
| Team Sports | 64 |
| CGDCT | 62 |
| Workplace | 56 |
| Mahou Shoujo | 51 |
| Visual Arts | 50 |
| Gore | 45 |
| Love Polygon | 36 |
| Harem | 35 |
| Time Travel | 33 |
| Anthropomorphic | 31 |
| Idols Female | 30 |
| Vampire | 28 |
| Strategy Game | 27 |
| Video Game | 27 |
| Survival | 26 |
| Otaku Culture | 25 |
| Reincarnation | 25 |
| Performing Arts | 24 |
| Childcare | 23 |
| Racing | 19 |
| Romantic Subtext | 18 |
| Organized Crime | 17 |
| Combat Sports | 16 |
| Delinquents | 11 |
| Reverse Harem | 10 |
| High Stakes Game | 8 |
| Pets | 7 |
| Showbiz | 7 |
| Magical Sex Shift | 6 |
| Medical | 6 |
| Idols Male | 5 |
| Crossdressing | 2 |
| Educational | 2 |
Genero_total <- animes %>%
select(Name, starts_with("Genero")) %>%
pivot_longer(cols = starts_with("Genero"), values_to = "Genero", values_drop_na = T) %>%
mutate_all(na_if, "") %>%
filter(!is.na(Genero))
Genero_total$Genero <- str_squish(Genero_total$Genero)
Genero_total <- Genero_total %>%
group_by(Genero) %>%
summarise(Total = n()) %>%
arrange(desc(Total))
Genero_total %>%
kbl(align = "c") %>%
kable_minimal(bootstrap_options = "striped", full_width = T, html_font = 10) %>%
scroll_box(width = "900px", height = "200px")
| Genero | Total |
|---|---|
| Comedy | 828 |
| Action | 735 |
| Drama | 644 |
| Fantasy | 588 |
| Romance | 507 |
| Slice of Life | 481 |
| Supernatural | 480 |
| Adventure | 435 |
| SciFi | 427 |
| Mystery | 282 |
| Sports | 138 |
| Ecchi | 89 |
| Suspense | 79 |
| None | 54 |
| Horror | 53 |
| Boys Love | 22 |
| Gourmet | 21 |
| Girls Love | 18 |
| Avant Garde | 13 |
| Award Winning | 2 |
Você também pode experimentar meu app em shiny para visualizar alguns outros dados. Link
Obrigado a todos.