2016-08-24 3 views
2

Ich bin neu in ggplot2. Ich versuche zu verstehen, wie man ggplot verwendet. Ich lese Wickhams Buch und versuche immer noch, meinen Kopf darum zu wickeln, wie man die aes() Funktion benutzt. In einem verwandten Thread haben wir diskutiert, dass wir versuchen sollten, die Verwendung von Variablen innerhalb von aes() zu vermeiden, d. H. "Setzen Sie keine Konstanten in aes() - setzen Sie nur Zuordnungen zu tatsächlichen Datenspalten."Verwenden von Farben in AES() -Funktion in GGPLOT2

Mein Ziel ist es, das Verhalten von ggplots zu beobachten, wenn wir innerhalb aes() Farbe für die Kennzeichnung haben (wie in Wickhams Buch beschrieben) und auch die Farbe überschreiben, um die Farbe zu drucken.

ich damit begonnen:

library(ggplot2) 
data(mpg) 
ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) + 
    labs(colour = "Method") 

Diese Diagramme schön Plots und kennzeichnet sie. Ich bin jedoch unzufrieden mit den verwendeten Farben. Also, ich experimentierte mit wieder zwingenden Farben verwendet:

windows() 
ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE, color = "magenta") + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE, color = "red") + 
    labs(colour ="Method") 

Ich habe color = „red“ und wir können sehen, dass labs() oder aes(color()) keine Wirkung hat. Warum passiert das? Ich bin neugierig. Ich würde mich über Gedanken freuen.

+0

ich denke, dies und die Antwort unten kann aus dem falschen Grund arbeiten. Sollte es nicht 'method =" Löss "' nicht 'Farbe = ...' cc: @ user1470500 – beroe

Antwort

4

Wenn Sie angeben, berücksichtigt die Farbe außerhalb von aes() gg_plot nicht, dass die Farbinformationen Teil der Daten sind (und überschreibt vorherige Informationen), sodass keine Legende mehr angezeigt werden kann.

Wenn Sie Ihre eigenen Farben spezifizieren und die Farbinformationen als „relevante Daten“ zu halten und nicht „Anzeigeinformationen“, sollten Sie einen scale_colour_manual() Befehl fügen Sie die Legende Farben zu spezifizieren und das Farbattribut in aes verlassen:

ggplot(mpg, aes(displ, hwy)) + 
    geom_point() + 
    geom_smooth(aes(colour = "loess"), method = "loess", se = FALSE) + 
    geom_smooth(aes(colour = "lm"), method = "lm", se = FALSE) + 
    labs(colour ="Method") + scale_colour_manual(values = c("loess" = "magenta", "lm" = "red")) 

enter image description here

+0

Ich würde vorschlagen, Ihre Handlung hinzuzufügen –

Verwandte Themen