17

suppose I'm plotting a dataframe in ggplot2 like:

ggplot(iris) + geom_point(aes(x=Sepal.Width, y=Sepal.Length, color=Species, size=Sepal.Length))

two related questions:

  1. how can I remove a variable altogether from the legend? For example, still size the points by Sepal.Length but remove Sepal.Length from the legend altogether?

  2. how can I remove just a certain value or set of values from the legend? For example, still color the points by Species as above, but in the legend only show the value for setosa and exclude versicolor, virginica?

thanks.

  • 4
    An answer to your first question would be `scale_size(guide = "none")`. As for the second, I don't know of an easy way to do that off the top of my head. – joran Mar 29 '13 at 14:32

1 Answers1

24
  1. As commented by joran, use scale_size(guide = "none").

  2. scale_color_discrete(breaks="setosa")

Roland
  • 127,288
  • 10
  • 191
  • 288
  • 1
    I dont understand why this answer works for this question. Could you explain how a user can know which `scale_`-function from `ggplot2` to use? And do you have a source that is useful in this regard? Your answer to use `scale_color_discrete` works in this specific case to remove legend variables, but in some others it does not. – Leo Aug 14 '17 at 14:33
  • 2
    @Leo After the first dash you can put anything that has data mapped to it (x, y, color, size in this example). After the second dash you can put continuous (for continuous variables) or discrete (for factor variables). – Roland Aug 14 '17 at 15:20