ggplot - 重新排序条

ggplot - Reorder Bars

尊敬的编码社区成员,

如我的查询标题所示,我想更改下图中条形的顺序

(即两个“即时”柱都出现在“延迟”柱之前) :

ggplot(propho.effect.frame, aes(session, fit, color=modality, fill=modality)) + geom_bar(stat='identity',position="dodge") + geom_errorbar(aes(ymin=fit-se, ymax=fit+se), width=0.4, position=position_dodge(width=0.9)) + theme_bw(base_size=12) + labs(y="score", title="Phonological Production Task")

## INITIAL DATAFRAME ##############################################

PID   session group list modality    stim score
1  AL201 immediate     A    Y     NOLM FAHRRAD     0
2  AL201 immediate     A    Y     NOLM    BUCH     1
3  AL201 immediate     A    X      OLM   SCHAF     0
4  AL201 immediate     A    X      OLM   STUHL     0
5  AL201 immediate     A    Y     NOLM    AFFE     0
6  AL201 immediate     A    Y     NOLM   KERZE     0
7  AL201 immediate     A    X      OLM  KIRCHE     0
8  AL201 immediate     A    X      OLM   NAGEL     0
9  AL201 immediate     A    X      OLM  PFANNE     0
10 AL201 immediate     A    Y     NOLM   KLEID     0
11 AL201 immediate     A    X      OLM    HAHN     0
12 AL201 immediate     A    X      OLM    KAMM     0
13 AL201 immediate     A    Y     NOLM    PILZ     1
14 AL201 immediate     A    Y     NOLM   BIRNE     0
15 AL201 immediate     A    X      OLM   VOGEL     0
16 AL201 immediate     A    X      OLM  SCHALE     0
17 AL201 immediate     A    X      OLM   PFEIL     0
18 AL201 immediate     A    Y     NOLM TROMMEL     0
19 AL201 immediate     A    X      OLM  LEITER     0
20 AL201 immediate     A    Y     NOLM    KORB     0
> 

## propho.effect.frame (cf. ggplot code) ##########################

modality   session       fit         se     lower     upper
1     NOLM   delayed 0.3525117 0.08066153 0.2140540 0.5211437
2      OLM   delayed 0.6472552 0.07339121 0.4942436 0.7750446
3     NOLM immediate 0.3271910 0.07654911 0.1974255 0.4901584
4      OLM immediate 0.5659339 0.07947359 0.4088293 0.7108196

在尝试应用论坛上类似查询的建议但没有成功后(例如propho$session <- factor(propho$session, levels = c("immediate","delayed")),我来找你希望找到答案。

提前感谢大家与我分享任何见解。

您可以使用 factorordered = T 来更改 ggplot 解释顺序的方式。您的原始绘图代码可以保持不变:

propho.effect.frame$session <- factor(propho.effect.frame$session, c('immediate', 'delayed'), ordered = T)

ggplot(propho.effect.frame, aes(session, fit, color=modality, fill=modality)) + 
  geom_bar(stat='identity',position="dodge") + 
  geom_errorbar(aes(ymin=fit-se, ymax=fit+se), width=0.4, position=position_dodge(width=0.9)) + 
  theme_bw(base_size=12) + labs(y="score", title="Phonological Production Task")