My own legend on qplot

ggplot2, legend, r

Solution

Is it something like this you're after? First, draw the legend, then remove the coloured key of the legend. `fill = type` draws the legend. `scale_fill_manual` ensures the bars have the same colour, and inserts the desired labels in the legend. `guides` removes the coloured keys, or rather it colours the keys white, leaving just the legend labels. Probably, `fill = NA` in the call to `guides` would work too. EDIT: updated code for ggplot2 version 2

library(ggplot2)

temp = read.table(text = "
type    name    value
A john  47.6
B john  55.6
C john  57.7
A amy   13.15
B amy   23.1
C amy   24.9
A lily  14.0
B lily  18.1
C lily  21.9
A sam   38.8
B sam   44.8
C sam   45.9
A frank 63.6
B frank 64.4
C frank 64.7
A xia   52.8
B xia   54.1
C xia   56.4
A yan   53.8
B yan   56.1
C yan   58.6", header = TRUE, sep = "")


qplot(type, value, geom="col", fill=type, data=temp, group=name, facets= .~name) + 
   scale_fill_manual(values = rep("salmon",3), labels = c("A - atype", "B - btype", "C - ctype")) +
   guides(fill = guide_legend(override.aes = list(fill = "white"))) +
   theme_bw() + 
   theme(axis.title.y=element_text(size=16,angle=90),
         axis.title.x=element_text(size=16,angle=0), 
         axis.text.x=element_text(size=10), 
         axis.text.y=element_text(size=14), 
         strip.background = element_rect(colour = 'steelblue', fill = 'white', size = 2),
         legend.title=element_blank(), 
         legend.position="top", 
         legend.key = element_rect(colour = NA))

Problem

Could someone help me to add `A-atype B-btype C-ctype` ONLY as a legend to the below qplot graph. My legend should be on the top of the graph and also it should be horizontal. Please also see below for the data and the qplot code I am using for generating the graph. Data: ``` type name value A john 47.6 B john 55.6 C john 57.7 A amy 13.15 B amy 23.1 C amy 24.9 A lily 14.0 B lily 18.1 C lily 21.9 A sam 38.8 B sam 44.8 C sam 45.9 A frank 63.6 B frank 64.4 C frank 64.7 A xia 52.8 B xia 54.1 C xia 56.4 A yan 53.8 B yan 56.1 C yan 58.6 ``` Code: ``` qplot(type, value, geom="bar", fill=c(""),data=temp, group=name, facets= .~name,stat="identity") + theme_bw() + opts(axis.title.y=theme_text(size=16,angle=90),axis.title.x=theme_text(size=16,angle=0)) + opts(axis.text.x=theme_text(size=10)) + opts(axis.text.y=theme_text(size=14)) + opts(strip.background = theme_rect(colour = 'steelblue', fill = 'white', size = 2)) + opts(legend.title=theme_blank()) + opts(legend.position="top") ```

Original source