Barplot与2个变量并排

Her*_*nLG 10 plot r ggplot2

我试图获得一个相当常见的条形图,但尽管阅读了大量有关R中绘图的文档,以及ggplot及其所有图层的文档,但我无法按照我想要的方式获取此图.

我的数据相当简单.

aov.data
   Block    RTreg    RTrnd
1 Block1   0.0000 862.0707 
2 Block2 667.2081 770.4315 
3 Block3 645.4730 696.0200
4 Block4 674.5200 659.4765
5 Block5 651.4295 633.7333
Run Code Online (Sandbox Code Playgroud)

我想得到的是一个条形图,Block其中x轴的列作为分类变量.在y轴上,我想要绘制值RTregRTrnd列的值.这是我无法做到的部分.我想要的是在x轴上每个刻度标记有两个条.一个条表示该RTreg块中的值,一个条表示该RTrnd块中的值.像这样的东西:

有效的XHTML.

但是有5套两个酒吧而不是两个.

到目前为止,我使用了以下代码:

ggplot(aov.data,aes(x=Block)) + 
          geom_bar(aes(y=RTreg),stat="identity",position="dodge",col="blue") +
          geom_bar(position="dodge") +   
          geom_bar(aes(y=RTrnd),stat="identity",position="dodge",col="red")
Run Code Online (Sandbox Code Playgroud)

我以为我要做的是先用包含块的分类x轴创建基础图.然后,geom_bar我以为我正在添加第一RTreg列,第二列,geom_bar我正在添加RTrnd列.选项position等于dodge我,虽然我将并排获得两个酒吧.但是,我得到的情节是:

有效的XHTML http://s12.postimage.org/k0przrmtp/failed_geom_bar.png.

关于如何并排获得两个酒吧的想法,并希望有不同的颜色和每个的传奇?我真的很感激这里的一些指导.

提前致谢.

Did*_*rts 24

您必须从宽到长重塑数据框,然后您不需要分别为每个条件设置条形.

假设数据框已命名df.

library(reshape2)
df.long<-melt(df)
ggplot(df.long,aes(Block,value,fill=variable))+
     geom_bar(stat="identity",position="dodge")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 是的,欢迎来到ggplot ......很难区分简单和不可能之间的区别! (6认同)