我正在尝试使用新的ggvis包在堆积面积图上绘制。

ggplot中,我设法做到了这一点:

d<- data.frame(
  time=as.numeric( rep( 1:100, 100 ) ),
  class=as.factor( sample( 7, 100000, replace=TRUE ) )
)

t <- as.data.frame( table( d$time, d$class ) )

ggplot( t, aes( x=as.numeric( Var1 ), y=Freq, fill=Var2 ) ) +
  geom_area( stat="identity" )

使用ggvis,我已经成功地使用条形图在相同的布局中绘制了相同的数据:
ggvis( t, x=~as.numeric( Var1 ), y=~Freq, fill=~Var2 )
  %>% group_by( Var2 )
  %>% layer_bars()

但是我不知道如何告诉ggvis我想要区域,而不是酒吧。 layer_areas不存在,并且layer_pathslayer_ribbons都给我错误的结果。

我玩过路径和功能区的 Prop ,但是我不知道如何告诉ggvis画出彼此叠放的区域。

使用ggvis绘制堆叠区域图的正确方法是什么?

最佳答案

我认为您需要同时指定y(功能区的下限)和y2(功能区的上限),才能使其正常工作。所以尝试像

library(dplyr)
library(ggvis)
t %>%
    group_by(Var1) %>%
    mutate(to = cumsum(Freq), from = c(0, to[-n()])) %>%
    ggvis(x=~as.numeric(Var1), fill=~Var2) %>%
    group_by(Var2) %>%
    layer_ribbons(y = ~from, y2 = ~to)

关于r - 在ggvis中绘制堆积面积图的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26591794/

10-12 22:39