将样本大小(n)添加到每个构面散点图(R,ggpubr)

时间:2019-06-11 00:31:04

标签: r scatter-plot facet ggpubr

以mtcars数据集为例,我正在使用此代码。

library(ggplot2)
library(ggpubr)
ggscatter(mtcars, x = "qsec", y = "disp", facet.by = "cyl", add = "reg.line", add.params = list(color = "blue", fill = "lightblue"), conf.int = TRUE, cor.method = "spearman", cor.coef = TRUE)

我想将样本大小添加到每个方面,以便它说“ n =”样本大小。我尝试了以下修改,但是没有运气。可能有人对如何解决此问题有任何建议吗?

library(ggplot2)
library(ggpubr)
give.n <- function(x){return(c(y = min(mtcars$disp), label = length(x)))}
ggscatter(mtcars, x = "qsec", y = "disp", facet.by = "cyl", add = "reg.line", add.params = list(color = "blue", fill = "lightblue"), conf.int = TRUE, cor.method = "spearman", cor.coef = TRUE) + geom_text(paste0("n = ", (data = give.n, aes(cyl, disp, label = n), vjust = 2))

1 个答案:

答案 0 :(得分:1)

建议使事情变得简单一些:为圆柱体+样本大小创建一个新列,并将其用于构面标题。

library(ggpubr)
library(dplyr)

mtcars %>% 
  group_by(cyl) %>% 
  mutate(n = paste0("cyl = ", cyl, ", n = ", n())) %>% 
  ggscatter(., x = "qsec", y = "disp", facet.by = "n", add = "reg.line", 
            add.params = list(color = "blue", fill = "lightblue"), conf.int = TRUE, 
            cor.method = "spearman", cor.coef = TRUE)

结果:

enter image description here