培训班有个小伙伴非常想学习桑基图的画法,所以我今天就搜罗下 R 语言里面绘制桑基图的一些方法。最推荐的方法是使用 ggalluvial 绘制。其他的方法仅供参考,大家根据自己的喜好学习即可。当然绘制桑基图的方法还有很多,本文介绍的几种是我觉得比较好用的。
构造示例数据
首先我们需要构造一个示例数据集用于接下来的演示,这里我使用的是我的微信好友数据里面的省份、城市、性别变量。这个数据可以用下面的 Python 脚本获取:
import itchat |
如果你的微信无法通过这种方式导出好友数据(如果提示无法登陆网页版就表示无法导出,没有解决办法的),可以直接使用我的 friends.csv 数据集(已经被处理过了)。
明晚的课程将介绍如下几种方法:
使用 sankeywheel 绘制
| 使用 sankeywheel 绘制 |
|---|
![]() |
使用 ggalluvial 绘制
这个方法非常重要,推荐大家掌握:
| 使用 ggalluvial 绘制 |
|---|
![]() |
使用 alluvial 绘制
alluvial 包是基于基础绘图系统封装的,似乎不容易解决文本标签相互重叠的问题:
| 使用 alluvial 绘制 |
|---|
![]() |
使用 echarts4r 绘制
| 使用 echarts4r 绘制 |
|---|
![]() |
使用 highcharter 绘制
这个绘制的结果和上面的 sankeywheel 一样:
| 使用 highcharter 绘制 |
|---|
![]() |
使用 ggsankey 包绘制
| 使用 ggsankey 包绘制 |
|---|
![]() |
![]() |
![]() |
使用 ggSankeyGrad 包绘制带渐变色的桑基图
| 使用 ggSankeyGrad 包绘制带渐变色的桑基图 |
|---|
![]() |
点击这里跳转到 RStata 短书平台获取附件:使用 R 语言绘制桑基图、和弦图、冲积图的一些方法








评论