敲黑板!小果教你学习R包-ggalluvial,绘制炫酷的桑基图(Sankey)!






敲黑板!小果教你学习R包-ggalluvial,绘制炫酷的桑基图(Sankey)!

小果  生信果  2023-09-14 19:00:49

生信人R语言学习必备

立刻拥有一个Rstudio账号

开启升级模式吧

(56线程,256G内存,个人存储1T)

 


小伙伴平时面对多个数据关系不知道如何绘制图,一般来说使用常见的表格已经满足不了小伙伴,并且也不好看。而今天小果给大家介绍的桑基图可以呈现数据的流动和分布。而桑基图(Sankey)作为相对复杂的图表种类,平时很少用到,主要是它使用的而环境不多,并且制作难度很大,但是桑基图可以很好的展示我们数据的分布。

我们就带小伙伴去学习桑基图的绘制,小果带小伙伴绘制的桑基图是一种特定类型的流程图,其中图中延伸分支的宽度对应数据流量的大小,通常应用我们数据的可视化分析。

接下里小果就大家去学习吧!

首先我们先载入R包,主要用到主要的用到还是ggalluvial这专门绘制桑基图的包


library(ggalluvial)library(ggplot2)library(dplyr)#这里小果使用的实例数据带领大家去学习,主要用的使用TCGA数据集中的LIHC的临床数据进行展示,大家可以根据数据格式处理自己的临床数据。


#读入LIHC临床数据LIHC <- read.csv("data.csv",header=TRUE)#在这里展示数据情况head(LIHC)summary(LIHC)


小伙伴注意下:桑基图的数据结构需要节点,权重等信息,而ggalluvial的输入数据可以是长数据亦可以是宽数据

我们先对临床数据进行简单的处理得到四个变量的频数,整理成宽数据:


#分组计算频数LIHCData <- group_by(LIHC,AGE,SEX,AJCC_PATHOLOGIC_TUMOR_STAGE,OS_STATUS) %>% summarise(., count = n())#查看宽数据格式head(LIHCData)



上述数据处理完成,我们开始去绘制桑基图:

# 绘制桑基图ggplot(data = LIHC_long,      aes(x = Demographic, stratum = stratum, alluvium = alluvium,          y = count, label = stratum)) + geom_alluvium(aes(fill = OS_STATUS)) + geom_stratum() + geom_text(stat = "stratum") + theme_minimal() + ggtitle("Patients in the TCGA-LIHC cohort",         "stratified by demographics and survival")



接下来我们还以利用桑基图去展示状态变化的趋势

这里我们使用R包中内置数据集 vaccinations 这个可以展示同一个项目下不同生存状态的情况

感兴趣的小伙伴可以按照一下数据形式去设置自己的数据集:


data(vaccinations)levels(vaccinations$response) <- rev(levels(vaccinations$response))#小果在这里作为演示接下来绘制桑基图:ggplot(vaccinations,      aes(x = survey, stratum = response, alluvium = subject,          y = freq,          fill = response, label = response)) + scale_x_discrete(expand = c(.1, .1)) + geom_flow() + geom_stratum(alpha = .5) + geom_text(stat = "stratum", size = 3) + theme(legend.position = "none") + ggtitle("vaccination survey responses at three points in time")



这样一来状态变化的趋势就展示出来了。

上述就是如何使用R包-ggalluvial绘制桑基图!,小伙伴有没有心动呢,快去设置自己的数据集去完成桑基图。小果在这里提醒大家一下,要注意多多理解代码中参数的含义,这样能把自己可视化的结果展示成自己的图片。


下期将为你带来更多R语言的骚操作技巧,以下推荐的是一个多功能的生信平台。

云生信平台链接:http://www.biocloudservice.com/home.html。


其他相关分析内容,例如预测肿瘤样本药物敏感性分析(http://www.biocloudservice.com/712/712.php),预测某样本亚型对免疫治疗的反应(http://www.biocloudservice.com/292/292.php),单样本富集算法分析免疫浸润丰度(http://www.biocloudservice.com/106/106.php),计算64种免疫细胞相对含量(http://www.biocloudservice.com/107/107.php)等都可以用本公司新开发的零代码云平台生信分析小工具,一键完成该分析奥,感兴趣的小伙伴欢迎来尝试奥,网址:http://www.biocloudservice.com/home.html。今天小果的分享就到这里,下期在见奥。


小果友情推荐

好用又免费的工具安利


点击“阅读原文”立刻拥有

↓↓↓