Ich versuche, den Titel einer Legende zu entfernen in 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")
Ich habe diese Frage gesehen und keine der Lösungen dort scheint für mich zu funktionieren. Die meisten geben einen Fehler darüber an, wie opts
veraltet und theme
stattdessen zu verwenden ist . Ich habe auch verschiedene Versionen versucht theme(legend.title=NULL)
, theme(legend.title="")
, theme(legend.title=element_blank)
etc. Typische Fehlermeldungen sind:
'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)
Ich verwende es ggplot2
zum ersten Mal seit der Veröffentlichung von Version 0.9.3 und finde es schwierig, durch einige der Änderungen zu navigieren ...
labs()
dies verwenden: Fügen Sie die Zeilelabs(colour = "")
zu Ihrem Code hinzu, der das obige Diagramm erstellt hat.Antworten:
Sie waren fast da: fügen Sie einfach hinzu
theme(legend.title=element_blank())
Diese Seite im Kochbuch für R enthält viele Details zum Anpassen von Legenden.
quelle
guide = guide_legend()
funktioniert der Befehl. Um den Titel derscale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
Dies funktioniert auch und zeigt auch, wie der Legendentitel geändert wird:
quelle
theme_bw()
aber nicht in Fällen, in denen die Legende von einem Kästchen umgeben ist und sich irgendwo auf dem Plotbereich befindet (mein üblicher Ansatz).scale_color_manual(name=element_blank())+
für die untere Legende löste es für michelement_blank()
scheint der empfohlene Ansatz zu sein. Das Einstellenname = NULL
ist ein anderer Weg.Eine weitere Option, bei
labs
der Farbe verwendet und eingestellt wirdNULL
.quelle
Für
Error: 'opts' is deprecated
. Verwenden Sietheme()
stattdessen. (Defunct; zuletzt in Version 0.9.1 verwendet) 'Ich habe ersetztopts(title = "Boxplot - Candidate's Tweet Scores")
durchlabs(title = "Boxplot - Candidate's Tweet Scores")
. Es funktionierte!quelle
Da Sie möglicherweise mehr als eine Legende in einem Plot haben, können Sie nur einen der Titel selektiv entfernen, ohne ein Leerzeichen zu lassen, indem Sie das
name
Argument derscale_
Funktion auf setzenNULL
, d. H.scale_fill_discrete(name = NULL)
(Ein großes Lob an @pascal für einen Kommentar zu einem anderen Thread )
quelle