在ggvis中绘制堆积区域图的正确方法是什么?

jta*_*ria 5 plot r ggvis

我正在尝试使用新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" )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有了ggvis,我设法使用条形图在相同的布局中绘制相同的数据:

ggvis( t, x=~as.numeric( Var1 ), y=~Freq, fill=~Var2 ) 
  %>% group_by( Var2 )
  %>% layer_bars()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我不知道怎么说ggvis我想要的是区域,而不是酒吧.layer_areas不存在,都layer_pathslayer_ribbons给我错误的结果.

我玩过路径和缎带的道具,但我无法弄清楚如何分辨ggvis出相互叠加的区域.

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

kon*_*vas 4

我认为您需要指定 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述