2014-10-27 12 views
5

Yeni ggvis paketini kullanarak yığılmış alan çiziminde çizim yapmaya çalışıyorum.Ggvis'te yığılmış alan çizimlerini çizmenin doğru yolu nedir?

ggplot, ben böyle yapmak başarmış:

ggvis(t, x=~as.numeric(Var1), y=~Freq, fill=~Var2) 
    %>% group_by(Var2) 
    %>% layer_bars() 
:

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") 

enter image description here

ggvis ile, barları kullanarak aynı düzende aynı verileri çizmek başarmış

enter image description here

Ancak, barlar değil, alanların olmasını istediğim ggvis'a nasıl söyleyeceğimi bilmiyorum. layer_areas mevcut değil ve hem layer_paths hem de layer_ribbons yanlış sonuçlar veriyor.

Yollar ve şeritler için sahne ile oynamıştım, ancak birbirlerinin üzerine yığılmış alanları çizmek için ggvis'a nasıl söyleyeceğimi anlayamıyorum.

ggvis kullanarak yığılmış alan çizimlerini çizmenin doğru yolu nedir?

cevap

2

Bunun için hem y'yi (şeridin alt sınırı) hem de y2'yi (şeridin üst sınırını) belirtmeniz gerektiğini düşünüyorum. Yani ben aslında istifleme için otomatik dönüştürülmüş verileri için bir yol arıyordu

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) 

enter image description here

+0

gibi bir şey denemek, ama elle dönüşümü yapıyor çok çalıştığını sanırım. Kullanılacak tam sözdizimini gösterdiğiniz için teşekkür ederiz. – gorgonzola