r - 排列多个绘图并保持 x 轴标签与轴齐平
问题描述
我正在使用patchwork
包安排多个情节。其中一个图的文本垂直排列,这将 x 轴标签向下推(应该如此),但是当我与第二个图结合时,两个图中的 x 轴标签都向下移动。我想将第二个图的 x 轴标签保持在其原始位置。用一个例子更容易解释:
library(ggplot2)
library(patchwork)
# Toy data
mtcars2 <- mtcars[1:5, ]
mtcars2$mod <- row.names(mtcars2)
# make 2 plots
p1 <- ggplot(mtcars2, aes(mod, mpg)) +
geom_col() +
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))
p2 <- ggplot(mtcars2, aes(hp, disp)) +
geom_point()
# arrange plots next to each other
p1 + p2
但我想要:
这可能吗?我没有被束缚patchwork
,我尝试过gridExtra::grid.arrange()
,但改变了情节的大小。
解决方案
使用library(cowplot)
, x 轴p2
会下降,不像你的例子,但我希望它对你有帮助。如果您需要让 x 轴的位置在同一位置,请告诉我。
@phalteman 的补充说明
通过添加, align = "h", axis = "b"
,plot_grid
它真的成为你想要的!
library(cowplot)
mtcars2 <- mtcars[1:5, ]
mtcars2$mod <- row.names(mtcars2)
# make 2 plots
p1 <- ggplot(mtcars2, aes(mod, mpg)) +
geom_col() +
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1))
p2 <- ggplot(mtcars2, aes(hp, disp)) +
geom_point()
# arrange plots next to each other
plot_grid(p1, p2, align = "h", axis = "b") #Thanks to @phalteman
推荐阅读
- r - 使用rvest在r中抓取具有不同目录字符串的多个网页
- jquery - 仅在滚动到视图中的第一个时间添加一个类
- jpa - 如何为 Spring Data JPA 存储库管理数据库连接?
- javascript - 如何从用户那里获取值并在 Javascript 中使用它
- hadoop - 切换名称节点 - Hadoop Java api with camel , jms
- python - 无法从 google.cloud 导入存储
- python - 如何在使用 Pandas 处理 .csv 文件时合并大写和小写?
- regex - 用 sed 解析
- php - 如何在 laravel 的隐藏字段中添加 required
- c# - GetBaseException() 适用于本地主机,但发布后为空