2017-01-25 2 views
1

Ich folge Kapitel 1 von Wickham und Grolemund "R für Data Science" auf Visualisierung.ästhetisch innen oder außen aes()

Ich habe versucht:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = "blue")) 

ein Grundstück mit allen Punkten blau gefärbt, sondern zu meiner Überraschung zu erreichen gehofft, sie waren alle rot! Lesen Sie den richtigen Code die blauen Punkte zu erreichen, in Seite 11 der gedruckten Version oder in Section 3.3 of the online version, fand ich es

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy), color = "blue") 

und in der Tat sein soll, stellen sie fest, dass, um ein ästhetisch Sie manuell einstellen müssen gebe es außerhalb der aes() -Funktion, aber innerhalb der entsprechenden Geom, geom_point() hier. Wieso ist es so? Was ist die genaue Erklärung für dieses Verhalten? In der Tat schien es mir natürlich, dass die korrekte Syntax die des ersten Befehls sein würde. Ich schätze, dass dieses Problem entweder mit Layern und/oder mit dem Gültigkeitsbereich von Variablen zusammenhängt, aber ich konnte es einfach nicht verstehen. Kann mir jemand einen Löffel geben?

Edit: Tut mir leid, dass ich meine richtige Hausaufgabe nicht gemacht habe: das ist nur Aufgabe 1, die im Text selbst am Ende des entsprechenden Abschnitts vorgeschlagen wird ... Die Antwort entgeht mir jedoch immer noch.

+0

Ästhetik kann die Farbe basierend auf einem Datenelement festlegen. Wenn es nicht mit einem Datenelement zusammenhängt und Sie möchten, dass das Geom eine Farbe ist, dann tun Sie das außerhalb der Ästhetik. Hier ist ein vorheriger Beitrag zu diesem Thema: http://stackoverflow.com/questions/11511911/difference-between-passing-options-in-aes-and-outside-of-it-in-gplplot2 –

+0

@ryanm Vielen Dank für Ihre Kommentar. Es hilft ein wenig, aber, wenn ich das sagen darf, scheint meine Antwort unten das Problem zu lösen ... –

Antwort

1

Dieses Problem und genauer der Unterschied in der Ausgabe der beiden erwähnten Befehle wird explizit in Abschnitt 5.4.2 der 2. Ausgabe von "ggplot2. Elegante Grafik für die Datenanalyse" von Hadley Wickham selbst behandelt: entweder Sie Sie können eine Variable Ihrer Daten (z. B. color) in eine Variable Ihrer Daten (z. B. aes, aber innerhalb eines Elements geom) mit einem konstanten Wert, z. B. "blau", abbilden. Im ersten Fall der Abbildung einer Ästhetik, wie zum Beispiel color, wählt ggplot2 eine Farbe basierend auf einer Art einheitlichem Durchschnitt aller verfügbaren Farben (am Farbrad), da die Werte der abgebildeten Variablen alle konstant sind; Warum sollte die gewählte Farbe mit dem konstanten Wert übereinstimmen, aus dem Sie die Karte ausgewählt haben? Genauer gesagt, wenn Sie den Befehl:

ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y =hwy, color = "foo")) 

Sie erhalten genau die gleiche Ausgabe Plot wie im ersten Befehl der ursprünglichen Frage.

Verwandte Themen