knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "figures/",
  fig.width = 6,
  fig.height = 4,
  out.width = '80%',
  fig.align = "center" 
)

Rokemon

An R package to create Pokemon inspired ggplots. It also comes with dataset of 801 Pokemon with 41 different features (Gotta analyze'em all!).

Overview

For more details and examples see next sections.

Data

Functions

Themes

Pokemon Palettes

Install

The developer version can be obtained from github.

#install.packages("devtools")
devtools::install_github("schochastics/Rokemon")
library(Rokemon)
library(tidyverse)

data(pokemon)

Themes

The package includes several themes for ggplot.

Theme Rocket

(See what I did there...)

ggplot(pokemon,aes(attack,defense))+
  geom_point(col = "grey")+
  theme_rocket()+
  labs(x = "Jessy",y = "James",
       title = "Theme Rocket",
       subtitle = "blast off at the speed of light!",
       caption = "meowth that's right")

Gamyboy theme

If you want to get nostalgic.

ggplot(pokemon,aes(attack,defense))+
  geom_point(shape = 15,col = "#006400",size=2)+
  theme_gameboy()+
  labs(title = "Classic Gameboy Theme")
ggplot(pokemon,aes(attack,defense))+
  geom_point(shape = 15,col = "#27408B",size=2)+
  theme_gba()+
  labs(title = "Gameboy Advanced Theme")

Status theme and HP bar chart

A theme inspired by HP bar in older Pokemon games. The theme is used in gghealth, a function that plots bar charts in HP bar style.

pokemon[1:10,] %>% 
  gghealth("name","base_total",init.size = 5)+
  labs(x="",y="Stats Total")

Pokemon Go

Annotate your plots with the logo of your favorite Pokémon Go team.

p1 <- pokemon %>%
  dplyr::filter(type1=="water") %>%
  ggplot(aes(defense,attack))+geom_point()+annotate_pogo(team = "mystic")+theme_mystic()+
  labs(title="Team Mystic",subtitle="Water Pokemon")

p2 <- pokemon %>%
  dplyr::filter(type1=="fire") %>%
  ggplot(aes(defense,attack))+geom_point()+annotate_pogo(team = "valor")+theme_valor()+
  labs(title="Team Valor",subtitle="Fire Pokemon")

p3 <- pokemon %>%
  dplyr::filter(type1=="electric") %>%
  ggplot(aes(defense,attack))+geom_point()+annotate_pogo(team = "instinct")+theme_instinct()+
  labs(title="Team Instinct",subtitle="Electric Pokemon")

gridExtra::grid.arrange(grobs=list(p1,p2,p3),ncol=3)

Poke Pie

Create pie charts of the color distribution of Pokemon sprites. Download all sprites, for example from here.

#basic usage
poke_pie(path_to_sprites,pokemon_name)

The function is a reimplementation of this code, which was posted on reddit a while ago.

Color Palettes

The package also includes color palettes, which were automatically generated from all 801 pokemon sprites.

poke_pal(name,n)
display_poke_pal(name)

Additionally there is also a palette Pokemon Types, used by scale_color_poketype() and scale_fill_poketype().

I did not check all Pokemon palettes, so there may well be some meaningless ones. A better alternative would be to use the dedicated package palettetown. See the github repo for help. ```{R palettes, eval=FALSE} install.packages('palettetown')

## Fonts

The package uses an old school gameboy font for some of its themes, which
can be download [here](https://github.com/Superpencil/pokemon-font/releases/tag/v1.8.1).

In order to use the font in R you need the `extrafont` package.
```{R install-fonts, eval=FALSE}
#install.packages("extrafont")
extrafont::font_import() #only run ones
extrafont::loadfonts()

Alternatively, you can use the function import_pokefont().

import_pokefont()

Example use of data

Using theme_rocket() to create an effectiveness table of Pokemon types.

pokemon %>%
  distinct(type1,.keep_all=TRUE) %>%
  select(defender = type1,against_bug:against_water) %>%
  gather(attacker,effect,against_bug:against_water) %>%
  mutate(attacker = str_replace_all(attacker,"against_",""))  %>%
  ggplot(aes(y=attacker,x=defender,fill=factor(effect)))+
  geom_tile()+
  geom_text(aes(label=ifelse(effect!=1,effect,"")))+
  scale_fill_manual(values=c("#8B1A1A", "#CD2626", "#EE2C2C", "#FFFFFF", "#00CD00", "#008B00"))+
  theme_rocket(legend.position="none")+
  labs(title="Effectiveness Table")

Using Pokemon type colors

ggplot(pokemon,aes(defense,attack))+
  geom_point(aes(col=type1))+
  scale_color_poketype()+
  theme_bw()

Addendum



schochastics/Rokemon documentation built on Jan. 16, 2022, 2:52 a.m.