2013-03-01 7 views
8

私はかなり一般的なbarplotを取得しようとしていますが、Rのプロットに関するドキュメンテーションやggplotとそのすべてのレイヤーのドキュメントを読み込んでいますが、私はそれが欲しい。2つの変数が並んでいるbarplot

私のデータはかなりシンプルです。私が取得したい何

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列とbarplotです。 y軸では、RTregRTrndの列をプロットする値が必要です。これは私が正しく得ることのできない部分です。私が望むのは、x軸にティックマークごとに2つのバーがあるということです。そのブロック内のRTregの値を表す1つのバーと、そのブロック内のRTrndの値を表す1つのバー。このようなもの:

Valid XHTML

しかし、2つのバーの代わりに2つのバーが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の列を追加し、2番目のgeom_barRTrndの列を追加していると考えました。 positionというオプションはdodgeと同じですが、私は2つのバーを並べています。しかし、私が得ているプロットは:

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

どのように2つのバーを並べて、うまくいけば異なる色とそれぞれの伝説を持っているかについてのアイデアはありますか?私は本当にここでいくつかの指導を感謝します。

ありがとうございます。

答えて

20

データフレームをワイドからロングに変更する必要があり、条件ごとにバーを個別に設定する必要はありません。

データフレームの名前が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

+0

どうもありがとうございました。私はそれがとてもシンプルだったとは信じられない! – HernanLG

+4

はい、ggplotにようこそ...シンプルと不可能の違いを説明するのは難しいですね! –

+0

どのy値を取るべきかを指定するのはどこですか?例えば。私は2つ以上の列を持っています(RTreg、RTrnd) – barracuda317

関連する問題