Mam prostą ramkę danych, którą próbuję wykonać za pomocą połączonego wykresu linii i punktów ggplot2
. Przypuśćmy, że moje dane wyglądają tak:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
I próbuję ułożyć fabułę:
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
Wynik wygląda dobrze z jednym wyjątkiem. Ma dodatkową legendę pokazującą alpha
moją geom_point
warstwę.
Jak mogę zachować legendę pokazującą kolory grup, ale nie tę, która pokazuje moje ustawienia alfa?
g + scale_alpha(guide = "none")
.group
estetyka sama w sobie nie generuje żadnych skal ani wskazówek. To zawsze coś w rodzaju modyfikowania czegoś innego. Nigdy nie zdobędziesz legendy o estetyce „grupowej”.Po prostu dodaj
show.legend = F
kod po części, w której go nie chcesz.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)
źródło
W przypadku starszych wersji ggplot2 (wersje wcześniejsze niż 0.9.2, wydane pod koniec 2012 r.) Ta odpowiedź powinna działać:
Próbowałem tego z a
colour_scale
i nie zadziałało. Wygląda na to, żecolour_scale_hue
element działa jak funkcja z domyślnym parametremTRUE
. Dodałemscale_colour_hue(legend=FALSE)
i zadziałało.Nie jestem pewien, czy tak jest w przypadku wszystkich pozycji w skali kolorów w ggplot
źródło
legend
wscale_*
rozmowie jest przestarzałe, lepiej to zrobićscale_colour_hue(guide = "none")
.legend=FALSE
jest przestarzały, jak wskazał komentarz @shujaa, jest to w rzeczywistości zduplikowana odpowiedź, tj. dodanieguide = "none"
doscale_fill/color*
funkcji.