Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

scale_fill_discrete and scale_fill_manual - legend options confusion

I have a problem with applying two different changes on my ggplot2 object. I have a barplot with 3 groups on it. I want to:

  1. set color for each group
  2. reorder the order of legend labels

I have found the following solutions to the above problems:

  1. + scale_fill_manual(values = c("red", "green", "blue"))
  2. + scale_fill_discrete(guide = guide_legend(reverse=TRUE))

The problem is the second application (+ scale_fill_discrete(...)) is overriding the first one:

Scale for 'fill' is already present. Adding another scale for 'fill', which will replace the existing scale.

(separately both of them work fine). How to deal with it?

like image 781
Marta Karas Avatar asked Aug 07 '14 07:08

Marta Karas


1 Answers

You do not need to make it double, this should work:

scale_fill_manual(values = c("red", "green", "blue"), name = "My name", 
                  guide = guide_legend(reverse = TRUE))
like image 120
BBrill Avatar answered Nov 10 '22 22:11

BBrill