Estadísticas del torneo de poder de Dragon Ball Super 100por100to real no fake







      Quedando dos minutos para el final del Torneo de Poder, con cuatro peleadores del universo 7 contra el Marcianito-100por100to-real-no-fake vamos a practicar un poco de web scrapping (rvest) con un poco de factores (forcats), dos paquetes imprescindibles para el data-science en R. Quienes tengan experiencia con factores verán que forcats hace muuuucho más corto y sencillo el proceso de lidiar con valores de este tipo.
     La tabla de los luchadores y la imagen de la arena del torneo de poder provienen de Dragon ball wikia. (CC-BY-SA)
      En la gráfica de eliminaciones por luchador unos que dicen "x & himself", si revisamos la tabla descargada, vemos que se trata de sacrificios (como Gohan o #18) o de algunos luchadores que no quieren pelear y saltan.
     El código:

library(png)
library(dplyr)
library(rvest)
library(ggplot2)
library(janitor)
library(magrittr)
library(editheme)
library(forcats)
set_base_sty("Tomorrow Night 80s")
temp <- tempfile()
download.file("https://vignette.wikia.nocookie.net/dragonball/images/f/f6/Tournament_of_Power_Arena.png", temp)
arena <- readPNG(temp)

url <- read_html("http://dragonball.wikia.com/wiki/Tournament_of_Power")
kokun <- html_nodes(url,"table.article-table:nth-child(20)") %>% html_table()
kokun[[1]] %<>% clean_names()

ggplot(kokun[[1]], aes(fct_rev(fct_infreq(eliminated_by)), fill=universe_eliminated_by)) +
  annotation_custom(grid::rasterGrob(arena, width=unit(1, "npc"), height = unit(1,"npc")),
                    -Inf, Inf, -Inf, Inf) +
  geom_bar(width = 0.8, alpha = 0.5) + theme_editor() +
  coord_flip() + labs(title = "Luchadores por eliminaciones\nal capítulo 126",
                      caption="datamarindo.blogspot.com CC_BY_SA") + xlab("") +
  guides(fill=guide_legend(title="Universo al que\npertenece:"))


ggplot(kokun[[1]], aes(universe, fill=universe_eliminated_by)) + 
  annotation_custom(grid::rasterGrob(arena, width=unit(1, "npc"), height = unit(1,"npc")),
                    -Inf, Inf, -Inf, Inf) + geom_bar(width=0.5, alpha=0.5) +
    theme_editor() + labs(title = "Eliminados del torneo multiversal\nal capítulo 126",
                        caption="datamarindo.blogspot.com CC_BY_SA") + xlab("") +
  guides(fill=guide_legend(title="Eliminado por\nuniverso:"))

 
kokun[[1]] %>% mutate(lumpeado = fct_lump(elimination_method, n=10)) %>%
ggplot(aes(fct_rev(fct_infreq(lumpeado)), fill=universe)) +
  annotation_custom(grid::rasterGrob(arena, width=unit(1, "npc"), height = unit(1,"npc")),
                    -Inf, Inf, -Inf, Inf) + geom_bar(width = 0.8, alpha=0.5) + theme_editor() +
  coord_flip() + labs(title = "Principales métodos de eliminación\nal capítulo 126",
                      caption="datamarindo.blogspot.com CC_BY_SA") + xlab("") +
  scale_x_discrete(labels=function(x) paste(substr(x, 1, 35),"...")) +
  guides(fill=guide_legend(title="Universo del\neliminado"))



    

Comentarios

Entradas más populares de este blog

Construyendo sobre otro post y la conjetura de Collatz y Escher, Gödel, Bach...

El estado de las cosas: QGIS vs ArcGIS

datos socioeconómicos y resultados electorales.