R语言——桑基图

桑基图(Sankey diagram),有人也叫冲击图,是用来表示数据流动的一种可视化直观图。

R语言——桑基图
R语言——桑基图

首先是安装包:

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")
R语言——桑基图

绘制桑基图

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")#定义图名
R语言——桑基图

转载至:https://mp.weixin.qq.com/s/mkr72BSdTHqbzWNFdfeKRg

    原创文章(本站视频密码:66668888),作者:xujunzju,如若转载,请注明出处:https://zyicu.cn/?p=15949

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    xujunzju管理者
    上一篇 2023年4月11日 19:47
    下一篇 2023年4月26日 14:52

    相关推荐

    发表回复

    登录后才能评论
    联系我们
    邮箱:
    xujunzju@gmail.com
    公众号:
    xujunzju6174
    捐赠本站
    捐赠本站
    分享本页
    返回顶部