2019年Science一篇讲海洋微生物的文章里面有这样一个图:
后来,厚蕴老师开发的ggcor
,完全实现了上图,开启了相关性可视化的新世界:
代码如下:
library(ggcor)
library(ggplot2)
library(dplyr)
library(Cairo)
data("varechem", package = "vegan")
data("varespec", package = "vegan")
mantel <- mantel_test(varespec, varechem,
spec.select = list(Acuce = 1:7,
HPN = 8:18,
MLN = 19:37,
LX = 38:44)) %>%
mutate(rd = cut(r, breaks = c(-Inf, 0.2, 0.4, Inf),
labels = c("< 0.2", "0.2 - 0.4", ">= 0.4")),
pd = cut(p.value, breaks = c(-Inf, 0.01, 0.05, Inf),
labels = c("< 0.01", "0.01 - 0.05", ">= 0.05")))
p = quickcor(varechem, type = "upper") +
#geom_square() +
geom_circle2() +
anno_link(aes(colour = pd, size = rd),
data = mantel) +
anno_link_label(geom = "label") +
scale_size_manual(values = c(0.5, 1, 2)) +
scale_colour_manual(values = c("#D95F02", "#1B9E77", "#A2A2A288")) +
guides(size = guide_legend(title = "曼特尔检验r值",
override.aes = list(colour = "grey35"),
order = 2),
colour = guide_legend(title = "曼特尔检验p值",
override.aes = list(size = 3),
order = 1),
fill = guide_colorbar(title = "皮尔森相关系数", order = 3))
ggsave(p, filename = 'test.pdf',
width = 8, height = 6,#units = 'cm',
device = cairo_pdf,
family = 'Song')
网友评论