Another ggplot legend question!
I have a dataset of the form
test <- data.frame(
cond = factor(rep(c("A", "B"), each=200)),
value = c(rnorm(200), rnorm(200, mean=0.8))
)
So two groups and some values and I want to plot the density. I also want to add a line indicating the mean for each group to the plot so I:
test.cdf <- ddply(test, .(cond), summarise, value.mean=mean(value))
Then in ggplot call:
ggplot(test, aes(value, fill=cond)) +
geom_density(alpha=0.5) +
labs(x='Energy', y='Density', fill='Group') +
opts(
panel.background=theme_blank(),
panel.grid.major=theme_blank(),
panel.grid.minor=theme_blank(),
panel.border=theme_blank(),
axis.line=theme_segment()
) +
geom_vline(data=test.cdf, aes(xintercept=value.mean, colour=cond),
linetype='dashed', size=1)
If you run the above code, you get a legend indicating each group, but also one for the mean indicator vline. My question is how can I get rid of the legend for the geom_vline()?
Depending on the version of ggplot2 you are using you get this problem. Using ggplot2 vs 0.9.0 on R2.14.1 I get this graph:
which does not include the legend for the vline. In this version of ggplot2 you can tweak the occurence of the legend using
show_guide:which reproduces your problem. Default,
show_guide = FALSE. In older versions, you can addlegend = FALSEtogeom_vlinein order to omit the legend. Addinglegend = FALSEstill works still works in the current version, but it throws a warning:I would recommend upgrading
ggplot2.