如何将具有相同x的不同数据帧的图合并到一个图中R

how to have plots from different dataframes with same x into one figure R

这里我对两个图都使用了 mtcars 只是为了重现一个例子。但实际上我有 df1 生产 p1 和 df2 生产 p2。 p1 和 p2 都具有相同的 x 轴值。

# from : http://homepages.gac.edu/~anienow2/MCS_142/R/R-barchart2-1.html
library(ggplot2) #load ggplot2 library

mtcars$gear <- factor(mtcars$gear) # Create a categorical variable
mtcars$cyl <- factor(mtcars$cyl) # Create categorical variable
p1 <- ggplot(data = mtcars, aes(x=gear, fill=cyl) ) + geom_bar() # Creates stacked bar chart
p1 <- p1 + xlab("Gears") + ggtitle("Cylinders by Gears") # Adds title and labels
p1




mtcars$carb <- factor(mtcars$carb)
p2 <- ggplot(data = mtcars, aes(x=gear, fill=carb) ) + geom_bar() 
p2 <- p2 + xlab("Gears") + ggtitle("carb") # Adds title and labels
p2

我不想重复 x 轴。考虑到每个图都来自不同的数据框,我不知道如何在这里应用 facet_wrap 或 facet_grip 方法。有什么想法吗?

一种方法是使用:

library(grid)
grid.newpage()
grid.draw(rbind(ggplotGrob(p1+ theme_minimal() + 
                             theme(axis.title.x = element_blank(), axis.text.x = element_blank())), 
                ggplotGrob(p2+ theme_minimal()), size = "last"))