Skip to content

schochastics/Rokemon

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
R
 
 
 
 
 
 
 
 
man
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

  • pokemon: Data frame containing attributes and stats of 801 Pokemon.

Functions

  • gghealth(): HP bar inspired Bar charts.
  • poke_pie(): create pie charts from color distribution of Pokemon sprites.

Themes

  • theme_rocket(): Team Rocket theme
  • theme_gameboy() and theme_gba(): classic Gameboy and Gameboy Advanced themes
  • theme_status(): inspired by Pokemon status bar
  • theme_mystic(), theme_valor(), theme_instinct(): Pokemon Go teams theme; work well with annotate_pogo()
  • scale_color_poketype() and scale_fill_poketype(): Provides colors, if Pokemon types are mapped to color/fill

Pokemon Palettes

  • poke_pal(): color palettes created from Pokemon sprites
  • display_poke_pal(): view a Pokemon color palette

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.

install.packages('palettetown')

Fonts

The package uses an old school gameboy font for some of its themes, which can be download here.

In order to use the font in R you need the extrafont package.

#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