最近我学会了使用stat_summary创建带有错误栏的条形图,如下所示。
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)
但我想做的却有所不同。 对于具有相同级别的组类别,有两个以上的变量。
(例如, 组:&#34;选项A&#34;,&#34;选项B&#34;,&#34;选项C&#34;。
每组的水平: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
我可以用R制作这样的情节吗? 任何帮助都会很棒。谢谢:))
答案 0 :(得分:0)
我认为你必须在绘图之前准备好你的数据。具体来说,由于OptionA
,OptionB
和OptionC
具有相同的值,您可以创建一个变量option
,将它们全部合并,然后创建变量value
包含所有可能的值(0或1)。翻译成代码可能是这样的:
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
然后,您可以创建bar_plot
展示mpg
和option
并填写value
#plot
a = ggplot(test_long, aes(option, mpg, fill = value)) +
geom_bar(position = "dodge", stat="identity")
a
我希望它有所帮助。