首页 文章

Barplot与2个变量并排

提问于
浏览
8

我试图获得一个相当常见的条形图,但尽管阅读了大量有关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

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

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

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

Valid XHTML http://s12.postimage.org/k0przrmtp/failed_geom_bar.png .

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

提前致谢 .

1 回答

  • 21

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

    假设数据框名为 df .

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

    enter image description here

相关问题