在不附加ggalluvial的情况下指定“ stratum”和“ alluvium”参数

时间:2018-12-15 22:18:35

标签: r ggplot2

我将ggalluvialggplot2一起使用,但我希望能够生成相同的图而无需附加ggalluvial,而仅将其指定为ggalluvial::使用。如果未连接,则会出现以下错误:Error: Can't find stat called "stratum"

d <- data.frame(

    status = rep(c("state1","state2","state3"), rep(90, times=3)),
    cellIndex = rep(seq_len(90), times=3),
    cellCategory = c(rep(letters[seq_len(3)], each=30),
                     rep(letters[c(2,3,1)], each=30), 
                     rep(letters[c(3,1,2)], each=30))
)


ggplot2::ggplot(data=d, ggplot2::aes(x=status, stratum=cellCategory, alluvium=cellIndex,
                fill=cellCategory, label=cellCategory)) +

    ggalluvial::geom_flow(stat="alluvium", lode.guidance="rightleft", color="darkgray") +

    ggalluvial::geom_stratum() +

    ggplot2::geom_text(stat="stratum", size=3)

1 个答案:

答案 0 :(得分:5)

这是一个艰难的过程-深入https://docs.python.org/3/library/functions.html#getattr,stat参数粘贴您提供的字符串,然后在您所处的环境中查找该对象(在本例中为“ StatStratum”)。因为您不想加载该程序包,所以它无法找到它(并且无法更改参数本身)。

答案

因此,您需要像这样从ggalluvial包中保存该对象:

StatStratum <- ggalluvial::StatStratum

然后保留其余代码。