visualizeR/README.md
2022-12-16 11:20:41 -05:00

166 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- README.md is generated from README.Rmd. Please edit that file -->
# visualizeR <img src="man/figures/logo.png" align="right" alt="" width="120"/>
> What a color! What a viz!
`visualizeR` proposes some utils to get REACH and AGORA colors,
ready-to-go color palettes, and a few visualization functions
(horizontal hist graph for instance).
## Installation
You can install the last version of visualizeR from
[GitHub](https://github.com/) with:
``` r
# install.packages("devtools")
devtools::install_github("gnoblet/visualizeR", build_vignettes = TRUE)
```
## Roadmap
Roadmap is as follows:
- [x] Add IMPACTs colors
- [x] Add all color palettes from the internal documentation
- [ ] There remains to be added more-than-7-color palettes and black
color palettes
- [ ] Add new types of visualization (e.g. dumbbell plot)
- [ ] Use examples
- [ ] Add some ease-map functions
- [ ] Add some interactive functions (maps and graphs)
## Request
Please, do not hesitate to pull request any new viz or colors or color
palettes, or to email request any change
(<guillaume.noblet@reach-initiative.org> or <gnoblet@zaclys.net>).
## Colors
Color palettes for REACH, AGORA and IMPACT are available. Functions to
access colors and palettes are `cols_initiative()` or
`pal_initiative()`. For now, the initiative with the most colors and
color palettes is REACH. Feel free to pull requests new AGORA and IMPACT
colors.
``` r
library(visualizeR)
# Get all saved REACH colors, named
cols_reach(unnamed = F)[1:10]
#> white black main_grey main_red main_lt_grey main_beige
#> "#FFFFFF" "#000000" "#58585A" "#EE5859" "#C7C8CA" "#D2CBB8"
#> iroise_1 iroise_2 iroise_3 iroise_4
#> "#DFECEF" "#B1D7E0" "#699DA3" "#236A7A"
# Extract a color palette as hexadecimal codes and reversed
pal_reach(palette = "main", reversed = TRUE, color_ramp_palette = FALSE)
#> [1] "#58585A" "#EE5859" "#C7C8CA" "#D2CBB8"
# Get all color palettes names
pal_reach(show_palettes = T)
#> [1] "main" "primary" "secondary" "two_dots"
#> [5] "two_dots_flashy" "red_main" "red_main_5" "red_alt"
#> [9] "red_alt_5" "iroise" "iroise_5" "discrete_6"
#> [13] "red_2" "red_3" "red_4" "red_5"
#> [17] "red_6" "red_7" "green_2" "green_3"
#> [21] "green_4" "green_5" "green_6" "green_7"
#> [25] "artichoke_2" "artichoke_3" "artichoke_4" "artichoke_5"
#> [29] "artichoke_6" "artichoke_7" "blue_2" "blue_3"
#> [33] "blue_4" "blue_5" "blue_6" "blue_7"
```
## Charts
### Example 1: Bar chart, already REACH themed
``` r
library(visualizeR)
library(palmerpenguins)
library(dplyr)
df <- penguins |>
group_by(island, species) |>
summarize(
mean_bl = mean(bill_length_mm, na.rm = T),
mean_fl = mean(flipper_length_mm, na.rm = T)) |>
ungroup()
# Simple bar chart by group
bar_reach(df, mean_bl, island, species, percent = FALSE, x_title = "Mean of bill length")
```
<img src="man/figures/README-example-bar-chart-1.png" width="100%" />
``` r
# Using another color palette
bar_reach(df, mean_bl, island, species, percent = FALSE, palette = "artichoke_3", legend_rev = TRUE)
```
<img src="man/figures/README-example-bar-chart-2.png" width="100%" />
### Example 2: Point chart, already REACH themed
At this stage, `point_reach()` only supports categorical grouping colors
with the `group` arg.
``` r
# Simple point chart
point_reach(penguins, bill_length_mm, flipper_length_mm)
```
<img src="man/figures/README-example-point-chart-1.png" width="100%" />
``` r
# Point chart with grouping colors, greater dot size, some transparency, reversed color palette
point_reach(penguins, bill_length_mm, flipper_length_mm, island, alpha = 0.6, size = 3, reverse = TRUE)
```
<img src="man/figures/README-example-point-chart-2.png" width="100%" />
``` r
# Using another color palettes
point_reach(penguins, bill_length_mm, flipper_length_mm, island, palette = "artichoke_3")
```
<img src="man/figures/README-example-point-chart-3.png" width="100%" />
## Maps
``` r
# Add indicator layer
# - based on "pretty" classes and title "Proportion (%)"
# - buffer to add a 10% around the bounding box
map <- add_indicator_layer(
indicator_admin1,
opn_dfc,
buffer = 0.1) +
# Layout - some defaults - add the map title
add_layout("% of HH that reported open defecation as sanitation facility") +
# Admin boundaries as list of shape files (lines) and colors, line widths and labels as vectors
add_admin_boundaries(
lines = list(line_admin1, border_admin0, frontier_admin0),
colors = cols_reach("main_lt_grey", "dk_grey", "black"),
lwds = c(0.5, 2, 3),
labels = c("Department", "Country", "Dominican Rep. frontier"),
title = "Administrative boundaries") +
# Add text labels - centered on admin 1 centroids
add_admin_labels(centroid_admin1, ADM1_FR_UPPER) +
# Add a compass
add_compass() +
# Add a scale bar
add_scale_bar() +
# Add credits
add_credits("Admin. boundaries. : CNIGS \nCoord. system: GCS WGS 1984")
```
![Once exported with
`tmap::tmap_save()`.](man/figures/README-example-map.png)