R语言实现绘制Sankey桑基图(河流图、分流图)流程数据可视化

我们一直在寻找一种直观的方法来绘制流程中状态之间的流程或连接。

由Kaizong Ye,Sherry Deng撰写

一个明显的选择是,R软件包恰好满足了我的需求。


将数据设置为正确的格式是一个比较麻烦的过程。现在,本文仅说明如何构建多级图。

构造数据

此示例的计划是在六层中的每一层具有四个节点,并且层之间具有流。数据很好地说明了该过程,并且产生的结果与我所追求的最终图一致。

我们必须为节点和边创建数据结构。我将从边开始,然后使用这些数据提取节点。

边数据帧由具有“从”节点(N1)和“至”节点(N2)的记录以及它们之间的流的值组成。在这里,我系统地构建了一个随机流网格,并删除了一些破坏对称性的记录。


课程

R语言数据分析挖掘必知必会

从数据获取和清理开始,有目的的进行探索性分析与可视化。让数据从生涩的资料,摇身成为有温度的故事。

立即参加

> eges = data.frame
> 

> head(eges)

然后从边数据帧中提取节点的名称。根据标签计算节点的水平和垂直位置。这些位置不是严格必需的,因为软件包将为您确定合理的默认值。

> nds = data.frame
> nods$x = as.integer
> nos$y = as.integer
> rownames(noes) = ID
> head(nos)

最后,我们构造了样式列表,这些样式将应用于每个节点。选择合适的颜色并为重叠部分引入透明度非常重要。

> pate = paste0
> stes = lapply(y, function(n) {
+   list
+ })
> names= ID

构造桑基图河流图对象

现在我们可以构造河流图对象了。为此,我们将节点,边和样式数据结构连接到列表中,然后将“ river”添加到类属性列表中。

> rp <- list
> #
> class<- c

这样就可以制作图。

> plot

R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集

阅读文章



随时关注您喜欢的主题


结论

我可以想到很多类似这样的应用程序,因此我对可视化前景感到非常兴奋。


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds