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!
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")
::install("zenplots") BiocManager