491 Stimmen

Wie ändere ich den Legendentitel in ggplot?

Ich habe das folgende Diagramm wie unten dargestellt. Es wurde mit diesem Befehl erstellt:

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("NEUER TITEL FÜR BEWERTUNG") +
ylab("NEUER TITEL FÜR DICHTE")

Jetzt möchte ich den Legendentitel von cond in NEUER LEGENDENTITEL ändern.

Daher habe ich einfach die folgende Zeile am Ende des obigen Codes hinzugefügt:

+labs(colour="NEUER LEGENDENTITEL")

Aber es funktioniert nicht. Wie geht es richtig?

Bildbeschreibung hier eingeben

10voto

Yourpalal Punkte 476

Es gibt eine weitere sehr einfache Antwort, die für einige einfache Diagramme funktionieren kann.

Fügen Sie einfach einen Aufruf von guide_legend() in Ihr Diagramm ein.

ggplot(...) + ... + guide_legend(title="mein toller Titel")

Wie in der sehr guten ggplot-Dokumentation gezeigt.

Wenn das nicht funktioniert, können Sie Ihre Leitfadenparameter genauer festlegen, indem Sie guides aufrufen:

ggplot(...) + ... + guides(fill=guide_legend("mein toller Titel"))

Sie können auch die Form/Farbe/Größe variieren, indem Sie diese Parameter ebenfalls für Ihren Aufruf von guides angeben.

5voto

Birdonawire Punkte 189

Ich verwende ein facet_wrap in meinem ggplot und keins der vorgeschlagenen Lösungen hat für mich funktioniert, außer der Lösung von ArnaudA:

qplot(…) + guides(color=guide_legend(title="Verkaufsjahr"))

4voto

user3791304 Punkte 41

Nur um die Liste zu ergänzen (die anderen Optionen hier haben bei mir nicht funktioniert), können Sie auch die Funktion update_labels für ggplot verwenden:

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEUER BESCHRIFTUNGSTITEL") + 
           ylab("NEUER DICHTE-TITEL")

update_labels(p, list(colour="MEIN NEUER LEGENDENTITEL")

Dies ermöglicht es Ihnen auch, die Beschriftungen der x- und y-Achse mit separaten Zeilen zu ändern:

update_labels(p, list(x="NEUE X-BESCHRIFTUNG", y="NEUE Y-BESCHRIFTUNG")

3voto

Joseph Bulbulia Punkte 55

Leider hat keines dieser Lösungen für mich funktioniert. Ich arbeite mit der Ausgabe von brms::conditional_effects()

Meine Lösung erforderte:

+ labs( fill = "Neuer Titel", colour = "Neuer Titel", labels = "Neuer Titel" )

2voto

Good Will Punkte 1053

Ich habe bemerkt, dass es zwei Möglichkeiten gibt, legend.title für ggboxplot() zu ändern/bestimmen:

library(ggpubr)

bxp.defaultLegend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                               color = "dose", palette = "jco")

# Lösung 1, legende.title direkt in ggboxplot() festlegen
bxp.legend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                 color = "dose", palette = "jco", legend.title="Dosis (mg)")

# Lösung 2: Legendenüberschrift und Aussehen in ggboxplot() mit labs() und theme() Option ändern:
plot1 <-  bxp.defaultLegend + labs(color = "Dosis (mg)") +
  theme(legend.title = element_text(color = "blau", size = 10), legend.text = element_text(color = "rot"))

ggarrange(list(bxp.legend, bxp.defaultLegend, plot1), nrow = 1, ncol = 3,  common.legend = TRUE)

Der Code wurde basierend auf dem Beispiel von GitHub modifiziert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X