This package extends ggplot2 by providing advanced tools for aligning and organizing multiple plots, particularly those that automatically reorder observations, such as dendrogram. It offers fine control over layout adjustment and plot annotations, enabling you to create complex, publication-quality visualizations while still using the familiar grammar of ggplot2.
Why use ggalign
?
ggalign
focuses on aligning observations across multiple plots. It leverages the "number of observations"
in the vctrs package or NROW()
function to maintain consistency in plot organization.
If you’ve ever struggled with aligning plots with self-contained ordering (like dendrogram), or applying consistent grouping or ordering across multiple plots (e.g., with k-means clustering), ggalign
is designed to make this easier. The package integrates seamlessly with ggplot2, providing the flexibility to use its geoms, scales, and other components for complex visualizations.
Installation
You can install ggalign
from CRAN
using:
install.packages("ggalign")
Alternatively, install the development version from r-universe with:
install.packages("ggalign",
repos = c("https://yunuuuu.r-universe.dev", "https://cloud.r-project.org")
)
or from GitHub with:
# install.packages("remotes")
remotes::install_github("Yunuuuu/ggalign")
Learning ggalign
The complete tutorial is available at: https://yunuuuu.github.io/ggalign-book/
For the full reference documentation, visit: https://yunuuuu.github.io/ggalign/
Compare with other ggplot2 heatmap extension
ggalign
offers advantages over extensions like ggheatmap by providing full compatibility with ggplot2
. With ggalign
, you can:
- Seamlessly integrate ggplot2
geoms
,stats
,scales
et al. into your layouts. - Align dendrograms even in facetted plots.
- Easily create complex layouts, including multiple heatmaps arranged vertically or horizontally.
Compare with ComplexHeatmap
Pros
- Full integration with the
ggplot2
ecosystem. - Heatmap annotation axes and legends are automatically generated.
- Dendrogram can be easily customized and colored.
- Flexible control over plot size and spacing.
- Can easily align with other
ggplot2
plots by panel area. - Can easily extend for other clustering algorithm, or annotation plot.
Cons
Fewer Built-In Annotations: May require additional coding for specific annotations or customization compared to the extensive built-in annotation function in ComplexHeatmap.