我试图获得一个相当常见的条形图,但尽管阅读了大量有关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轴上,我想要绘制值RTreg和RTrnd列的值.这是我无法做到的部分.我想要的是在x轴上每个刻度标记有两个条.一个条表示该RTreg块中的值,一个条表示该RTrnd块中的值.像这样的东西:
.
但是有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)
