r - 堆叠具有相同轴尺寸的 ggplot 图
问题描述
我有以下假设示例:
library(ggplot2)
library(gridExtra)
# df1
descr <- c("aaa","bbb","ccc")
v1 <- c(10,20,30)
df1 <- data.frame(descr,v1)
# df2
descr <- c("aaa","bbb","ccc")
v11 <- c(11111,22222,33333)
df2 <- data.frame(descr,v11)
# plot 1
p01 <- ggplot() +
geom_point(data = df1, aes(x=descr, y=v1,color=v1), size=5))
# plot 2
p02 <- ggplot() +
geom_point(data = df2, aes(x=descr, y=v11, color=v11), size=5)
# put them together and save
p_both <- arrangeGrob(p01,p02,nrow=2)
ggsave(file="testSave.png",p_both, width = 10, height = 15, units = "cm")
如您所见,轴不对齐。我知道在这个特定的示例中,我可以将 dfs 转换为长格式并使用分面,但这不是重点。是否可以手动操作轴以使它们匹配,以便内部图的尺寸完全相同?
谢谢!
解决方案
试试这个patchwork
包怎么样?
library(tidyverse)
# install.packages("devtools")
devtools::install_github("thomasp85/patchwork")
library(patchwork)
p01 + p02 + plot_layout(ncol = 1)
推荐阅读
- google-sheets - 为什么这个 Google 表格连接公式会给我奇怪的结果?
- python - 计算列表python的嵌套列表的元素
- dataweave - 如何在dataweave中对多列进行分组
- r - 如何在 R 中正确接收来自 pdf 的文本?
- c - 我如何将限制设置为变量
- ios - 如何快速测试缓存的响应?
- html - Hugo - 获取视频标题并将其转换为 URL
- .net - 在 Angular 中实现 JWT 访问令牌后从 API 获取列表时出现 401 错误
- html - 如何在其他内容上显示登录页面并在显示登录页面时删除滚动条?
- python - Python - 输入 pycharm 时 cv2 包未显示任何功能