README.md

R package for drawing alluvial diagrams

Build Status Build Status rstudio mirror downloads cran version

What are alluvial diagrams? See for example:

Examples

Alluvial diagram of datasets::Titanic data made with alluvial(). Notice how each category block becomes a stacked barchart showing relative frequency of survivors.

tit <- tibble::as_data_frame(Titanic)

tit %>% head() %>% knitr::kable()

|Class |Sex |Age |Survived | n| |:-----|:------|:-----|:--------|--:| |1st |Male |Child |No | 0| |2nd |Male |Child |No | 0| |3rd |Male |Child |No | 35| |Crew |Male |Child |No | 0| |1st |Female |Child |No | 0| |2nd |Female |Child |No | 0|

alluvial(
    select(tit, Survived, Sex, Age, Class),
    freq=tit$n,
    col = ifelse(tit$Survived == "Yes", "orange", "grey"),
    border = ifelse(tit$Survived == "Yes", "orange", "grey"),
    layer = tit$Survived != "Yes",
    alpha = 0.8,
    blocks=FALSE
  )

plot of chunk alluvial

Alluvial diagram for multiple time series / cross-sectional data based on alluvial::Refugees data made with alluvial_ts().

Refugees %>% head() %>% knitr::kable()

|country | year| refugees| |:-----------|----:|--------:| |Afghanistan | 2003| 2136043| |Burundi | 2003| 531637| |Congo DRC | 2003| 453465| |Iraq | 2003| 368580| |Myanmar | 2003| 151384| |Palestine | 2003| 350568|

set.seed(39) # for nice colours
cols <- hsv(h = sample(1:10/10), s = sample(3:12)/15, v = sample(3:12)/15)

alluvial_ts(Refugees, wave = .3, ygap = 5, col = cols, plotdir = 'centred', alpha=.9,
            grid = TRUE, grid.lwd = 5, xmargin = 0.2, lab.cex = .7, xlab = '',
            ylab = '', border = NA, axis.cex = .8, leg.cex = .7,
            leg.col='white', 
            title = "UNHCR-recognised refugees\nTop 10 countries (2003-13)\n")

plot of chunk alluvial_ts

Installation

Using "devtools" package:

devtools::install_github("mbojan/alluvial")


Try the alluvial package in your browser

Any scripts or data that you put into this service are public.

alluvial documentation built on May 2, 2019, 1:29 p.m.