我想创建一个显示特定统计信息和与图形的每个bin相关的权重的图。由于不建议在ggplot2
中创建双Y轴图,因此我遵循了建议,将两个图堆叠为另一个。以下是我所做的最少可复制的示例:
library(data.table)
library(ggplot2)
library(gridExtra)
set.seed(1L)
data <- data.table(x=1:10, y=10000+1000*runif(10), weight=runif(10))
plot_stat <- ggplot(data) +
geom_line(aes(x, y), stat="identity") +
theme_classic() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank(),
axis.title.x=element_blank(), axis.line.x=element_blank())
plot_weight <- ggplot(data) +
theme_classic() +
geom_bar(aes(x, weight), stat="identity")
grid.arrange(plot_stat, plot_weight, nrow = 2, heights = c(0.7, 0.3))
其输出如下:
我的问题是,两个图形的轴标记保留空间都不相同。无论轴标签是什么,我都希望轴线完全对齐。
这是我想要的结果(手动编辑):
有没有办法做到这一点?
谢谢!
答案 0 :(得分:2)
您要使用库cowplot
。 。 。
library(cowplot)
plot_grid(plot_stat, plot_weight, ncol = 1, align = "v")
需要注意的一件事是,cowplot
将更改您的默认ggplot主题,因此,请执行以下操作来更改它:theme_set(theme_gray())
。