在ggplot2中叠加条形图

时间:2012-10-23 16:40:01

标签: r ggplot2

我正在尝试在ggplot2

中叠加条形图

我当前的代码生成条形图,但它们堆叠在一起。我不想要这个,我希望它们重叠,这样我就可以看到每个条形高度的差异。

代码:

library(ggplot2)
library(reshape)


x = c("Band 1", "Band 2", "Band 3")
y1 = c("1","2","3")
y2 = c("2","3","4")

to_plot <- data.frame(x=x,y1=y1,y2=y2)
melted<-melt(to_plot, id="x")

print(ggplot(melted,aes(x=x,y=value,fill=variable)) + geom_bar(stat="identity", alpha=.3))

堆叠输出:

enter image description here

1 个答案:

答案 0 :(得分:18)

尝试将position = "identity"添加到geom_bar来电。您会在?geom_bar中注明默认排名为stack,这是您在此处看到的行为。

当我这样做时,我得到:

print(ggplot(melted,aes(x=x,y=value,fill=variable)) + 
        geom_bar(stat="identity",position = "identity", alpha=.3))

enter image description here

并且,如下所述,可能position = "dodge"可能是一个更好的选择:

enter image description here