I would like to have in the legend the symbol of the mean together with the symbols of the boxes. So my legend should include "Exposure 1, Exposure 2, Exposure 3" but also the word mean and its symbol. How to do this using ggplot in R?
This is the code I'm using to produce the boxplot:
library(ggplot2)
mydata <- read.csv("~/mydata.csv")
bp<-ggplot(mydata,aes(x=Category,y=MeanValues,,fill=as.factor(Category))) + geom_boxplot()
bp+labs(x = NULL, y = "Result")+ theme_bw()+stat_summary(fun.y = mean, geom = "point",shape = 19, size = 3,show_guide = FALSE)+theme(legend.position="top")+ guides(fill=guide_legend(title=NULL))+ theme(axis.title.y = element_text(size=20, colour = rgb(0,0,0)),axis.text.y = element_text(size=12, colour = rgb(0,0,0)),axis.text.x = element_text(size=12, colour = rgb(0,0,0)))+scale_y_continuous(limits = c(0, 1800), breaks = 0:1800*200)
The data is available at https://my.cloudme.com/josechka/mydata
The above code produces a boxplot with the mean values inside the boxes. However the legend only contains the symbols of categories. What I need is to add to the legend that the back points inside the boxes represent the mean value of each category. Is it possible to do it?
You could add a
geom_point
with separateaes
defined as ''mean'', thereby creating a new legend. With defaults, this would plot all the individual data points, but settingalpha
to zero makes the points invisible in the graph, while usingoverride.aes
lets the point symbol appear in the legend.