Отобразить корреляции Спирмена между парами коробочных сюжетов в ggplot2/ggpubr
У меня есть график с тремя коробочными диаграммами, и мне нужно отобразить корреляции Спирмена между парами коробочных диаграмм, используя ggplot2 или ggpubr.
Подобный график легко составить, но с попарно p-значениями. Например,
library(ggpubr)
data("ToothGrowth")
df <- ToothGrowth
p <- ggboxplot(df, x = "dose", y = "len",
color = "dose", palette =c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter", shape = "dose")
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
p + stat_compare_means(comparisons = my_comparisons)
Как я могу сделать подобный график, но с корреляциями Спирмена вместо p-значений?
Любая помощь приветствуется
1 ответ
dose_0.5 <- df[df$dose == 0.5,]
dose_1 <- df[df$dose == 1,]
dose_2 <- df[df$dose == 2,]
cor.test(dose_1$len,dose_2$len)
cor.test(dose_0.5$len,dose_2$len)
cor.test(dose_1$len,dose_0.5$len)
p <- ggboxplot(df, x = "dose", y = "len",
color = "dose", palette =c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter", shape = "dose")
my_comparisons <- list( c("0.5", "1"), c("1", "2"), c("0.5", "2") )
p + geom_signif(test = "wilcox.test",
comparisons = list( c("0.5", "1"), c("1", "2"), c("0.5", "2") ),
vjust = 0,
textsize = 4,
size = .5,
step_increase = .08,
annotations = c(cor.test(dose_1$len,dose_0.5$len)$estimate,
cor.test(dose_1$len,dose_2$len)$estimate,
cor.test(dose_0.5$len,dose_2$len)$estimate))
df
это ToothGrowth
набор данных. если вы действительно хотите что-то подобное, просто замените значение p.value персоналом корреляции, возможно, вам нужно отредактировать легенду или заголовок, чтобы пояснить, что аннотация является коэффициентом корреляции.
Кстати, вы можете добавить round()
в annotation = ...
поэтому коэффициент корреляции не будет таким длинным.