Yunuuuu/ggalign · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
ggalign 
ggalign 包提供了一个用于可组合可视化的集成框架,支持构建复杂的多图布局——包括插图、圆形排列和多面板组合。基于图形语法,它引入了用于对齐、堆叠和嵌套图形的工具,使关联视图的链接、聚类结果的叠加或共享模式的突出显示变得轻而易举。该包专为基因组学、转录组学和微生物组研究等高维数据场景而设计,简化了从多种视觉组件创建丰富注释、可直接用于出版物的图形的过程。
为什么使用 ggalign?
ggalign 专注于跨多个图形对齐观测值。如果你曾为对齐具有自包含排序(如树状图)的图形,或在多个图形中应用一致的分组或排序(例如,使用 k-means 聚类)而苦恼,ggalign 旨在使这一过程更加简单。该包与 ggplot2 无缝集成,提供了使用其 geoms、scales 和其他组件进行复杂可视化的灵活性。
安装
你可以使用以下命令从 CRAN 安装 ggalign:
install.packages("ggalign")
或者,从 r-universe 安装开发版本:
install.packages("ggalign",
repos = c("https://yunuuuu.r-universe.dev", "https://cloud.r-project.org")
)
或从 GitHub 使用:
# install.packages("remotes")
remotes::install_github("Yunuuuu/ggalign")
学习 ggalign
- Full reference documentation: https://yunuuuu.github.io/ggalign/
- Complete tutorial book: https://yunuuuu.github.io/ggalign-book/
- Gallery of examples: https://yunuuuu.github.io/ggalign-gallery/
设计特性

示例

与其他可组合可视化工具的比较
ggalign | marsilea | ComplexHeatmap | ||
|---|---|---|---|---|
| 语言 | R | Python | R | |
| 用户界面 | 声明式 | 声明式 | 函数式 | |
| 绘图系统 | ggplot2 (基于网格系统的高级绘图系统) | Matplotlib | grid | |
| 重点 | 通用可组合可视化 | 基于网格的可组合可视化 | 热图 | |
| StackLayout | ✅ | ✅ | ✅ | |
| QuadLayout | ✅ | ✅ | 仅限热图 (离散变量) | |
| CircleLayout | ✅ | ❌ | ❌ | |
| 关系 | 一对一 | ✅ | ✅ | ✅ |
| 一对多/多对一 | ✅ | ❌ | ❌ | |
| 多对多 | ✅ | ❌ | ❌ | |
| 横向 | ✅ | ❌ | ❌ | |
| 标注观测值 | ✅ | ❌ | ✅ | |
| 与 ggplot2 完全兼容 | ✅ | ❌ | ❌ | |
功能与规格对比
| 规格 | ggalign | marsilea | ComplexHeatmap |
|---|---|---|---|
| 重新排序观测值 | ✅ | ✅ | 仅限热图 |
| 将观测值分组到不同面板 | ✅ | ✅ | 仅限热图 |
| 聚类算法 | Kmeans、Hierarchical Clustering 和任意算法 | ❌ | Kmeans、Hierarchical Clustering 和任意算法 |
| 图例创建 | 自动 | 自动 | 有限的自动,需要手动添加 |
| 图例位置 | 任意位置;每个图可独立控制 | 任意位置 | 固定为四边之一 |
| 树状图 | 来自 hclust 或 ape 的树 | 仅 hclust | 仅 hclust |
| Tanglegram | ✅ | ❌ | ❌ |
| 3D Heatmap | ✅ | ❌ | ✅ |
| Oncoplot | ✅ | ✅ | ✅ |
| UpSet plot | ✅ | ✅ | ✅ |
致谢
我谨向 ggplot2 项目的贡献者致以诚挚的感谢,感谢他们为 R 语言中的数据可视化提供了一个强大且灵活的框架。他们的工作为这个包的功能和设计奠定了基础。我还要感谢 patchwork 项目,绘图组合器的核心代码即改编自该项目。patchwork 库提供了一种有用的机制,用于组合和对齐绘图,该机制经过修改以适应本包的需求。如果没有这些开源项目的贡献,本包将不可能实现。
此外,我想向 @teunbrand 表达我衷心的感谢,他满足了我众多的功能请求,并协助将新函数集成到 ggplot2 中。