2012-05-01 10 views
6

ho alcuni dati raschiate ed elaborati dal web in questa forma:Create non sovrapposti trama area in pila con 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 

sto cercando di grafico creato un area in pila, simile a quello qui: Making a stacked area plot using ggplot2

Quando faccio un

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

Prendo questo grafico bizzarro.

Desidero che le aree non si incrocino a vicenda e riempire l'intera area di disegno come percentuale totale per ogni fattore episode uguale al 100%.

risposta

8

È stato interessante. Ti stai perdendo una sola riga (Lane non è comparso in foglie di tè ...?), In modo

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

sembra funzionare. Ma doveva anche essere nell'ordine giusto, e non sono del tutto sicuro del perché.

+0

Grazie mille. Sono ancora curioso di sapere perché il mio non ha funzionato. – Idr

+0

@idris La riga mancante capisco (anche se può avere senso che tu "significhi" che quel valore sia 0, penso che sarebbe pericoloso avere ggplot assumerlo globalmente). L'ordinamento è probabilmente dovuto al fatto che usa geom_polygon sotto il cofano. – joran

+2

@idris Inoltre, dovrei aggiungere che l'uso di 'geom_bar' potrebbe essere più semplice, poiché mi aspetto che si comporti in modo più prevedibile e mostrerebbe le stesse informazioni. – joran

Problemi correlati