2013-02-08 1 views
71

Próbuję usunąć tytuł legendy w ggplot2:usuń tytuł legendą ggplot

df <- data.frame(
    g = rep(letters[1:2], 5), 
    x = rnorm(10), 
    y = rnorm(10) 
) 

library(ggplot2) 
ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") 

enter image description here

Widziałem this question i żadne z rozwiązań nie wydaje się działać dla mnie . Większość daje błąd dotyczący tego, jak opts jest przestarzałe i zamiast tego używa theme. Próbowałem zostały również różne wersje theme(legend.title=NULL), theme(legend.title=""), theme(legend.title=element_blank) itp komunikaty o błędach są Typowy:

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1) 
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1) 

używam ggplot2 po raz pierwszy od wersji 0.9.3 został wydany, a ja ze znalezieniem go trudno poruszać pewne zmiany ...

+2

Możesz użyć 'labs()' do tego: Dodaj linię 'labs (color =" ")' do kodu, który wytworzył powyższy wykres. – Dennis

Odpowiedz

110

Byłaś prawie: wystarczy dodać theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") + 
    theme(legend.title=element_blank()) 

This page on Cookbook for R daje mnóstwo informacji o tym, jak cus tomize legend.

7

Działa to też, a także pokazuje, jak zmienić tytuł Legenda:

ggplot(df, aes(x, y, colour=g)) + 
    geom_line(stat="identity") + 
    theme(legend.position="bottom") + 
    scale_color_discrete(name="") 
+4

Zastępuje tytuł pustym ciągiem, a zatem powoduje dodatkowe miejsce między etykietą a polem legendy, które byłoby widoczne tylko, gdyby legenda zawierała ramkę lub tło innego koloru, niż ten, w którym jest umieszczony. W porządku jest więc szybkie i gotowe podejście w prostych przypadkach, takich jak '' theme_bw() '', ale nie najlepsze w przypadku, gdy legenda ma pole wokół niego i jest umiejscowiona gdzieś w obszarze wykresu (moje zwykłe podejście). – PatrickT

+0

+1 dla obserwacji. Miałem problem z użyciem dwóch różnych legend i odstępów między nimi utworzonych przez powyższe rozwiązanie. Ustawienie 'scale_color_manual (name = element_blank()) +' dla dolnej legendy rozwiązało to dla mnie – joaoal

0

Dla Error: 'opts' is deprecated. Zamiast tego użyj theme(). (Defunct, ostatnio używany w wersji 0.9.1) ' Wymieniłem opts(title = "Boxplot - Candidate's Tweet Scores") z labs(title = "Boxplot - Candidate's Tweet Scores"). Zadziałało!