Добавьте размер выборки (n) к каждому графику рассеяния фасетов (R, ggpubr) - PullRequest
0 голосов
/ 11 июня 2019

Используя в качестве примера набор данных 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 Ответ

1 голос
/ 11 июня 2019

Предложение немного упростить задачу: создайте новый столбец для цилиндра + размер образца и используйте его для заголовков фасетов.

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

...