之所以会想到写关于桑基图的内容是因为最近工作需要,研究了下桑基图,发现网络上和桑基图相关的真实可用的资料少之又少,所以决定出这篇博客,讲讲如何用R语言绘制桑基图。
什么是桑基图?
它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。
原本是用在工程学上的图形,但是因为用来表述各个大类别间的区别与联系很直观,所以我拿来描述区域与门店间销售的区别与联系。
怎么画桑基图?
R语言里面主要用networkD3包绘制,核心是sankeynetwork()函数,函数细节
sankeyNetwork(Links, Nodes, Source, Target, Value, NodeID, NodeGroup = NodeID,
LinkGroup = NULL, units = "",
colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);"), fontSize = 7,
fontFamily = NULL, nodeWidth = 15, nodePadding = 10, margin = NULL,
height = NULL, width = NULL, iterations = 32, sinksRight = TRUE)
首先载入包,读入基础数据,数据集包含5个区域,每个