桑基图(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论文写作等领域的知识梳理和资料分享,科研临床两手抓,促进科研成果转化,为广大医务工作者提供便利。
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。