I'm trying to make one graph that has 4 boxplots. Two for Word Test: Us and Non-US, and Two for Easy Test: Us and Non-Us. I'm trying to merge them together, so they look something like this:
What I want the graph to look like
I made two ggplots for each test, but I can't figure out a way to merge them together. Here is the tibble that I used. Please note that Q65 is for the Easy test and Q66 is for the Word test.
# A tibble: 86 x 5
Q65 Q66 nationality race_ethnicity type
<dbl> <dbl> <chr> <chr> <dbl>
1 55.1 51.2 Mexican Mexican 2
2 62.7 38.7 American Asian 1
3 53.2 34.7 USA Hispanic 1
4 193. 84.6 chinese asian 2
5 57.0 40.9 Taiwan Asian 2
6 103. 58.5 American caucasian 1
7 49.2 35.5 White White 2
8 213. 2135. Chinese Asian 2
9 85.6 52.1 Chinese Chinese 2
10 168. 113. China Asian 2
# ... with 76 more rows
Here is the code for the ggplots:
EasyTestPlot <-
ggplot(Qtibble, aes(as.factor(Qtibble$type), Q65, color = factor(type))) + geom_boxplot(
alpha = 0.5, outlier.colour = "black", outlier.fill = "black", outlier.shape = 21, outlier.size =
2 ) + coord_cartesian(ylim = c(0, 250)) + labs(x = "Easy Test", y = "Number of Seconds to
Compare") + theme_light() + theme(axis.text.x = element_text(face = "bold", size = 10, angle =0),
axis.text.y = element_text(face = "bold", size = 10, angle = 0)) + scale_x_discrete(labels = c("1" = "US", "2" = "Non-US")) + stat_summary(fun = mean, color = "darkred", position = position_dodge(0.75), geom = "point", shape = 18, size = 3, show.legend = FALSE) + scale_color_manual(values=c("Dark green", "red")) + labs(colour="Nationality",linetype="Nationality",shape="Nationality") + theme(legend.text = element_text(color = "white"),legend.title = element_text(color = "white"), legend.key = element_rect(fill = "white"))
+ scale_color_discrete(guide =
guide_legend(override.aes = list(color = "white")))
And
WordTestPlot <-
ggplot(Qtibble, aes(as.factor(Qtibble$type), Q66, color = factor(type))) + geom_boxplot(
alpha = 0.5, outlier.colour = "black", outlier.fill = "black", outlier.shape = 21, outlier.size =
2 ) + coord_cartesian(ylim = c(0, 250)) + labs(x = "Word Test", y = "Number of Seconds to
Compare") + theme_light() + theme(axis.text.x = element_text(face = "bold", size = 10, angle =0),
axis.text.y = element_text(face = "bold", size = 10, angle = 0)) + scale_x_discrete(labels = c("1" = "US", "2" = "Non-US")) + stat_summary(fun = mean, color = "darkred", position = position_dodge(0.75), geom = "point", shape = 18, size = 3, show.legend = FALSE) + scale_color_manual(values=c("Dark green", "red")) + labs(colour="Nationality",linetype="Nationality",shape="Nationality") + theme(legend.text = element_text(color = "white"),legend.title = element_text(color = "white"), legend.key = element_rect(fill = "white"))
+ scale_color_discrete(guide =
guide_legend(override.aes = list(color = "white")))
Also, I am using grid.arrange, but instead of being side by side I want it to be on one graph:
grid.arrange(WordTestPlot ,EasyTestPlot, nrow = 1, ncol =2)
What the graphs currently look like
What can I do to make the boxplots look like the first image?
