R ggplot 和 gt 输出 - 我如何将它们组合到输出图像上
R ggplot and gt outputs - how can I combine these on an output image
在 base R 中,我有一些代码可以在图表下方写入 table 统计数据。我想对 'ggplot' 图表和 'gt' table 进行类似的处理。最好的方法是什么?我在下面使用 gridExtra 的尝试失败了。
# load requried packages
require(tidyverse)
require(gt)
require(gridExtra)
# make a ggplot chart
GGP <- ggplot(dat = iris, aes( x= Sepal.Width, y = Sepal.Length, colour = Species)) + geom_point()
# make a dt statistics table
GT <- gt(iris %>% group_by(Species) %>% summarise(n = n(), Mean = mean(Sepal.Width), SD = sd(Sepal.Width))
# Plot both on one page?
grid.arrange(GGP, GT, nrow = 2)
要使用 grid.arrange
组合绘图,两个对象都必须是图形对象或 grobs
,而 gt
的输出不是。一种方法是使用 gridExtra
中的 tableGrob()
创建 grob:
tab = iris %>%
group_by(Species) %>%
summarise(n = n(), Mean = mean(Sepal.Width), SD = sd(Sepal.Width))
grid.arrange(GGP,tableGrob(tab))
另一种方法是使用 ggpubr
包:
library(tidyverse)
library(ggpubr)
# make a ggplot chart
GGP <- ggplot(dat = iris, aes( x= Sepal.Width, y = Sepal.Length, colour = Species)) + geom_point()
# construct table with desc_statby from ggpubr package
GT <- desc_statby(iris, measure.var = "Sepal.Width",grps = "Species")
GT <- GT[, c("Species", "length", "mean", "sd")]
GT <- ggtexttable(GT, rows = NULL,
theme = ttheme("lBlack"))
grid.arrange(GGP, GT, nrow = 2)
在 base R 中,我有一些代码可以在图表下方写入 table 统计数据。我想对 'ggplot' 图表和 'gt' table 进行类似的处理。最好的方法是什么?我在下面使用 gridExtra 的尝试失败了。
# load requried packages
require(tidyverse)
require(gt)
require(gridExtra)
# make a ggplot chart
GGP <- ggplot(dat = iris, aes( x= Sepal.Width, y = Sepal.Length, colour = Species)) + geom_point()
# make a dt statistics table
GT <- gt(iris %>% group_by(Species) %>% summarise(n = n(), Mean = mean(Sepal.Width), SD = sd(Sepal.Width))
# Plot both on one page?
grid.arrange(GGP, GT, nrow = 2)
要使用 grid.arrange
组合绘图,两个对象都必须是图形对象或 grobs
,而 gt
的输出不是。一种方法是使用 gridExtra
中的 tableGrob()
创建 grob:
tab = iris %>%
group_by(Species) %>%
summarise(n = n(), Mean = mean(Sepal.Width), SD = sd(Sepal.Width))
grid.arrange(GGP,tableGrob(tab))
另一种方法是使用 ggpubr
包:
library(tidyverse)
library(ggpubr)
# make a ggplot chart
GGP <- ggplot(dat = iris, aes( x= Sepal.Width, y = Sepal.Length, colour = Species)) + geom_point()
# construct table with desc_statby from ggpubr package
GT <- desc_statby(iris, measure.var = "Sepal.Width",grps = "Species")
GT <- GT[, c("Species", "length", "mean", "sd")]
GT <- ggtexttable(GT, rows = NULL,
theme = ttheme("lBlack"))
grid.arrange(GGP, GT, nrow = 2)