使用 R 语言绘制桑基图、和弦图、冲积图的一些方法

培训班有个小伙伴非常想学习桑基图的画法,所以我今天就搜罗下 R 语言里面绘制桑基图的一些方法。最推荐的方法是使用 ggalluvial 绘制。其他的方法仅供参考,大家根据自己的喜好学习即可。当然绘制桑基图的方法还有很多,本文介绍的几种是我觉得比较好用的。

构造示例数据

首先我们需要构造一个示例数据集用于接下来的演示,这里我使用的是我的微信好友数据里面的省份、城市、性别变量。这个数据可以用下面的 Python 脚本获取:

import itchat
import pandas as pd
itchat.auto_login(hotReload = True)
friends = itchat.get_friends(update = True)
friends = pd.DataFrame(friends)
friends.to_csv("friends.csv")

如果你的微信无法通过这种方式导出好友数据(如果提示无法登陆网页版就表示无法导出,没有解决办法的),可以直接使用我的 friends.csv 数据集(已经被处理过了)。

明晚的课程将介绍如下几种方法:

使用 sankeywheel 绘制

使用 sankeywheel 绘制

使用 ggalluvial 绘制

这个方法非常重要,推荐大家掌握:

使用 ggalluvial 绘制

使用 alluvial 绘制

alluvial 包是基于基础绘图系统封装的,似乎不容易解决文本标签相互重叠的问题:

使用 alluvial 绘制

使用 echarts4r 绘制

使用 echarts4r 绘制

使用 highcharter 绘制

这个绘制的结果和上面的 sankeywheel 一样:

使用 highcharter 绘制

使用 ggsankey 包绘制

使用 ggsankey 包绘制

使用 ggSankeyGrad 包绘制带渐变色的桑基图

使用 ggSankeyGrad 包绘制带渐变色的桑基图

点击这里跳转到 RStata 短书平台获取附件:使用 R 语言绘制桑基图、和弦图、冲积图的一些方法

评论