zenplots

CRAN_Status_Badge Total downloads Monthly downloads

Plotting paths to data enlightenment

zenplots logo

The package zenplots (zigzag expanded navigation plots) displays high-dimensional data by laying out alternating one- and two-dimensional plots in a zigzag-like pattern where adjacent axes share the same variate.

Zenplots are especially useful when subsets of pairs can be identified as of particular interest by some measure, or as not meaningfully comparable, or when pairs of variates can be ordered in terms of potential interest to view, or the number of pairs is too large for more traditional layouts such as a scatterplot matrix. They also allow an essentially arbitrary layout of plots.

High dimensional space can be explored in a zenplot (zenplot()) by navigating through lower dimensional subspaces along a zenpath (zenpath()) which orders the dimensions (i.e. variates) visited according to some measure of interestingness; see Hofert and Oldford (2018)) for an application to S&P 500 constituent data or Hofert et al (2019) for application to visualizing dependence between two sets of variates.
See Hofert and Oldford (2020) for algorithms.

The R package zenplots provides compact displays for high-dimensional data via the notion of zenplots, grouping of variates, and customizable displays of zigzag layouts. It accommodates different graphical systems including the base graphics package, the grid package (and hence packages like ggplot2), and the interactive graphical package loon.

zenplots handles groups of variates, partial and fully missing data, and more.

One important feature is that zenplot() and its auxiliary functions in zenplots distinguish layout from plotting which allows one to freely choose and create one- and two-dimensional plot functions; predefined functions are exported for all graphical systems.

Try it.

Become one with your data!

Note

Since zenplots relies on the graph package from Bioconductor, and optionally also Rgraphviz to plot any graph structures, it might be simplest to install it using Bioconductor:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("zenplots")