Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schochastics/rokemon
Pokemon themed R package
https://github.com/schochastics/rokemon
ggplot2 ggplot2-themes pokemon r
Last synced: 11 days ago
JSON representation
Pokemon themed R package
- Host: GitHub
- URL: https://github.com/schochastics/rokemon
- Owner: schochastics
- License: other
- Created: 2017-11-28T11:08:13.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-01-11T14:26:07.000Z (almost 3 years ago)
- Last Synced: 2024-10-12T22:14:24.131Z (25 days ago)
- Topics: ggplot2, ggplot2-themes, pokemon, r
- Language: R
- Size: 1.43 MB
- Stars: 94
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE
Awesome Lists containing this project
README
---
output: github_document
---```{r, echo = FALSE}
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
* `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/fillPokemon 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.
```{r install, eval = FALSE}
#install.packages("devtools")
devtools::install_github("schochastics/Rokemon")
``````{r load-libs,message=FALSE,warning=FALSE}
library(Rokemon)
library(tidyverse)data(pokemon)
```## Themes
The package includes several themes for ggplot.
### Theme Rocket
*(See what I did there...)*
```{r theme-rocket}
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.
```{r theme-gameboy}
ggplot(pokemon,aes(attack,defense))+
geom_point(shape = 15,col = "#006400",size=2)+
theme_gameboy()+
labs(title = "Classic Gameboy Theme")```
```{r theme-gba}
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.```{r gghealth}
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.
```{r pogo-teams,fig.height=4,fig.width=10}
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](https://github.com/PokeAPI/sprites).```{r poke-pie,eval=FALSE}
#basic usage
poke_pie(path_to_sprites,pokemon_name)
```![](figures/poke-pies.png)
The function is a reimplementation of [this](https://gist.github.com/need12648430/4d681c9d1b18745ce159)
code, which was posted on [reddit](https://www.reddit.com/r/pokemon/comments/2ey1pw/last_night_i_wrote_a_processing_script_that/ck45c21/) a while ago.## Color Palettes
The package also includes color palettes, which were automatically generated from
all 801 pokemon sprites.
```{r poke-pals,eval=FALSE}
poke_pal(name,n)
display_poke_pal(name)
```
![](figures/palettes.png)Additionally there is also a palette Pokemon Types, used by `scale_color_poketype()` and
`scale_fill_poketype()`.
![](figures/rocket-type-pal.png)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](https://github.comt/imcdlucas/palettetown) 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()`.
```{r import-fonts,eval=FALSE}
import_pokefont()
```## Example use of data
Using `theme_rocket()` to create an effectiveness table of Pokemon types.
```{r effectiveness,fig.width=9,fig.height=6}
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
```{r poketype-colors}
ggplot(pokemon,aes(defense,attack))+
geom_point(aes(col=type1))+
scale_color_poketype()+
theme_bw()
```## Addendum
* Logo created by [ZeroDawn0D](https://github.com/ZeroDawn0D)
* Pogo Logos downloaded [here](https://dribbble.com/shots/2831980-Pok-mon-GO-Team-Logos-Vector-Download)
* Pokémon data download from [Kaggle](https://www.kaggle.com/rounakbanik/pokemon), originally
scraped from [serebii.net](http://serebii.net/)
* Sprites for `poke_pie` can be found [here](https://github.com/PokeAPI/sprites)