I\'m trying to change the order in which legend items appear. I\'ve spent about an hour at this, with no results.
Here\'s an example setup:
library(
ggplot
will usually order your factor values according to the levels()
of the factor. You are best of making sure that is the order you want otherwise you will be fighting with a lot of function in R, but you can manually change this by manipulating the color scale:
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a)) +
scale_color_discrete(breaks=c("1","3","10"))
The order of legend labels can be manipulated by reordering and changing values in column a
to the factor: d$a <- factor(d$a, levels = d$a)
So your code would look like this
library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))
d$a <- factor(d$a, levels = d$a)
ggplot(d, aes(x = x, y = y)) +
geom_point(size=7, aes(color = a))
And the ouptut
Note, than now in legend: 1 is red, 3 is green and 10 is blue color