在带有 ggplot 中的四个图的图形下方添加标题
Add title below the graph with four plots in ggplot
由于数据的隐私,我使用ggplot2
中的mtcar
数据集来解释我的问题。
有四个地块:
g1 <- ggplot(mtcars,aes(mpg,wt)) + geom_point()
g2 <- ggplot(mtcars,aes(mpg,disp)) + geom_point()
g3 <- ggplot(mtcars,aes(mpg,drat)) + geom_point()
g4 <- ggplot(mtcars,aes(mpg,qsec)) + geom_point()
我想把这四个图放在一个图中,所以我使用包 grid.Extra
:
中的 grid.arrange()
函数
grid.arrange(g1,g2,g3,g4,ncol=2)
现在,我想在这些图中的每个图下方添加标题,如下图所示(我在Word中修改过,所以不漂亮)
问之前,我在SO
中搜索过,我知道如何在一个图下面添加标题,例如,使用grid.text()
或这三种方法Displaying text below the plot generated by ggplot2 or element_text(vjust=-10)
, but I can't apply it to four plots in one graph. Meanwhile, I have got some results in base graph How to add a title to each plot in R? or Common main title of a figure panel compiled with par(mfrow),问题是我想在 ggplot2
中进行,标题在每个图的下方,我该如何实现?谢谢!
你可以先用 arrangeGrob 包装每个地块,
g1 <- g2 <- g3 <- g4 <- ggplot()
titles = LETTERS[1:4]
plots = mapply(arrangeGrob, list(g1,g2,g3,g4),
bottom = titles, SIMPLIFY=FALSE)
grid.arrange(grobs = plots, ncol=2)
由于数据的隐私,我使用ggplot2
中的mtcar
数据集来解释我的问题。
有四个地块:
g1 <- ggplot(mtcars,aes(mpg,wt)) + geom_point()
g2 <- ggplot(mtcars,aes(mpg,disp)) + geom_point()
g3 <- ggplot(mtcars,aes(mpg,drat)) + geom_point()
g4 <- ggplot(mtcars,aes(mpg,qsec)) + geom_point()
我想把这四个图放在一个图中,所以我使用包 grid.Extra
:
grid.arrange()
函数
grid.arrange(g1,g2,g3,g4,ncol=2)
现在,我想在这些图中的每个图下方添加标题,如下图所示(我在Word中修改过,所以不漂亮)
SO
中搜索过,我知道如何在一个图下面添加标题,例如,使用grid.text()
或这三种方法Displaying text below the plot generated by ggplot2 or element_text(vjust=-10)
, but I can't apply it to four plots in one graph. Meanwhile, I have got some results in base graph How to add a title to each plot in R? or Common main title of a figure panel compiled with par(mfrow),问题是我想在 ggplot2
中进行,标题在每个图的下方,我该如何实现?谢谢!
你可以先用 arrangeGrob 包装每个地块,
g1 <- g2 <- g3 <- g4 <- ggplot()
titles = LETTERS[1:4]
plots = mapply(arrangeGrob, list(g1,g2,g3,g4),
bottom = titles, SIMPLIFY=FALSE)
grid.arrange(grobs = plots, ncol=2)