2015-07-07 6 views
5

Wie bekomme ich die Balken in meinem Barplot auf die gleiche Höhe?Die Balken im Barplot auf die gleiche Höhe bringen

> head(data.m) 
    Classes variable  value 
1 rRNA KO1.DOC 4.890821e+04 
2 rRNA KO1.DOC 3.068479e+03 
3 Other KO1.DOC 7.618553e+01 
4 Other KO1.DOC 4.043281e-01 
5 Other KO1.DOC 0.000000e+00 
6 Other KO1.DOC 0.000000e+00 

ggplot(data.m, aes(variable, fill=Classes, order = -as.numeric(Classes))) + 
    geom_bar(aes(y=value), position="stack", stat="identity") + 
    theme_bw(base_size=8) 

enter image description here

Antwort

1
data.m <- melt(data=data, id.vars="Classes") 
head(data.m) 
dt <- data.table(data.m) 
data.m <- dt[, list(count = sum(value)), by=list(Classes,variable)] 
data.m <- data.m[, list(Classes=Classes, prop = count/sum(count)), by=variable] 



ggplot(data.m, aes(variable,fill=Classes, order = -as.numeric(Classes))) + 
geom_bar(aes(y=prop), position="stack", stat="identity") + 
theme_bw(base_size=8) 
2

Die Antwort ist position="fill" für geom_bar zu verwenden:

# regular barplot 
ggplot(mtcars, aes(x=factor(cyl), fill=factor(vs))) + 
    geom_bar() 
# "filled" 
ggplot(mtcars, aes(x=factor(cyl), fill=factor(vs))) + 
    geom_bar(position="fill") 
Verwandte Themen