桑基图绘制

桑基图用于展示一个样本具有多种属性

基本

数据格式(模拟生成数据)

rm(list = ls())
options(stringsAsFactors = F)
##生成模拟数据表
df <- data.frame(cluster = rep(c("A", "B"), 30),
                 group = rep(c("group1", "group2", "group3"), each = 20),
                 group1 = rep(c("1", "2", "3"), 20))

library(ggalluvial)
#定义足够多的颜色,后面从这里选颜色
mycol <- rep(c("#223D6C","#D20A13","#FFD121","#088247","#11AA4D","#58CDD9",
               "#7A142C","#5D90BA","#029149","#431A3D","#91612D","#6E568C",
               "#E0367A","#D8D155","#64495D","#7CC767"),2)
#格式转换
UCB_lodes <- to_lodes_form(df[,1:ncol(df)],
                           axes = 1:ncol(df),
                           id = "Cohort")
dim(UCB_lodes)

#######################
ggplot(UCB_lodes,
       aes(x = x, stratum = stratum, alluvium = Cohort,
           fill = stratum, label = stratum)) +
  scale_x_discrete(expand = c(0, 0)) + 
  geom_flow(width = 1/8) + #线跟方块间空隙的宽窄
  geom_stratum(alpha = .9,width = 1/10) + #方块的透明度、宽度
  geom_text(stat = "stratum", size = 3,color="black") + #文字大小、颜色
  
  #不喜欢默认的配色方案,用前面自己写的配色方案
  scale_fill_manual(values = mycol) +
  
  xlab("") + ylab("") +
  theme_bw() + #去除背景色
  theme(panel.grid =element_blank()) + #去除网格线
  theme(panel.border = element_blank()) + #去除外层边框
  theme(axis.line = element_blank(),axis.ticks = element_blank(),axis.text = element_blank()) + #去掉坐标轴
  ggtitle("")+
  guides(fill = FALSE) 
ggsave("sankey模型测试.pdf")

结果

信息补全版

ggplot(UCB_lodes,
       aes(x = x, stratum = stratum, alluvium = Cohort,
           fill = stratum, label = stratum)) +
  scale_x_discrete(expand = c(0, 0)) + 
  geom_flow(width = 1/8) + #线跟方块间空隙的宽窄
  geom_stratum(alpha = .9,width = 1/10) + #方块的透明度、宽度
  geom_text(stat = "stratum",size = 3,color="black") + #文字大小、颜色
  #不喜欢默认的配色方案,用前面自己写的配色方案
  scale_fill_manual(values = mycol) +
  xlab("") + 
  ylab("") +
  theme_bw() + #去除背景色
  theme(panel.grid =element_blank()) + #去除网格线
  theme(panel.border = element_blank()) + #去除外层边框
  theme(axis.line = element_blank(),
        axis.ticks = element_blank(),
        #axis.text = element_blank()##显示坐标
        ) + #去掉坐标轴
  ggtitle("标题")+##标题
  guides(fill = FALSE) 
ggsave("sankey模型测试.pdf")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值