I'm trying to plot some overlapping density plots in ggplot2. I'm running into a problem where I cannot remove the diagonal slash from the legend. I have tried using scale_fill_manual() and legend.key as well as the hack from R Cookbook, but I cant seem to get it right.
data(iris) iris=iris cols=brewer.pal(3,"Set1") ggplot(iris) + geom_density(position="identity",aes(x=iris$Sepal.Length,fill=cols[1]), colour="black",alpha=.5) + geom_density(position="identity",aes(x=iris$Sepal.Width,fill=cols[2]), colour="black",alpha=.5)+ theme_bw() + scale_fill_identity(guide="legend",labels=c("Sepal Width","Sepal Length"))+ xlab("X axis") + theme(panel.background=element_blank(), legend.title=element_blank(), legend.key = element_rect(), legend.background = element_blank(), legend.justification=c(1,0), legend.position=c(.75,.5), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.border = element_blank(), panel.background = element_blank())
What can I do to solve this?
Example 1: Remove All Legends in ggplot2 We simply had to specify legend. position = “none” within the theme options to get rid of both legends.
geom_density.Rd. Computes and draws kernel density estimate, which is a smoothed version of the histogram. This is a useful alternative to the histogram for continuous data that comes from an underlying smooth distribution.
Try this:
+ guides(fill = guide_legend(override.aes = list(colour = NULL)))
although that removes the black outline as well...which can be added back in by change the theme
to:
legend.key = element_rect(colour = "black")
I completely forgot to add this important note: do not specify aesthetics via x=iris$Sepal.Length
using the $
operator! That is not the intended way to use aes()
and it will lead to errors and unexpected problems down the road.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With