2012-05-01 14 views
6

ile yığılmış alan arsa Ben bu formda kazınmış ve web'den işlenen bazı veriler:oluştur örtüşmeyen ggplot2

>head(dat) 
    count name   episode percent 
1 309 don 01-a-little-kiss 0.27081507 
2 220 megan 01-a-little-kiss 0.19281332 
3 158 joan 01-a-little-kiss 0.13847502 
4 113 peggy 01-a-little-kiss 0.09903593 
5 107 roger 01-a-little-kiss 0.09377739 
6 81 pete 01-a-little-kiss 0.07099036 

Oluşturduğum bir yığılmış alan grafiği çalışıyorum, burada benzer: Making a stacked area plot using ggplot2

ben yaptığınızda bir

require(RCurl) 
require(ggplot2) 
link <- getURL("http://dl.dropbox.com/u/25609375/so_data/final.txt") 
dat <- read.csv(textConnection(link), sep=' ', header=FALSE, 
      col.names=c('count', 'name', 'episode')) 

dat <- ddply(dat, .(episode), transform, percent = count/sum(count)) 

ggplot(dat, aes(episode, percent, group=name)) + 
    geom_area(aes(fill=name, colour=name), position='stack') 

enter image description here

Bu tuhaf tabloyu alıyorum.

Alanları birbirinden çapraz çizmemek ve tüm kanvasını, her episode faktörü için% 100'e eşit olarak doldurmak istiyorum.

cevap

8

Bu ilginçti. Tek bir satır (Lane Tea Leaves yer almadı ...?) Eksik, bu yüzden

dat2 <- rbind(dat,data.frame(count = 0,name = 'lane', 
        episode = '02-tea-leaves',percent = 0)) 

ggplot(arrange(dat2,name,episode), aes(x = episode,y = percent)) + 
    geom_area(aes(fill=name,group = name), position='stack') 

enter image description here

çalışması için görünür ediyoruz. Ama aynı zamanda doğru sırada olmalıydı ve neden tam olarak emin değilim.

+0

Çok teşekkürler. Hala benim neden işe yaramadığını merak ediyorum. – Idr

+0

@idris Anladığım eksik satır (bu değerin 0 olması anlamına geldiği anlamına gelse de, ggplot'un global olarak varsayılmasının tehlikeli olacağını düşünüyorum). Sipariş büyük olasılıkla kaputun altında geom_polygon kullanmasıdır. – joran

+2

@idris Ayrıca, 'geom_bar' kullanarak bunu daha da kolaylaştıracağım, daha tahmin edilebilir şekilde davranacağını ve aynı bilgileri göstereceğini düşündüğüm için eklemeliyim. – joran