Mam następujący wątek jak poniżej. Został utworzony za pomocą tego polecenia:
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
Teraz następną rzeczą, którą chcę zrobić, jest zmiana tytułu legendy z cond na NOWY TYTUŁ LEGENDU .
Więc po prostu dodałem następujący wiersz i dodaliśmy koniec powyższego kodu:
+labs(colour="NEW LEGEND TITLE")
Ale to nie działa. Jak to zrobić?
labs(fill="xyz")
powinien zrobićgeom_
instrukcjami, polecam odpowiedź na stackoverflow.com/a/38485985/1169233 , jest to jedyna, która działała dla mnie.Odpowiedzi:
To powinno działać:
(lub alternatywnie)
źródło
p$labels$fill <- "New Legend Title"
p$labels$fill
nie działało dla mnie. Zggplot2_2.1.0
używamp$labels$colour <- "New legend title"
p$labels$fill
jest fajny, ale jeśli używasz więcej niż jednej zmiennej w estetyce (rodzaj linii, kolor, kształt) w aes, musisz zmienić je dla każdej osobno.Nie zagłębiłem się w to, ale ponieważ użyłeś fill = cond w ggplot (),
mogło nie działać. Jakkolwiek zamienisz kolor na wypełnienie , to działa!
To zadziałało dla mnie w ggplot2_2.1.0
źródło
p + guides(fill=guide_legend(title="New Legend Title"))
Ponieważ masz dwie gęstości, wyobrażam sobie, że możesz chcieć ustawić własne kolory
scale_fill_manual
.Jeśli tak, możesz:
źródło
Żaden z powyższych kodów nie działał dla mnie.
Oto, co znalazłem i zadziałało.
labs(color = "sale year")
Możesz także podać spację między tytułem a wyświetlaczem, dodając
\n
na końcu.labs(color = 'sale year\n")
źródło
fill
zamiastcolor
(lubcolour
) potrzebna jest? Biorąc pod uwagę czas pytania, możliwe jest, że jest onggplot2
związany z wersją.Ponieważ w kodzie użyłeś kiedyś
ggplot(data, fill= cond)
histogramu, musisz dodać tytuł legendy, używając również „wypełnienia” w sekcji etykiety, tj+labs(fill="Title name")
. Jeśli używasz innego rodzaju wykresu, w którym kodem jest ggplot (dane, kolor = cond), możesz użyć+labs(colour= "Title Name")
. Podsumowując, argument lab musi pasować do argumentu aes.Kiedyś
+ guides(fill=guide_legend("my awesome title"))
zmieniałem tytuł legendy na wykresach geom_bar, ale nie działało to dla geom_point.źródło
geom_point()
mnie to działa:guides(color=guide_legend("Type:"))
guides(color=guide_legend("Score Ranking:"))
Jest jeszcze jedna bardzo prosta odpowiedź, która może działać w przypadku niektórych prostych wykresów.
Po prostu dodaj wywołanie do guide_legend () do swojego wykresu.
Jak pokazano w bardzo ładnych dokumentach ggplot .
Jeśli to nie zadziała, możesz dokładniej ustawić parametry przewodnika, dzwoniąc do przewodników :
Możesz także zmieniać kształt / kolor / rozmiar, określając te parametry również dla swojego połączenia
guides
.źródło
qplot(…) + guides(color=guide_legend(title="sale year"))
działałoAby dodać do listy (inne opcje tutaj nie działały dla mnie), możesz także użyć funkcji update_labels dla ggplot:
Umożliwi to również zmianę etykiet osi X i Y za pomocą osobnych linii:
źródło
Zauważyłem, że istnieją dwa sposoby zmiany / określenia legend.title dla ggboxplot ():
Kod jest modyfikowany na podstawie przykładu z GitHub .
źródło
Korzystam z facet_wrap w moim ggplot i żadne z sugerowanych rozwiązań nie działało dla mnie oprócz rozwiązania ArnaudA:
źródło
Wiele osób spędza dużo czasu zmieniając etykiety, etykiety legend, tytuły i nazwy osi, ponieważ nie wiedzą, że można załadować tabele w R zawierające spacje
" "
. Możesz to jednak zrobić, aby zaoszczędzić czas lub zmniejszyć rozmiar kodu, określając separatory podczas ładowania tabeli, która jest na przykład rozdzielana tabulatorami (lub dowolnym separatorem innym niż domyślny lub pojedyncza spacja):lub używając domyślnych parametrów ładowania formatu csv:
Oznacza to, że możesz zachować nazwę
"NEW LEGEND TITLE"
jako nazwę kolumny (nagłówek) w oryginalnym pliku danych, aby uniknąć podawania nowego tytułu legendy na każdym wykresie.źródło
ggplot(df) + labs(legend = '<legend_title>')
źródło