I have a question concerning the legend in ggplot2.
Say I have a hypothetical dataset about mean carrot length for two different colours at two farms:
carrots<-NULL
carrots$Farm<-rep(c("X","Y"),2)
carrots$Type<-rep(c("Orange","Purple"),each=2)
carrots$MeanLength<-c(10,6,4,2)
carrots<-data.frame(carrots)
I make a simple bar plot:
require(ggplot2)
p<-ggplot(carrots,aes(y=MeanLength,x=Farm,fill=Type)) +
geom_bar(position="dodge") +
opts(legend.position="top")
p
My question is: is there a way to remove the title ('Type') from the legend?
Thanks!
You can modify the legend title by passing it as the first parameter to a scale. For example:
There is also a shortcut for this, i.e.
labs(fill="")
Since your legend is at the top of the chart, you may also wish to modify the legend orientation. You can do this using
opts(legend.direction="horizontal")
.The only way worked for me was using
legend.title = theme_blank()
and I think it is the most convenient variant in comparison tolabs(fill="")
andscale_fill_discrete("")
, which also could be useful in some cases.P.S. There are more useful options in documentation.
You've got two good options already, so here's another using
scale_fill_manual()
. Note this also lets you specify the colors of the bars easily:If you are using the up-to-date (As of January 2015) version of ggplot2 (version 1.0), then the following should work:
I found that the best option is to use
+ theme(legend.title = element_blank())
as user "gkcn" noted.For me (on 03/26/15) using the previously suggested
labs(fill="")
andscale_fill_discrete("")
remove one title, only to add in another legend, which is not useful.You can use
labs
: