Alluvial Diagrams

Creating alluvial diagrams (also known as parallel sets plots) for multivariate and time series-like data.


What are alluvial diagrams? See for example:

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()
ClassSexAgeSurvivedn
1stMaleChildNo0
2ndMaleChildNo0
3rdMaleChildNo35
CrewMaleChildNo0
1stFemaleChildNo0
2ndFemaleChildNo0
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
  )

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

Refugees %>% head() %>% knitr::kable()
countryyearrefugees
Afghanistan20032136043
Burundi2003531637
Congo DRC2003453465
Iraq2003368580
Myanmar2003151384
Palestine2003350568
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")

Using "devtools" package:

devtools::install_github("mbojan/alluvial")

News

alluvial 0.1-2

  • There is a vignette vignette("alluvial", package="alluvial") illustrating basic usage of alluvial(). The vignette needs dplyr package so it is now Suggested.
  • README has been updated. It is dynamically generated from an associated .Rmd file. Some typos fixed.

alluvial 0.1-1

First release.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("alluvial")

0.1-2 by Michal Bojanowski, 10 months ago


https://github.com/mbojan/alluvial


Report a bug at https://github.com/mbojan/alluvial/issues


Browse source code at https://github.com/cran/alluvial


Authors: Michal Bojanowski [aut, cre], Robin Edwards [aut]


Documentation:   PDF Manual  


MIT + file LICENSE license


Suggests devtools, testthat, reshape2, knitr, rmarkdown, dplyr


Suggested by rcv.


See at CRAN