问题描述
我有一个用 ggforce::geom_parallel_sets
制作的桑基图/冲积图。
由于出发地和目的地的类别数量不同(出发地三个,目的地两个),因此它们之间存在高度差异。我想让它们具有相同的高度,这将涉及增加两个目的地类别之间的间隔,但我不知道如何实现这一点。
注意:我确实需要这些休息时间,即根本不能没有休息时间;只需要增加目的地中断处的空间,使其与原点高度相同。另外,我宁愿坚持 ggforce
(除非您可以在 ggalluvial
中休息)。
library(tidyverse)
library(ggforce)
oclassuni <- structure(list(oclass = c("1st","1st","2nd","3rd","3rd"),uni = c("degree","no degree","degree","no degree"),Freq = c(520,719,1186,871,633,2626,520,2626),Perc = c(42,58,57.7,42.3,19.4,80.6,42,80.6),id = c(1L,2L,3L,4L,5L,6L,1L,6L),x = c("oclass","oclass","uni","uni"),y = c("1st","no degree")),row.names = c(NA,-12L),groups = structure(list(
oclass = c("1st",.rows = structure(list(c(1L,7L,8L),c(3L,9L,10L),c(5L,11L,12L)),ptype = integer(0),class = c("vctrs_list_of","vctrs_vctr","list"))),3L),class = c("tbl_df","tbl","data.frame"),.drop = TRUE),class = c("grouped_df","tbl_df","data.frame"))
ggplot(oclassuni,aes(fct_relevel(x,"oclass"),id = id,split = y,value = Perc)) +
geom_parallel_sets(aes(fill = oclass,alpha = uni),axis.width = 3,sep = 0.05) +
scale_fill_manual(values = c("#5D6BA3","#E3280B","#158248")) +
scale_alpha_manual(values = c(0.8,0.6)) +
theme_minimal() +
theme(axis.title.y = element_blank(),axis.title.x = element_blank(),axis.text.y = element_blank(),axis.text.x = element_blank(),legend.position = "none",plot.title = element_text(hjust=0.5,size=18),panel.grid.major = element_blank(),panel.grid.minor = element_blank(),panel.border = element_blank(),panel.background = element_blank())
编辑:我已经使用了 sep
参数,sep = c(0.025,0.05)
给出了以下内容,但是现在原点(!)中有不均匀的空格,而 sep 不会采用三个值...有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)