Próbuję usunąć tytuł legendy w ggplot2
:
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")
Widziałem to pytanie i wydaje mi się, że żadne z rozwiązań nie działa dla mnie. Większość podaje błąd dotyczący tego, w jaki sposób opts
jest przestarzały, i theme
zamiast tego używać . Próbowałem zostały również różne wersje theme(legend.title=NULL)
, theme(legend.title="")
, theme(legend.title=element_blank)
, wiadomości itd. Typowe błędy to:
'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 czasu wydania wersji 0.9.3 i trudno mi się poruszać po niektórych zmianach ...
labs()
do tego: Dodaj linięlabs(colour = "")
do swojego kodu, która utworzyła powyższy wykres.Odpowiedzi:
Prawie byłeś: po prostu dodaj
theme(legend.title=element_blank())
Ta strona Cookbook for R zawiera wiele szczegółów na temat dostosowywania legend.
źródło
guide = guide_legend()
polecenie działa. Aby usunąć tytuł legendy wypełnienia, ale zachować tytuł legendy koloru, np.scale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
To również działa i pokazuje również, jak zmienić tytuł legendy:
źródło
theme_bw()
ale nie najlepsze, w przypadkach, gdy legenda ma wokół siebie ramkę i jest umieszczona gdzieś na obszarze fabuły (moje zwykłe podejście).scale_color_manual(name=element_blank())+
niższej legendy rozwiązało to za mnieelement_blank()
wydaje się być zalecanym podejściem. Ustawieniename = NULL
to inny sposób.Inna opcja przy użyciu
labs
i ustawieniu koloru naNULL
.źródło
Dla
Error: 'opts' is deprecated
. Użyjtheme()
zamiast tego. (Nieistniejącego; ostatnio używany w wersji 0.9.1)”Wymieniłemopts(title = "Boxplot - Candidate's Tweet Scores")
zlabs(title = "Boxplot - Candidate's Tweet Scores")
. Zadziałało!źródło
Ponieważ możesz mieć więcej niż jedną legendę na wykresie, sposobem wybiórczego usunięcia tylko jednego z tytułów bez pozostawiania pustego miejsca jest ustawienie
name
argumentuscale_
funkcji naNULL
, tj.scale_fill_discrete(name = NULL)
(pochwały dla @pascal za komentarz w innym wątku )
źródło