2011-07-27 18 views
8

私はthisページに記載されている例を調べていますが、何らかの理由でこれを行う正しい方法を見つけることができません。スタックバーをggplotでプロットするにはどうすればよいですか?

私はこのようないくつかのデータを持っている:

enter image description here

:最後の行は私に次のプロットを与える

a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2) 
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D") 
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5) 
dat = data.frame(Group=a, Member=b, Percentage=c) 
ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", position="dodge", fill="white", colour="black") 

 Group Member Percentage 
[1,] "1" "A" "60"  
[2,] "1" "A" "20"  
[3,] "1" "A" "20"  
[4,] "1" "B" "80"  
[5,] "1" "B" "5"  
[6,] "1" "B" "5"  
[7,] "1" "B" "5"  
[8,] "2" "C" "50"  
[9,] "2" "C" "50"  
[10,] "2" "D" "25"  
[11,] "2" "D" "25"  
[12,] "2" "D" "25"  
[13,] "2" "D" "20"  
[14,] "2" "D" "5" 

、次のコマンドを使用して作成することができますが

私が本当に探しているのは、それぞれの1つのグループの棒グラフを1つの棒グラフに変換し、同じ棒グラフ(各グループの各メンバーを1つの棒グラフでプロットし、各棒グラフをそのパーセンテージを色としてプロット)の割合としてパーセンテージを表します。だから私は、次の使用:

ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", colour="white") 

をし、この取得した:

enter image description here

をしかし、今、私は、適切な色を得ることができません。私は以下のものとまったく同じものを欲しがっていますが、これを行う方法を理解できません。これを行う方法に関する提案はありますか?

enter image description here

+1

http://had.co.nz/ggplot2/position_stack.html –

+0

@ GSK3を生成

ggplot(dat, aes(x=Member, y=Percentage, fill = factor(Percentage))) + geom_bar(stat = "identity") 

をお試しください:私が使用していなかったもののほんの一部の実験の後にそれを行うために管理'position =" stack "'私はその違いが何であるのだろうか。何が良いのかは、見つかったすべての新しいパーセンテージに対して1つを使用する代わりに、限られた色を使うことをggplotに制限することです。 – Legend

答えて

9

OK]をクリックして、最終的にそれを得ました!ハレイ!誰か他の人が興味を持っている場合は、ここに完全なコードは次のとおりです。

a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2) 
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D") 
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5) 
dat = data.frame(Group=a, Member=b, Percentage=c) 
ggplot(dat, aes(x=Member, y=Percentage, fill=Percentage)) + geom_bar(stat="identity", colour="white") 

enter image description here

と@joranによって提案されたもので(どうもありがとうございました!)コメントで:

ggplot(dat, aes(x=Member, y=Percentage, fill=Percentage)) + geom_bar(stat="identity", colour="white") 

enter image description here

+2

よくできました!私はちょうどこれを投稿しようとしていました。連続したものではなく、パーセンテージ上の個別のカラースケールが必要な場合は、 'fill = factor(Percentage)'を使用してください。 – joran

+0

+1素晴らしいよ!私はこのバージョンを探していた!私はよりよい配色で取り除くことができました。これについてもっと調べる必要があります。 – Legend

+0

少し関係のない質問として、偶然にも何か他のものへの右に凡例のその '因子(パーセンテージ)'テキストをどのように変更するか知っていますか? – Legend

4

もうすぐです。

enter image description here

+0

+1ありがとうございます!ちょうど@ジョランのコメントで私の答えを更新しました。私はもう少し微調整して、これらのグラフはすごく見えると思います。 – Legend

関連する問題