Ggplot2 add text on top of boxes

I have data that I draw on ggplot2 as boxes that look like

 > head(varf) sID variable value 1 SP_SA036,SA040 CM0001 0.492537313 2 SP_SA036,SA040 CM0001 0.479564033 3 SP_SA036,SA040 CM0001 0.559139785 4 SP_SA036,SA040 CM0001 0.526806527 5 SP_SA036,SA040 CM0001 0.009049774 6 SP_SA036,SA040 CM0001 0.451612903 

The variable column contains 16 different identifiers (from CM0001 to CM0016)

I have a dataframe with annotation

 category annotation CM001 HG4450 CM002 HG3288 .. CM016 MM8998 

I would like to match these annotations on top of my mailboxes, but could not find a way to do this, what is the correct syntax for using geom_text with boxplot?

thanks

+3
r ggplot2 label boxplot
source share
2 answers

There are many ways to solve this problem, for example. here and here . Probably the easiest way is

 meds <- c(by(mtcars$mpg, mtcars$cyl, median)) ggplot(mtcars, aes(factor(cyl), mpg)) + geom_boxplot() + geom_text(data=data.frame(), aes(x=names(meds), y=meds, label=1:3), col='red', size=10) 

enter image description here

+4
source share
 varf <- read.table(text = "sID variable value SP_SA036,SA040 CM0001 0.492537313 SP_SA036,SA040 CM0001 0.479564033 SP_SA036,SA040 CM0001 0.559139785 SP_SA036,SA040 CM0002 0.526806527 SP_SA036,SA040 CM0002 0.009049774 SP_SA036,SA040 CM0002 0.451612903", header = T) anot <- read.table(text = "category annotation CM0001 HG4450 CM0002 HG3288", header = T) varf <- merge(varf, anot, by.x = "variable", by.y = "category", all.x = T) library(data.table) quants <- data.table(varf)[, list(quant = as.numeric(quantile(value)[3])), by = variable] ggplot(varf, aes(x = variable, y = value, fill = variable)) + geom_boxplot() + geom_text(data = quants, aes(x = variable, y = quant, label = variable), size = 10) 

enter image description here

+3
source share

All Articles