桑基图(Sankey diagram),有人也叫冲击图,是用来表示数据流动的一种可视化直观图。
首先是安装包:
library(ggalluvial) #加载ggalluvial包
install.packages("ggalluvial") #如果没有安装,则先在R中输入这行代码
读取数据,或者自己创建一个数据集
mysangkey <- data.frame(
sex=c( rep("Male",10),rep("Female",10)),
carstyle=c( rep("car",5),rep("motuo",10), rep("bike",5)),
age=c( rep("young(100%)",5),rep("middle",5), rep("old",5), rep("older",5)),
lovedgree=c(0,1,3,25,12,
14,25,34,36,36,
78,145,32,123,66,
15,2,32,44,56))#搭建了20行4列的数据组
head(mysangkey)#查看数据集,如上面截图
write.csv(mysangkey ,"/Users/xujun/Downloads/1/mysangkey.csv")
绘制桑基图
ggplot(mysangkey,
aes(y =lovedgree,
axis1 = sex, axis2 = age, axis3 = carstyle))+#定义图形绘制
geom_alluvium(aes(fill = age),width = 0, reverse = FALSE,discern = TRUE)+#控制线条流向
geom_stratum(width = 1/3, reverse = FALSE,discern = TRUE) +#控制中间框的宽度
geom_text(stat = "stratum", aes(label = after_stat(stratum)),reverse = FALSE, size = 4,angle=0,discern = TRUE)+ #定义中间的文字
scale_x_continuous(breaks = 1:3, labels = c("sex", "age", "carstyle"))+#定义X轴上图标排序
theme(legend.position = "none") +#定义图例有无
ggtitle("mysangkey")#定义图名
转载至:https://mp.weixin.qq.com/s/mkr72BSdTHqbzWNFdfeKRg
原创文章(本站视频密码:66668888),作者:xujunzju,如若转载,请注明出处:https://zyicu.cn/?p=15949