Как добавить размер выборки, используемый при построении geom_jitter - PullRequest
0 голосов
/ 24 января 2020

Я хочу добавить количество образцов, добавленных к графику, рядом с моим текстом stat_cor (ggpubr).

Я использую следующий код для создания графика:

dataset = mtcars

 ggplot(dataset,  aes(dataset$wt, dataset$disp)) +
 geom_jitter()  +
 geom_smooth(level=0.95, method = "loess") +
 stat_cor(method="spearman") + 
 theme_classic()

Но, если я хочу построить несколько графиков на одной фигуре, которая использует реальный набор данных, где разные переменные имеют разные пропущенные значения, было бы неплохо, чтобы размер моей выборки использовался для построения geom_jitter.

1 Ответ

4 голосов
/ 24 января 2020

Это немного странно (и ограничено в его возможностях), но вы можете использовать аргумент label.sep, чтобы вставить размер выборки между коэффициентом корреляции и значением p (обратите внимание, что в более старой версии ggpubr есть ошибка с label.sep ... если это не работает для вас, попробуйте обновить ваш пакет)

ggplot(mtcars,  aes(wt, disp)) +
  geom_jitter()  +
  geom_smooth(level = 0.95, method = "loess") +
  stat_cor(method = "spearman", label.sep = sprintf(", n = %s, ", nrow(mtcars))) +
  theme_classic()

enter image description here

Если ваша проблема пропущенные значения, возможно, вам потребуется использовать функцию, отличную от nrow, но я оставлю это вам. Это также не будет работать с фасетами (вы получите одинаковое число в каждом фасете).

Для полностью гибкого решения, я думаю, вы могли бы использовать geom_text, или, возможно, stat_summary с geom = "text" было бы возможно?

Или go хардкор, как этот ответ , если больше ничего не работает

Просто для полноты пропущенных значений:

ggplot(mtcars,  aes(wt, disp)) +
geom_jitter()  +
geom_smooth(level = 0.95, method = "loess") +
stat_cor(method = "spearman", label.sep = 
  sprintf(", n = %s, ", 
    sum(complete.cases(mtcars[c("wt","disp")]))
  )) +
theme_classic()

Для построения графика значения N на полных случаях wt и disp, как показано в примере

...