[英]How to increase the space between grouped bars in ggplot2?
[在帖子末尾制作情節的數據和代碼]
使用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())
怎么樣? 1.按照建議使用geom_col
而不是geom_bar
。 2.指定合適的position_dodge(0.5)
和width=0.5
和3.刪除不必要的代碼。
ggplot(d, aes(x=Measure, y=mean, fill=Condition)) +
geom_col(colour="black",width=0.5,
position=position_dodge(0.5)) +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se),
position=position_dodge(0.5), width=.25)+
scale_x_discrete(limits = c("Interest", "Value","Effort","Difficulty","Competence","JOL")) +
scale_y_continuous(breaks=seq(0,7,by =1),limits = c(0,7), expand = c(0,0))+
scale_fill_manual(values=c("#ffcc00ff","#ffffff"), name = "Condition") +
labs(x="", y = "Rating (0-7)")+
theme_minimal() +
theme(axis.line = element_line(color="black"),
axis.ticks = element_line(color="black"),
panel.border = element_blank())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.