你知道如何使用R语言绘制桑基图吗?
小锐当然知道啦,并且教你
绘制酷炫的桑基图。
开课啦
桑基图(Sankey)是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,其最明显的特征就是,始末端的分支宽度相等,即所有主支宽度的总和应与所有分出去的分支宽度的总和相等,保持能量的平衡。
今天小锐就介绍一下,如何使用R语言绘制这种酷炫的桑基图。
1
安装并调用“networkD3”绘图包:
install.packages("networkD3")
library(networkD3)
2
加载数据:
mydata1
type=c("社会科学","教辅类","工具书","计算机","计算机","微生物","金融"),
name=c("社会百科","算法图解","牛津词典","算法图解","python入门","消失的微生物","货币金融学"),
value=c(33,10,13,14,55,26,12),stringsAsFactors=FALSE)
> 查看原始数据:
mydata1
3
整理数据,以满足绘图要求:
3.1
首先,按能量平衡原则,计算各层级value值,按层级关系以长表格形式列出
mydata2
mydata1
names(mydata2)
names(mydata1)
mydata
> 查看数据形式:
mydata
3.2
然后,将mydata数据中的“source”“target”替换成索引值(注:index以0开始)
Sankeylinks
Sankeynodes
Sankeynodes$index
Sankeylinks #替