1写在前面
啊啊啊啊啊!!!!~终于值完夜班休息了。😭
最近是大搞医疗反腐的日子,㊗️各位执法人员成绩满满!~🤒
听说以后医务人员要年薪制
了,完全搞不懂这些东西的初衷和理由,感觉自己的🍚里米又要少一些了。🫠
年薪制
的同时也希望让我们按时上下班,周末双休,取消夜班,至于米少就少吧。🥳
今天是chord diagram
教程,比较基础,希望大家有所收获吧。😏
2用到的包
rm(list = ls())
library(tidyverse)
library(circlize)
3示例一 邻接矩阵绘制显chord diagram
3.1 示例数据
我们先创建一个邻接矩阵
(adjacency matrix
)吧。
numbers <- sample(c(1:1000), 100, replace = T)
data <- matrix( numbers, ncol=5)
rownames(data) <- paste0("orig-", seq(1,20))
colnames(data) <- paste0("dest-", seq(1,5))
head(data)
3.2 可视化
chordDiagram(data, transparency = 0.5)
3.3 补充一下
有的小伙伴搞不清什么是邻接矩阵
(adjacency matrix
),所以这里补充一下吧。😏
邻接矩阵
(adjacency matrix
)是一种用于表示图形的矩阵,其中每个元素表示两个节点之间是否存在边。在邻接矩阵中,行和列分别表示图形中的节点,矩阵的元素表示相应节点之间是否存在边。😋
在无向图中,邻接矩阵是对称的,因为如果有一条从节点i
到节点j
的边,那么也一定有一条从节点j
到节点i
的边。在有向图中,邻接矩阵通常不是对称的。🧐
邻接矩阵可以用于表示各种类型的图形,包括无向图、有向图、加权图等。它是一种常用的图形表示方法,可以方便地进行各种图形算法和分析。🥳
4示例二 edge文件绘制显chord diagram
4.1 示例文件
我们也一样先随机生成一下edge
文件吧。😜
origin <- paste0("orig ", sample(c(1:10), 20, replace = T))
destination <- paste0("dest ", sample(c(1:10), 20, replace = T))
data <- data.frame(origin, destination)
DT::datatable(data)
4.2 转换为邻接矩阵
哈哈哈哈哈哈哈,接着我们也要转换成邻接矩阵
。🥰
这里大家可以巧妙的使用with
函数哦,不清楚的看一下help
吧。😜
adjacencyData <- with(data, table(origin, destination))
## 这里可以等同为adjacencyData <- table(data$origin, data$destination)😘
adjacencyData
4.3 可视化
chordDiagram(adjacencyData, transparency = 0.5)
4.4 更改配色
这里就只讲一个小的修饰吧,也是大家常用的,比如修改配色。🥰
library(ggsci)
mypal <- pal_aaas(alpha = 0.7)(10)
chordDiagram(data, col = mypal)
点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰
📍 🤣 chatPDF | 别再自己读文献了!让chatGPT来帮你读吧!~
📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......
本文由 mdnice 多平台发布