ggcor | 相关分析和可视化的扩展工具

简介: ggcor | 相关分析和可视化的扩展工具

拿到一个陌生的图,第一步肯定得查查看是否有文献来源。于是,我用百度/谷歌识图搜索了一下,好家伙,不搜不知道,一搜吓一跳,19年Science发表过类似的图片后,各路大神都在复现,甚至还开发了专门的R包。

image.png

既然有现成的包,那咱也不客气了,直接拿来用就是了。


安装 ggcor


# Gitee地址安装(试了好几个)
devtools::install_git("https://gitee.com/dr_yingli/ggcor") 
library(ggcor)
library(ggplot2)

相关性图


# 以mtcars 数据集为例 
# 不同的图形代码如下
library(patchwork)
# layer of tile
A <- quickcor(mtcars) + geom_colour()
# layer of circle and trim the lower triangle
B <- quickcor(mtcars, type = "upper") + geom_circle2()
# layer of ellipse and not show diagonal
C <- quickcor(mtcars, type = "lower", show.diag = FALSE) + geom_ellipse2()
# layer of square and reorder correlation matrix by cluster
D <- quickcor(mtcars, cluster = TRUE) + geom_square()
# layer of confidence box
E <- quickcor(mtcars, cor.test = TRUE) + geom_confbox()
# different layer of upper/lower triangle
F <- quickcor(mtcars, cor.test = TRUE) +
  geom_square(data = get_data(type = "lower", show.diag = FALSE)) +
  geom_mark(data = get_data(type = "upper", show.diag = FALSE)) +
  geom_abline(slope = -1, intercept = 12)
(A+B+C)/(E+D+F)+ plot_annotation(tag_levels = 'A')

image.png


组合相关性图


library(dplyr)
library(vegan)
library(ggplot2)
# 载入示例数据
data("varechem", package = "vegan")
data("varespec", package = "vegan")
# Mantel.test 检验计算矩阵相关性
mantel <- mantel_test(varespec, varechem, mantel.fun = 'mantel.randtest',spec.dist.method = 'bray', env.dist.method = 'euclidean', 
                      spec.select = list(Spec01 = 1:7,
                                         Spec02 = 8:18,
                                         Spec03 = 19:37
                                                   )) %>% 
  mutate(r_value = cut(r, breaks = c(-Inf, 0.25, 0.5, Inf), 
                   labels = c('<0.25', '0.25-0.5', '>=0.5'), right = FALSE),
         p_value = cut(p.value, breaks = c(-Inf, 0.001, 0.01, 0.05, Inf), 
                       labels = c('<0.001', '0.001-0.01', '0.01-0.05', '>=0.05'), right = FALSE))
quickcor(varechem, type = "upper") +
  geom_square() +
  anno_link(aes(colour = p_value, size = r_value), data = mantel) +
  scale_size_manual(values = c(0.5, 1, 2)) +
  scale_colour_manual(values = c("#D95F02", "#1B9E77", "#A2A2A288")) +
  guides(size = guide_legend(title = "Mantel's r",
                             override.aes = list(colour = "grey35"), 
                             order = 2),
         colour = guide_legend(title = "Mantel's p", 
                               override.aes = list(size = 3), 
                               order = 1),
         fill = guide_colorbar(title = "Pearson's r", order = 3))

image.png


环状热图


# 需要安装ambient包
install.packages('ambient') 
library(ambient)
rand_correlate(100, 8) %>% ## require ambient packages
  quickcor(circular = TRUE, cluster = TRUE, open = 45) +
  geom_colour(colour = "white", size = 0.125) +
  anno_row_tree() +
  anno_col_tree() +
  set_p_xaxis() +
  set_p_yaxis()

image.png


参考


houyunhuang/ggcor · GitHub


dr.yingli/ggcor (gitee.com)


相关文章
|
8月前
|
机器学习/深度学习 数据采集 数据可视化
【数据分析与可视化】SKlearn主要功能和模块概述(图文解释 简单易懂)
【数据分析与可视化】SKlearn主要功能和模块概述(图文解释 简单易懂)
320 0
|
8月前
|
数据可视化 数据挖掘
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
|
3月前
|
数据可视化 定位技术 vr&ar
酷企秀可视化设计器
酷企秀可视化设计器
33 0
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
72 0
|
5月前
|
数据可视化 算法 数据挖掘
【python】商业数据聚类-回归数据分析可视化(源码+数据)【独一无二】
【python】商业数据聚类-回归数据分析可视化(源码+数据)【独一无二】
|
7月前
|
机器学习/深度学习 数据可视化 Python
多项分布模拟及 Seaborn 可视化教程
多项分布是二项分布的推广,描述了在n次试验中k种不同事件出现次数的概率分布。参数包括试验次数n、结果概率列表pvals(和为1)和输出形状size。PMF公式展示了各结果出现次数的概率。NumPy的`random.multinomial()`可生成多项分布数据。练习包括模拟掷骰子和抽奖活动。解决方案提供了相关图表绘制代码。关注公众号“Let us Coding”获取更多内容。
64 0
|
8月前
|
分布式计算 数据可视化 数据库
R语言进行相关矩阵分析及其可视化
R语言进行相关矩阵分析及其可视化
|
8月前
|
数据可视化 前端开发 数据挖掘
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
数据分析可视化神器---streamlit框架,各种图表绘制,布局以及生产综合案例剖析
1014 0
|
8月前
|
分布式计算 数据可视化 数据挖掘
R语言进行相关矩阵分析及其网络可视化
R语言进行相关矩阵分析及其网络可视化
|
8月前
|
存储 数据可视化
R语言优化交易系统:用平行坐标图可视化系统参数优化结果
R语言优化交易系统:用平行坐标图可视化系统参数优化结果