科普 | 相信我,你也可以用R语言画出这么漂亮的桑基图

桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图; 是一种特定类型的流程图。可从线条的走向,粗细的变化和节点间的比较观察对它进行分析观察。图中延伸的分支的宽度对应数据流量的大小,该类图比较适用于用户流量等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。

目前的可视化软件极其发达,制作桑基图绝非难事,从主流数据科学编程工具(R、Python等)亦或是人人都能上手的自助式BI工具(PowerBI、Tableau等)都可以胜任此工作。

今天,以R为例,简单介绍用R制作桑基图的例子,以下例子来源网络,有兴趣深入学习可自行从网上查阅。

例1:用TCGA数据集中的LIHC的临床数据进行展示,大家可以根据数据格式处理自己的临床数据。示例数据以及R代码见链接

桑基图的数据结构需要节点,权重等信息,ggalluvial 的输入数据可以是长数据亦可以是宽数据。

此处以宽数据示例:对临床数据进行简单的处理,得到后四个变量的频数,整理成宽数据

绘制桑基图

图片来源于生信补给站

例2:画一个DNA

#install.packages("riverplot")

library( riverplot )

plot.new()

par( usr= c( 0, 4, -2.5, 2.5 ) )

w <- 0.4cols <- c( "blue", "green" )

init <- c( -0.8, -0.5 )

pos <- c( 1, -1 )

step <- 0.5

for( i in rep( rep( c( 1, 2 ), each= 2 ), 5 ) ) { curveseg( init[i], init[i] + step, pos[1], pos[2], width= w, col= cols[i] )

init[i] <- init[i] + step pos <- pos * -1

}

图片来源于网络

欢迎关注微信公众号启帆医学BioSCI,需要代码请添加科研小助理,,公众号专注于生物医学研究、科研课题设计、SCI论文写作等领域的知识梳理和资料分享,科研临床两手抓,促进科研成果转化,为广大医务工作者提供便利。

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
意见反馈 合作

Copyright © 2023 Sohu All Rights Reserved

搜狐公司 版权所有