[在帖子末尾生成绘图的数据和代码]
使用 ggplot,我绘制了一个带有误差线的条形图,条形图按两个因素分组(一个在 X 轴上,一个带有填充)。我想增加 xaxis 上组之间的绿色距离,以使绘图更易于阅读:
我在这里找到了最接近 stackoverflow 解决方案的解决方案(有人在未回答的评论中问了我的问题),这里,这里,但我没有设法在没有累积错误栏的情况下应用这些。有人可以指出我要调整的正确参数吗?
数据:
structure(list(Condition = c("Difficult", "Easy", "Difficult",
"Easy", "Difficult", "Easy", "Difficult", "Easy", "Easy", "Difficult",
"Easy", "Difficult"), Measure = c("Competence", "Competence",
"Value", "Value", "Interest", "Interest", "JOL", "JOL", "Difficulty",
"Difficulty", "Effort", "Effort"), mean = c(5.5, 4.72, 4.04,
5.39, 3.51, 3.77, 4.34, 4.61, 3.51, 1.51, 3.44, 1.73), sd = c(1.26,
1.62, 1.94, 1.34, 1.46, 1.46, 1.73, 1.68, 1.5, 0.86, 1.53, 1.1
), se = c(0.14, 0.18, 0.22, 0.15, 0.16, 0.16, 0.19, 0.19, 0.17,
0.1, 0.17, 0.12), s.size = c(80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80)), .Names = c("Condition", "Measure", "mean",
"sd", "se", "s.size"), row.names = c(NA, -12L), class = "data.frame")
这是:
Condition Measure mean sd se s.size
1 Difficult Competence 5.50 1.26 0.14 80
2 Easy Competence 4.72 1.62 0.18 80
3 Difficult Value 4.04 1.94 0.22 80
4 Easy Value 5.39 1.34 0.15 80
5 Difficult Interest 3.51 1.46 0.16 80
6 Easy Interest 3.77 1.46 0.16 80
7 Difficult JOL 4.34 1.73 0.19 80
8 Easy JOL 4.61 1.68 0.19 80
9 Easy Difficulty 3.51 1.50 0.17 80
10 Difficult Difficulty 1.51 0.86 0.10 80
11 Easy Effort 3.44 1.53 0.17 80
12 Difficult Effort 1.73 1.10 0.12 80
我用来制作情节的代码(请原谅评论,我正在学习如何使用 ggplot 并发现做笔记很有帮助)
library(ggplot2)
ggplot(DF, aes(x=Measure, y=mean,fill=Condition)) +
geom_bar(stat="identity",
colour="black", # Black outline for all
position=position_dodge())+# Put bars side-by-side instead of stacked
geom_errorbar(aes(ymin=mean-se, ymax=mean+se),
position=position_dodge(.9),
width=.25)+
#order the groups on the xaxis
scale_x_discrete(limits = c("Interest", "Value","Effort","Difficulty","Competence","JOL"))+
coord_cartesian(ylim=c(0,7)) +
#change color of bars
scale_fill_manual(values=c("#ffcc00ff","#ffffff"), name = "Condition") +
#change ticks on yaxis
scale_y_continuous(breaks=seq(0,7,by =1)) +
geom_hline(yintercept=0) +
geom_vline(xintercept=0)+
theme_bw()+
labs(x="", y = "Rating (0-7)")+
theme(axis.line.y = element_line(color="black"),
axis.title.y = element_text(margin = margin(r=8)),
axis.title.x = element_text(margin = margin(r=25)),
panel.background = element_rect(fill = NA),
panel.grid.major = element_blank(),
panel.border = element_blank())