2016-07-05 25 views
2

最近、私は以下のようにstat_summaryを使ってエラーバーを使って棒グラフを作成する方法を学びました。ggplot2棒グラフと同じレベルのいくつかのカテゴリ変数

library(ggplot2) 
posn.d <- position_dodge(1.82) 
ggplot(mtcars, aes(x=cyl, y=wt, col = factor(am), fill = factor(am)))+ 
     stat_summary(fun.y = mean, geom = "bar", position = posn.d)+ 
     stat_summary(fun.data = mean_se, fun.args = list(mult = 1), geom = "errorbar", width = 0.1, position =posn.d) 

enter image description here

しかし、私がしたいことは多少異なります。 同じレベルのグループカテゴリには3つ以上の変数があります。

(例えば、 グループ: "オプションA"、 "オプションB"、 "オプションC"

各グループのレベル:0、1)

例データ:

mtcars$OptionA=sample(0:1, 32, replace = T) 
mtcars$OptionB=sample(0:1, 32, replace = T) 
mtcars$OptionC=sample(0:1, 32, replace = T) 
mtcars 

私はこのようなプロットをしたいのですが: enter image description here

私はRで、このようなプロットを作ることはできますか? 助けがあれば助かります。ありがとう:)

答えて

0

プロットする前にデータを準備する必要があると思います。具体的には、OptionA,OptionBおよびOptionCは同じ値を持つため、すべてをマージする変数optionを作成し、可能なすべての値(0または1)の変数valueを作成することができます。 enter image description here

私はそれを願っています:そして、あなたはあなたのbar_plotが出力されmpgoptionを提示し、value

#plot 
a = ggplot(test_long, aes(option, mpg, fill = value)) + 
    geom_bar(position = "dodge", stat="identity") 
a 

の充填を作成することができます

library(dplyr) 
library(tidyr) 

test = mtcars %>% select(mpg, OptionA:OptionC) 

#present your test in long format 
test_long <- gather(test, option, value, OptionA:OptionC) 

> head(test_long) 
    mpg option value 
1 21.0 OptionA  0 
2 21.0 OptionA  0 
3 22.8 OptionA  0 
4 21.4 OptionA  0 
5 18.7 OptionA  0 
6 18.1 OptionA  1 

:コードに変換、それはこのようなものかもしれません助けてください。

+1

ありがとうございます。それは多くの助けになりました! :) – Amy

+0

@Amy、あなたは大歓迎です。上記のコードに 'stat_summary'を簡単に追加できると思います。 – Edu

関連する問題