sankey/冲积层图,含百分比和部分填充率(R)

sankey/冲积层图,含百分比和部分填充率(R),r,ggplot2,dataflow,sankey-diagram,R,Ggplot2,Dataflow,Sankey Diagram,我想使用ggplot2和ggplot2修改现有的sankey绘图,使其更具吸引力 我的例子来自 库(ggplot2) 图书馆(GG) 数据(疫苗接种) 水平(疫苗接种$response)可以这样实现: 更改为百分比可以通过向df添加一个新列来实现,该列包含调查的百分比份额,然后可以映射到y而不是freq 要获得好的百分比标签,可以使用scale\u y\u continuous(label=scales::percent\u format()) 对于部分填充,您可以在fill上映射例如%c中

我想使用
ggplot2
ggplot2
修改现有的sankey绘图,使其更具吸引力

我的例子来自

库(ggplot2)
图书馆(GG)
数据(疫苗接种)

水平(疫苗接种$response)可以这样实现:

  • 更改为百分比可以通过向df添加一个新列来实现,该列包含调查的百分比份额,然后可以映射到
    y
    而不是
    freq

  • 要获得好的百分比标签,可以使用
    scale\u y\u continuous(label=scales::percent\u format())

  • 对于部分填充,您可以在
    fill
    上映射例如%c中的
    响应%(“缺失”、“从未”)
    (为“缺失”和“从未”提供
    TRUE
    ),并通过
    比例填充手册设置填充颜色

  • 可以通过
    geom\u text
    中的
    label=paste0(..strateum..,“\n”,scales::percent(..count..,精度=.1))
    将每个层的百分比添加到标签中,其中我使用变量
    .strateum..
    .count..
    stat\u strateum
    计算

  • 库(ggplot2)
    图书馆(GG)
    图书馆(dplyr)
    数据(疫苗接种)
    水平(疫苗接种$应答)%
    变异(pct=freq/sum(freq))
    ggplot(疫苗接种,
    aes(x=调查,地层=响应,冲积层=主体,
    y=pct,
    填充=响应%c(“缺失”、“从未”),
    标签=响应)+
    比例x离散(扩展=c(.1,.1))+
    比例是连续的(标签=比例::百分比格式()+
    刻度填充手动(值=c(`TRUE`=“cadetblue1”`FALSE`=“grey50”))+
    geom_流()+
    geom_地层(α=0.5)+
    几何图形文本(aes(标签=粘贴0(…地层…,“\n”,刻度::百分比(…计数…,精度=.1))),stat=“地层”,大小=3)+
    主题(legend.position=“无”)+
    ggtitle(“三个时间点的疫苗接种调查响应”)
    

    感谢您的帮助,此解决方案看起来非常不错。关于2,如何将百分比添加到每个地层的值旁边(如示例图所示)?Hi@captcoma。我刚刚做了一个编辑,将百分比添加到标签中。太棒了!感谢您提供此代码!