library(ggplot2)
library(readr)
library(corrplot)
## corrplot 0.84 loaded
load("/home/rafael/Downloads/Base_de_dados-master/df_pokemon.RData")
str(df)
## tibble [718 × 22] (S3: tbl_df/tbl/data.frame)
## $ id : num [1:718] 1 2 3 4 5 6 7 8 9 10 ...
## $ pokemon : chr [1:718] "bulbasaur" "ivysaur" "venusaur" "charmander" ...
## $ species_id : int [1:718] 1 2 3 4 5 6 7 8 9 10 ...
## $ height : int [1:718] 7 10 20 6 11 17 5 10 16 3 ...
## $ weight : int [1:718] 69 130 1000 85 190 905 90 225 855 29 ...
## $ base_experience: int [1:718] 64 142 236 62 142 240 63 142 239 39 ...
## $ type_1 : chr [1:718] "grass" "grass" "grass" "fire" ...
## $ type_2 : chr [1:718] "poison" "poison" "poison" NA ...
## $ attack : int [1:718] 49 62 82 52 64 84 48 63 83 30 ...
## $ defense : int [1:718] 49 63 83 43 58 78 65 80 100 35 ...
## $ hp : int [1:718] 45 60 80 39 58 78 44 59 79 45 ...
## $ special_attack : int [1:718] 65 80 100 60 80 109 50 65 85 20 ...
## $ special_defense: int [1:718] 65 80 100 50 65 85 64 80 105 20 ...
## $ speed : int [1:718] 45 60 80 65 80 100 43 58 78 45 ...
## $ color_1 : chr [1:718] "#78C850" "#78C850" "#78C850" "#F08030" ...
## $ color_2 : chr [1:718] "#A040A0" "#A040A0" "#A040A0" NA ...
## $ color_f : chr [1:718] "#81A763" "#81A763" "#81A763" "#F08030" ...
## $ egg_group_1 : chr [1:718] "monster" "monster" "monster" "monster" ...
## $ egg_group_2 : chr [1:718] "plant" "plant" "plant" "dragon" ...
## $ url_image : chr [1:718] "1.png" "2.png" "3.png" "4.png" ...
## $ x : num [1:718] 32.8 33.3 33.9 -24.4 -24.6 ...
## $ y : num [1:718] 17.2 16.7 16.2 30.8 30.6 ...
# Para a correlação
pokemat=df[,-c(1,2,3,7,8,15,16,17,18,19,20,21,22)]
# Para o gráfico de disperção
poketipo=df[,-c(1,2,3,8,15,16,17,18,19,20,21,22)]
Pokémons geralmente se especializam em ataque ou defesa, então os valores deveriam ser negativamente ou fracamente correlacionados.
corpok<-cor(pokemat) # A matriz de correlação
print(corpok)
## height weight base_experience attack defense
## height 1.0000000 0.6465813 0.4804062 0.4088367 0.35995909
## weight 0.6465813 1.0000000 0.4874248 0.4605428 0.48171259
## base_experience 0.4804062 0.4874248 1.0000000 0.5891011 0.50577735
## attack 0.4088367 0.4605428 0.5891011 1.0000000 0.43177454
## defense 0.3599591 0.4817126 0.5057773 0.4317745 1.00000000
## hp 0.4401011 0.4314012 0.6849912 0.4298658 0.23521065
## special_attack 0.3330252 0.2793074 0.6630866 0.3278213 0.19828306
## special_defense 0.3239820 0.3403940 0.6723205 0.2008107 0.48187370
## speed 0.2249439 0.1081207 0.5021202 0.3356615 -0.00597676
## hp special_attack special_defense speed
## height 0.4401011 0.3330252 0.3239820 0.22494390
## weight 0.4314012 0.2793074 0.3403940 0.10812069
## base_experience 0.6849912 0.6630866 0.6723205 0.50212021
## attack 0.4298658 0.3278213 0.2008107 0.33566149
## defense 0.2352107 0.1982831 0.4818737 -0.00597676
## hp 1.0000000 0.3678422 0.3838715 0.16941766
## special_attack 0.3678422 1.0000000 0.4867300 0.44706699
## special_defense 0.3838715 0.4867300 1.0000000 0.23825607
## speed 0.1694177 0.4470670 0.2382561 1.00000000
corrplot.mixed(corpok, order = "AOE", main="Gráfico de Correlação") # O gráfico de correlação
Podemos observar que há uma correlação positiva de 0.43 entre ataque e defesa. Embora o valor não seja muito grande, vai contra nossa hipótese.
A seguir, veremos um gráfico de dispersão comparado à experiência base para testar se nosso valor positivo advém do fato de que pokémons mais fortes apresentam tanto mais ataque quanto mais defesa.
# Plotando o gráfico de dispersão e comparando com a experiência base
hh <- ggplot(poketipo, aes(x=attack, y=defense, color=base_experience)) + geom_point() + geom_smooth() + labs(title ="Pokeplot", x="Ataque", y="Defesa")
hh1 <- hh + theme(plot.title=element_text(size=28, face="bold"),
axis.text.x=element_text(size=15),
axis.text.y=element_text(size=15),
axis.title.x = element_text(size=20),
axis.title.y = element_text(size=20))+
scale_color_gradient(low="gold",high="dodgerblue4",name="Experiência base")
print(hh1)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
Pelo gráfico acima, podemos ver que de fato os pokémons com mais ataque e defesa são também os que tem a cor mais próxima ao azul escuro, confirmando a segunda hipótese. Aliás, podemos ver no corrplot anterior que a correlação entre a experiência base e as outras variáveis é alta.
gg <- ggplot(poketipo, aes(x=attack, y=defense, color=type_1)) + geom_point() + geom_smooth() + labs(title ="Pokeplot", x="Ataque", y="Defesa")
gg1 <- gg + theme(plot.title=element_text(size=28, face="bold"),
axis.text.x=element_text(size=15),
axis.text.y=element_text(size=15),
axis.title.x = element_text(size=20),
axis.title.y = element_text(size=20))+
scale_color_discrete(name="Poke tipos")
# Separando por o gráfico de dispersão por tipo para facilitar a visualização
gg2 <- gg1 + facet_wrap( ~ type_1, ncol=3) # colunas definidas pelo tipo
print(gg2)