让条形图中的条形图具有相同的高度

时间:2015-07-07 08:31:12

标签: r ggplot2

如何让我的条形图中的条形图具有相同的高度?

> 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

2 个答案:

答案 0 :(得分:3)

答案是geom_bar使用position="fill"

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

答案 1 :(得分: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)