#r #ggplot2 #boxplot
#r #ggplot2 #boxplot
Вопрос:
я создал boxplot с помощью ggplot () и geom_boxplot () для отображения результатов двустороннего anova (2×2 между объектами, оба фактора категориальны), но у меня возникли проблемы с переупорядочением групп ячеек в соответствии с моим предпочтительным отображением aes ().
вот что я сделал до сих пор:
# libraries
library(tidyverse)
library(Rmisc)
# read data
DS = read.csv("....csv")
head(DS)
unique(DS$Binge)
unique(DS$Gender)
# stripchart w box plots
df$f1f2 <- interaction(df$f1, df$f2)
ggplot(DS, aes(x=f1, y=ACC_L, fill=f2))
geom_boxplot(position=position_dodge(0.7), width=.6, color='black',
outlier.alpha=FALSE)
geom_point(position=position_jitterdodge(.2),size=1)
stat_summary(fun="mean",geom = "point", size=5,
shape=18, position=position_dodge(0.7), color='lightcyan1')
theme_minimal()
# Change the axis labels
# ylab("FA")
xlab("Condition")
# Make axis labels and tick labels larger
# and change to black
theme( axis.title = element_text(size = 12, color = 'black'),
axis.text = element_text(size = 10, color = 'black'))
Я хочу изменить порядок групп ячеек так, чтобы LD-male, LD-female, BD-male, BD-female отображались в этом порядке.
Заранее спасибо,
Ответ №1:
если f1
представляет ваши группы ячеек, то вы можете изменить первую строку вашей ggplot
команды следующим образом:
ggplot(DS, aes(x=factor(f1,levels=c('LD-male','LD-female','BD-male','BD-female')), y=ACC_L, fill=f2))
или в любом другом порядке, который вы предпочитаете.
Ответ №2:
Большое спасибо за предложение. На самом деле я опубликовал неверный исходный код.
Несмотря на это, я обновил его этим, и это сработало!
# stripchart w box plots
#specify order of cell groups to be mapped in ggplot(); aes()
f1<-factor(DS$Binge,levels=c("LD","BD"))
f2<-factor(DS$Gender,levels=c("Male","Female"))
# ggplot () start
ggplot(DS, aes(x=f1, y=ACC_L, fill=f2))
geom_boxplot(position=position_dodge(0.7), width=.6, color='black',
outlier.alpha=FALSE)
geom_point(position=position_jitterdodge(.3),size=1)
stat_summary(fun="mean",geom = "point", size=5,
shape=18, position=position_dodge(0.7), color='lightcyan1',
show.legend=FALSE)
theme_minimal()
# Change the colors
scale_fill_manual( values = c('Female' = '#F8766D', 'Male' = '#00BFC4'))
# Change the axis labels
# ylab("FA")
xlab("Condition")