Это немного странно (и ограничено в его возможностях), но вы можете использовать аргумент 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](https://i.stack.imgur.com/LNlGG.png)
Если ваша проблема пропущенные значения, возможно, вам потребуется использовать функцию, отличную от 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, как показано в примере