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

542voto

Arun Punkte 112870

Dies sollte funktionieren:

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEUER RATING TITEL") + 
           ylab("NEUER DICHTE TITEL")
p <- p + guides(fill=guide_legend(title="Neuer Legenden-Titel"))

(oder alternativ)

p + scale_fill_discrete(name = "Neuer Legenden-Titel")

433voto

Rohan Punkte 4493

Ich habe nicht viel darüber nachgedacht, aber weil du fill=cond in ggplot() verwendet hast,

 + labs(color='NEUER LEGENDENTITEL') 

hat möglicherweise nicht funktioniert. Wenn du jedoch color durch fill ersetzt, funktioniert es!

+ labs(fill='NEUER LEGENDENTITEL') 

Dies hat bei mir in ggplot2_2.1.0 funktioniert

65voto

user1317221_G Punkte 14820

Da Sie zwei Dichten haben, stelle ich mir vor, dass Sie Ihre eigenen Farben mit scale_fill_manual festlegen möchten.

Wenn ja, können Sie Folgendes tun:

df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))

legend_title <- "OMG Mein Titel"

ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +   
    scale_fill_manual(legend_title,values=c("orange","red"))

Bildbeschreibung hier eingeben

50voto

Rohit Yadav Punkte 635

Kein Code oben hat für mich funktioniert.

Hier ist, was ich gefunden habe und es hat funktioniert.

labs(color = "sale year")

Sie können auch einen Abstand zwischen dem Titel und der Anzeige hinzufügen, indem Sie am Ende \n hinzufügen.

labs(color = 'sale year\n")

24voto

kulianne Punkte 249

Da in deinem Code ggplot(data, fill= cond) verwendet hast, um das Histogramm zu erstellen, musst du den Legendentitel hinzufügen, indem du auch "fill" im Labelabschnitt verwendest, d.h. +labs(fill="Titelname"). Wenn du einen anderen Typ von Plot verwendetest, wo der Code ggplot(data, colour= cond) war, könntest du +labs(colour= "Titelname") verwenden. Zusammenfassend muss das lab-Argument dem aes-Argument entsprechen.

Ich habe + guides(fill=guide_legend("mein toller Titel")) verwendet, um den Legendentitel auf geom_bar-Plots zu ändern, aber es schien nicht für geom_point zu funktionieren.

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