You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
3.8 KiB
130 lines
3.8 KiB
4 years ago
|
|
||
|
[![Project Status: Active – The project has reached a stable, usable
|
||
|
state and is being actively
|
||
|
developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
|
||
|
[![Signed
|
||
|
by](https://img.shields.io/badge/Keybase-Verified-brightgreen.svg)](https://keybase.io/hrbrmstr)
|
||
|
![Signed commit
|
||
|
%](https://img.shields.io/badge/Signed_Commits-100%25-lightgrey.svg)
|
||
|
[![Linux build
|
||
|
Status](https://travis-ci.org/hrbrmstr/imago.svg?branch=master)](https://travis-ci.org/hrbrmstr/imago)
|
||
|
![Minimal R
|
||
|
Version](https://img.shields.io/badge/R%3E%3D-3.2.0-blue.svg)
|
||
|
![License](https://img.shields.io/badge/License-MIT-blue.svg)
|
||
|
|
||
|
# imago
|
||
|
|
||
|
Hacky World Map GeoJSON Based on the Imago Projection
|
||
|
|
||
|
## Description
|
||
|
|
||
|
In 2017, Justin Kunimune reverse engineerd
|
||
|
(<https://kunimune.home.blog/2017/11/23/the-secrets-of-the-authagraph-revealed/>)
|
||
|
and open sourced the proprietary AuthaGraph
|
||
|
(<http://www.authagraph.com/top/?lang=en>) projection. Tools are
|
||
|
provided to use this map in R for making global choropleth charts.
|
||
|
|
||
|
## What’s Inside The Tin
|
||
|
|
||
|
The following functions are implemented:
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
``` r
|
||
|
remotes::install_git("https://git.rud.is/hrbrmstr/imago.git")
|
||
|
# or
|
||
|
remotes::install_git("https://git.sr.ht/~hrbrmstr/imago")
|
||
|
# or
|
||
|
remotes::install_gitlab("hrbrmstr/imago")
|
||
|
# or
|
||
|
remotes::install_bitbucket("hrbrmstr/imago")
|
||
|
```
|
||
|
|
||
|
NOTE: To use the ‘remotes’ install options you will need to have the
|
||
|
[{remotes} package](https://github.com/r-lib/remotes) installed.
|
||
|
|
||
|
## NOTE
|
||
|
|
||
|
This is really only suitable for choropleths. You’re not going to be
|
||
|
able to plot lon/lat on this since it was a hacky conversion from an SVG
|
||
|
file to a woefully inaccurate projected GeoJSON, done mostly for a
|
||
|
friend.
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
``` r
|
||
|
library(imago)
|
||
|
|
||
|
# current version
|
||
|
packageVersion("imago")
|
||
|
## [1] '0.1.0'
|
||
|
```
|
||
|
|
||
|
``` r
|
||
|
plot(imago())
|
||
|
## Reading layer `imago-final' from data source `/Library/Frameworks/R.framework/Versions/3.6/Resources/library/imago/geojson/imago-final.geojson' using driver `GeoJSON'
|
||
|
## Simple feature collection with 401 features and 1 field
|
||
|
## geometry type: GEOMETRY
|
||
|
## dimension: XY
|
||
|
## bbox: xmin: -121.9723 ymin: 37.37338 xmax: -121.969 ymax: 37.37454
|
||
|
## epsg (SRID): 4326
|
||
|
## proj4string: +proj=longlat +datum=WGS84 +no_defs
|
||
|
```
|
||
|
|
||
|
<img src="man/figures/README-ex-01-1.png" width="672" />
|
||
|
|
||
|
``` r
|
||
|
library(hrbrthemes)
|
||
|
library(countrycode)
|
||
|
library(tidyverse)
|
||
|
|
||
|
cols(
|
||
|
.default = col_double(),
|
||
|
date = col_date(format = "")
|
||
|
) -> covid_cols
|
||
|
|
||
|
read_csv(
|
||
|
file = "https://covid.ourworldindata.org/data/who/total_cases.csv",
|
||
|
col_types = covid_cols
|
||
|
) %>%
|
||
|
tail(1) %>%
|
||
|
gather(country, cases, -date) %>%
|
||
|
filter(!(country %in% c("World", "International", "Saint Barthlemy"))) %>%
|
||
|
mutate(iso3c = countrycode(country, "country.name", "iso3c")) %>%
|
||
|
select(-date, -country) -> covid_global
|
||
|
|
||
|
left_join(
|
||
|
imago(quiet = TRUE, stringsAsFactors = FALSE),
|
||
|
covid_global,
|
||
|
by = "iso3c"
|
||
|
) %>%
|
||
|
ggplot() +
|
||
|
geom_sf(
|
||
|
aes(fill = cases), color = "black", size = 0.25
|
||
|
) +
|
||
|
scale_fill_viridis_c(
|
||
|
name = "# Cases\n(log10)", na.value = "white",
|
||
|
direction = -1, trans = "log10", label = scales::comma
|
||
|
) +
|
||
|
coord_sf(datum = NA) +
|
||
|
labs(title = sprintf("Covid cases as of %s", Sys.Date())) +
|
||
|
theme_ipsum_es(grid="") +
|
||
|
theme(legend.key.width = unit(2.5, "lines")) +
|
||
|
theme(legend.position = "bottom")
|
||
|
```
|
||
|
|
||
|
<img src="man/figures/README-ex-02-1.png" width="1300" />
|
||
|
|
||
|
## imago Metrics
|
||
|
|
||
|
| Lang | \# Files | (%) | LoC | (%) | Blank lines | (%) | \# Lines | (%) |
|
||
|
| :--- | -------: | ---: | --: | ---: | ----------: | ---: | -------: | ---: |
|
||
|
| Rmd | 1 | 0.25 | 43 | 0.83 | 22 | 0.92 | 34 | 0.61 |
|
||
|
| R | 3 | 0.75 | 9 | 0.17 | 2 | 0.08 | 22 | 0.39 |
|
||
|
|
||
|
## Code of Conduct
|
||
|
|
||
|
Please note that this project is released with a Contributor Code of
|
||
|
Conduct. By participating in this project you agree to abide by its
|
||
|
terms.
|