微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ggalluvial 中的其他颜色透明度类别

如何解决ggalluvial 中的其他颜色透明度类别

我正在尝试重现移动流程图,但我真的不知道如何为基于轴 2 类别的填充参数添加额外的颜色透明度。或者这是否是解决这个问题的方法

任何建议将不胜感激,谢谢!

我想要达到的目标: Mobility flow diagram

我所拥有的: My mobility flow diagram example

我的移动流程图示例代码

library(ggplot2)
library(ggalluvial)

oclass <- c("1st","1st","2nd","3rd","3rd")
dclass <- c("1st","3rd")
Freq  <- c(700,200,100,600,50,250,700)

odclass <- data.frame(oclass,dclass,Freq)

ggplot(odclass,aes(y = Freq,axis1 = oclass,axis2 = dclass)) + 
       geom_alluvium(aes(fill = oclass),width = 1/6,reverse = TRUE) +
       geom_stratum(width = 1/6,alpha = 0,reverse = TRUE,color = "black") +
       geom_text(aes(label = after_stat(stratum)),stat = "stratum",size=5) +
       scale_fill_manual(values = c("darkcyan","darkgoldenrod2","mediumorchid")) +
       theme_minimal() +
       theme(axis.title.y = element_blank(),axis.text.y= element_blank(),legend.position = "none",plot.title = element_text(hjust=0.5,size=18),axis.text.x = element_blank())

解决方法

添加您想要的内容非常容易。您只需将 alpha 映射到 dclass,然后使用 scale_alpha_manual() 设置您想要的值。

library(tidyverse)
library(ggalluvial)
#> Warning: package 'ggalluvial' was built under R version 4.0.4

oclass <- c("1st","1st","2nd","3rd","3rd")
dclass <- c("1st","3rd")
Freq  <- c(700,200,100,600,50,250,700)

odclass <- data.frame(oclass,dclass,Freq)

ggplot(odclass,aes(y = Freq,axis1 = oclass,axis2 = dclass)) + 
  geom_alluvium(aes(fill = oclass,alpha = dclass),width = 1/6,reverse = TRUE) +
  geom_stratum(width = 1/6,alpha = 0,reverse = TRUE,color = "black") +
  geom_text(aes(label = after_stat(stratum)),stat = "stratum",size=5) +
  scale_fill_manual(values = c("darkcyan","darkgoldenrod2","mediumorchid")) +
  scale_alpha_manual(values = c(0.9,0.7,0.5)) +
  theme_minimal() +
  theme(axis.title.y = element_blank(),axis.text.y= element_blank(),legend.position = "none",plot.title = element_text(hjust=0.5,size=18),axis.text.x = element_blank())
#> Warning in to_lodes_form(data = data,axes = axis_ind,discern =
#> params$discern): Some strata appear at multiple axes.
#> Warning in to_lodes_form(data = data,discern =
#> params$discern): Some strata appear at multiple axes.

#> Warning in to_lodes_form(data = data,discern =
#> params$discern): Some strata appear at multiple axes.

reprex package (v1.0.0) 于 2021 年 3 月 29 日创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。