冲击图(alluvial diagram)是属于一种流程图(flow diagram) ,ggalluvial
是一个基于ggplot2的扩展包,专门用于快速绘制冲击图。
下面简单给大家介绍如何用R绘制:
# 安装ggalluvial包
install.packages("ggalluvial")
library(ggalluvial)
利用majors课程安排数据集进行演示:
# 加载
library(ggalluvial)
library(ggthemes)
# 载入示例
data(majors)
majors$curriculum <- as.factor(majors$curriculum)
ggplot(majors,
aes(x = semester,
stratum = curriculum,
alluvium = student,
fill = curriculum,
label = curriculum)) +
scale_fill_brewer(type = "qual", palette = "Set1") +
# 添加冲击图
geom_flow(stat = "alluvium",
lode.guidance = "frontback",
color = "white") +
theme_few() +
# 翻转x、y轴
coord_flip() +
# 堆积条形图
geom_stratum() +
# 图例位置
theme(legend.position = "right") +
ggtitle("student curricula across several semesters")
如此一个简单的冲击图绘制好了,我们利用coord_flip
进行了X、Y轴翻转,使图形更加方便易懂,更多内容大家可以参考官方文档。
参考资料:
1.http://corybrunson.github.io/ggalluvial/articles/ggalluvial.html