Удалить дополнительные легенды в ggplot2

У меня есть простой фрейм данных, который я пытаюсь сделать с помощью ggplot2 . Предположим, что мои данные выглядят так:

 df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20), group=c(rep("a",10),rep("b",10))) 

И я пытаюсь сделать сюжет:

 g <- ggplot(df, aes(x=x, y=y, group=group)) g <- g + geom_line(aes(colour=group)) g <- g + geom_point(aes(colour=group, alpha = .8)) g 

Результат выглядит отлично с одним исключением. В нем есть дополнительная легенда, показывающая alpha для моего слоя geom_point .

<img src="http://sofru.miximages.com/r/tCeVym.jpg" alt="Дополнительная легенда для прозрачности geom_point “>

Как я могу сохранить легенду, показывающую цвета группы, но не та, которая показывает настройки моей альфы?

Эстетика может быть установлена или отображена в вызове ggplot .

  • Эстетика, определенная внутри aes(...) , отображается из данных и создается легенда.
  • Эстетичность также может быть установлена на одно значение, определяя ее вне aes() .

В этом случае, похоже, вы хотите установить alpha = 0.8 и map colour = group .

Сделать это,

Поместите alpha = 0.8 вне определения aes() .

 g <- ggplot(df, aes(x = x, y = y, group = group)) g <- g + geom_line(aes(colour = group)) g <- g + geom_point(aes(colour = group), alpha = 0.8) g 

введите описание изображения здесь

Для любой отображаемой переменной вы можете подавить появление легенды, используя guide = 'none' в соответствующем scale_... call. например.

 g2 <- ggplot(df, aes(x = x, y = y, group = group)) + geom_line(aes(colour = group)) + geom_point(aes(colour = group, alpha = 0.8)) g2 + scale_alpha(guide = 'none') 

Что вернет одинаковый сюжет

EDIT @ комментарий Joran является спот-он, я сделал свой ответ более всеобъемлющим

Просто добавьте код show.legend = F после части, где вы этого не хотите.

 g <- ggplot(df, aes(x=x, y=y, group=group)) g <- g + geom_line(aes(colour=group)) g <- g + geom_point(aes(colour=group, alpha = .8), show.legend = F) 

Для старых версий ggplot2 (версии до 0.9.2, выпущенные в конце 2012 года), этот ответ должен работать:

Я попробовал это с colour_scale и это не сработало. Похоже, что элемент colour_scale_hue работает как функция с параметром по умолчанию TRUE . Я добавил scale_colour_hue(legend=FALSE) и он сработал.

Я не уверен, что это касается всех элементов цветовой шкалы в ggplot

Interesting Posts
Давайте будем гением компьютера.