--- output: rmarkdown::github_document --- [![Travis-CI Build Status](https://travis-ci.org/hrbrmstr/worldtilegrid.svg?branch=master)](https://travis-ci.org/hrbrmstr/worldtilegrid) # worldtilegrid [WIP] A ggplot2 Geom for World Tile Grids ## Description A "tile grid map" is a cartogram that uses same-sized tiles in approximate, relative positions of each other to represent a world map. The world tile grid relative position reference system used by this 'ggplot2' 'Geom/Stat' was the original work of 'Jon Schwabish' and converted to 'CSV' by 'Maarten Lambrechts'. - Ref: - Ref: ## What's Inside The Tin The following functions are implemented: - `geom_wtg` / `stat_wtg`: World Tile Grid Geom/Stat - `theme_enhance_wtg` World tile grid theme cruft remover that can be used with any other theme The following _data_ is included/exported: `wtg`: World Tile Grid Basemap Data ## Installation ```{r eval=FALSE} devtools::install_github("hrbrmstr/worldtilegrid") ``` ```{r message=FALSE, warning=FALSE, error=FALSE, include=FALSE} options(width=120) ``` ## Usage ```{r message=FALSE, warning=FALSE, error=FALSE} library(worldtilegrid) library(tidyverse) # current verison packageVersion("worldtilegrid") ``` ### Example (All countries are in the data set) ```{r message=FALSE, warning=FALSE, error=FALSE, fig.width=6, fig.height=6, fig.retina=2} set.seed(1) data_frame( ctry = worldtilegrid::wtg$alpha.3, `Thing Val` = sample(1000, length(ctry)) ) -> xdf ggplot(xdf, aes(country = ctry, fill = `Thing Val`)) + geom_wtg() + geom_text(aes(label = stat(alpha.2)), stat="wtg", size=2) + # re-compute the stat to label coord_equal() + viridis::scale_fill_viridis() + labs(title = "World Tile Grid") + hrbrthemes::theme_ft_rc() + theme_enhance_wtg() ``` ### Example (Only a few countries are in the data set) ```{r message=FALSE, warning=FALSE, error=FALSE, fig.width=6, fig.height=6, fig.retina=2} set.seed(1) data_frame( ctry = worldtilegrid::wtg$alpha.3[1:30], `Thing Val` = sample(1000, length(ctry)) ) -> xdf ggplot(xdf, aes(country = ctry, fill = `Thing Val`)) + geom_wtg() + geom_text(aes(label = stat(alpha.2)), stat="wtg", size=2) + # re-compute the stat to label coord_equal() + viridis::scale_fill_viridis() + labs(title = "World Tile Grid") + hrbrthemes::theme_ft_rc() + theme_enhance_wtg() ``` ### Facet Example (All countries are in the data set) ```{r message=FALSE, warning=FALSE, error=FALSE, fig.width=10, fig.height=6, fig.retina=2} set.seed(1) data_frame( ctry = worldtilegrid::wtg$alpha.3, `Thing Val` = sample(1000, length(ctry)), grp = 'Thing One' ) -> xdf1 data_frame( ctry = worldtilegrid::wtg$alpha.3, `Thing Val` = sample(1000, length(ctry)), grp = 'Thing Two' ) -> xdf2 bind_rows( xdf1, xdf2 ) -> xdf ggplot(xdf, aes(country = ctry, fill = `Thing Val`)) + geom_wtg() + coord_equal() + facet_wrap(~grp) + viridis::scale_fill_viridis() + labs(title = "World Tile Grid Facets") + hrbrthemes::theme_ft_rc() + theme_enhance_wtg() ``` ### Facet Example (Only a few countries are in the data set) The geom will fill in the gaps for you: ```{r message=FALSE, warning=FALSE, error=FALSE, fig.width=10, fig.height=6, fig.retina=2} set.seed(1) data_frame( ctry = c("USA", "MEX", "CAN", "RUS", "BRA"), `Thing Val` = sample(1000, length(ctry)), grp = 'Thing One' ) -> xdf1 data_frame( ctry = c("USA", "MEX", "CAN", "RUS", "BRA"), `Thing Val` = sample(1000, length(ctry)), grp = 'Thing Two' ) -> xdf2 bind_rows( xdf1, xdf2 ) -> xdf ggplot(xdf, aes(country = ctry, fill = `Thing Val`)) + geom_wtg() + coord_equal() + facet_wrap(~grp) + viridis::scale_fill_viridis(na.value = hrbrthemes::ft_cols$gray) + labs(title = "World Tile Grid Facets") + hrbrthemes::theme_ft_rc() + theme_enhance_wtg() ```