Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change color median line ggplot geom_boxplot()

Tags:

r

ggplot2

I would like to change the color of the median line in geom_boxplot(). I have looked and can't find a way to do it. I have posted the R code here that I am using but I just really need a reference to how to change the color.

ggplot(invitro2) +
  geom_boxplot(aes(x = reorder(CANCER_TYPE,tmedian), y = GeoMedian_IC50)) +
  xlab("") +  
  geom_point(aes(x = reorder(CANCER_TYPE,tmedian), y = GeoMedian_IC50)) +
  theme_bw() +
  scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
                labels = trans_format("log10", math_format(10^.x))) +
  annotation_logticks(sides="l")   +  
  theme(axis.text.x=element_text(angle=45,size=10,hjust=1),
        panel.grid.major = element_blank()) 
like image 779
user2945234 Avatar asked May 02 '15 12:05

user2945234


1 Answers

You can use the details of the plot, to derive the coordinates of where the median line is, and then add colour to it using geom_segment.

library(ggplot2)

p <- ggplot(mtcars, aes(factor(am), mpg)) + geom_boxplot()

dat <- ggplot_build(p)$data[[1]]

p + geom_segment(data=dat, aes(x=xmin, xend=xmax, 
                               y=middle, yend=middle), colour="red", size=2)

Also had to increase the size of the line so that it covers the original black median line

enter image description here

like image 192
user20650 Avatar answered Sep 18 '22 09:09

user20650