Читать книгу R für Data Science - Hadley Wickham - Страница 33
Zuordnungen visueller Eigenschaften
ОглавлениеThe greatest value of a picture is when it forces us to notice what we never expected to see.
– John Tukey
Im folgenden Diagramm scheint eine Gruppe von Punkten (die rot hervorgehobenen) aus dem linearen Trend herauszufallen. Diese Autos haben einen höheren Kraftstoffverbrauch, als Sie möglicherweise erwarten. Wie können Sie das für diese Autos erklären?
Als Hypothese nehmen wir an, dass es sich um Hybridfahrzeuge handelt. Um diese Hypothese zu testen, sehen wir uns den class-Wert für jedes Auto an. Die Variable class des Datensets mpg klassifiziert die Autos in Gruppen wie zum Beispiel kompakt, mittelgroß und SUV. Wenn die abseits gelegenen Punkte für Hybridfahrzeuge stehen, sollten diese als Kleinwagen oder vielleicht als Kleinstwagen klassifiziert werden (wobei zu bedenken ist, dass die Daten erfasst wurden, bevor Hybrid-Lkw und -SUVs populär wurden).
Nun können Sie eine dritte Variable, wie class, zu einem zweidimensionalen Streudiagramm hinzufügen, indem Sie sie einer visuellen Eigenschaft (im Sprachgebrauch von R als aesthetic bezeichnet) von Objekten in Ihrem Diagramm zuordnen. Zu den visuellen Eigenschaften gehören unter anderem die Größe, die Form und die Farbe der Punkte. Einen Punkt (wie den als Nächstes gezeigten) können Sie auf verschiedene Arten anzeigen, indem Sie die Werte seiner visuellen Eigenschaften ändern. Da wir mit dem Begriff »Wert« bereits Daten beschreiben, nehmen wir das Wort »Ebene«, um visuelle Eigenschaften zu beschreiben. Hier ändern wir die Ebenen von Größe, Form und Farbe eines Punkts, um den Punkt klein, dreieckig oder blau zu machen:
Informationen über Ihre Daten können Sie vermitteln, indem Sie die visuellen Eigenschaften in Ihrem Diagramm auf Variablen in Ihrem Datenset abbilden. Zum Beispiel können Sie die Farben Ihrer Punkte der Variablen class zuordnen, um die Klasse jedes Fahrzeugs deutlich zu machen:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
(Wenn Sie wie Hadley britisches Englisch bevorzugen, dürfen Sie auch colour anstelle von color schreiben.)
Um eine visuelle Eigenschaft auf eine Variable abzubilden, ordnen Sie den Namen der visuellen Eigenschaft dem Namen der Variablen innerhalb von aes() zu. Das Paket ggplot2 weist automatisch eine eindeutige Ebene der visuellen Eigenschaft (hier eine eindeutige Farbe) jedem eindeutigen Wert der Variablen zu, was man als Skalierung bezeichnet. Außerdem fügt ggplot2 eine Legende hinzu, die erläutert, welche Ebenen welchen Werten entsprechen.
Die Farben verraten, dass viele der außergewöhnlichen Punkte zu zweisitzigen Autos gehören. Diese Autos scheinen keine Hybridfahrzeuge zu sein, und tatsächlich handelt es sich um Sportwagen! Aber Sportwagen haben genau wie SUVs und Pick-up-Trucks große Motoren, jedoch im Gegensatz zu denen kleine Karosserien wie mittlere und Kleinwagen, was ihre Reichweite verbessert. Im Nachhinein gesehen dürfte es sich bei diesen Autos kaum um Hybridfahrzeuge gehandelt haben, da sie mit großen Motoren ausgestattet sind.
Im vorherigen Beispiel haben wir class auf das visuelle Attribut color abgebildet, doch wir hätten class in der gleichen Weise auch auf das visuelle Attribut size abbilden können. In diesem Fall würde die genaue Größe jedes Punkts seine Klassenzugehörigkeit offenbaren. Hier erhalten wir aber eine Warnung, weil die Zuordnung einer ungeordneten Variablen (class) zu einer geordneten visuellen Eigenschaft (size) keine gute Idee ist:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, size = class))
#> Warning: Using size for a discrete variable is not advised.
Oder wir hätten class dem visuellen Attribut alpha, das die Transparenz der Punkte steuert, oder der Form (shape) der Punkte zuordnen können:
# Top
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, alpha = class))
# Bottom
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, shape = class))
Was ist mit den SUVs passiert? ggplot2 verwendet nur sechs Formen gleichzeitig. Standardmäßig erscheinen zusätzliche Gruppen nicht im Diagramm, wenn Sie diese Ästhetik verwenden.
Für jede visuelle Eigenschaft, die Sie verwenden, ordnet aes() den Namen der visuellen Eigenschaft einer anzuzeigenden Variablen zu. Die aes()-Funktion sammelt die visuellen Zuordnungen, die von einer Ebene verwendet werden, und übergibt sie an das Zuordnungsargument der Ebene. Die Syntax liefert eine nützliche Erkenntnis über x und y: Die x- und y-Positionen eines Punkts sind selbst visuelle Eigenschaften, die Sie auf die Variablen abbilden können, um Informationen über die Daten anzuzeigen.
Nachdem Sie eine visuelle Eigenschaft zugeordnet haben, kümmert sich ggplot2 um den Rest. Das Paket wählt eine sinnvolle Skala aus, die mit der visuellen Eigenschaft zu verwenden ist, und konstruiert eine Legende, die die Zuordnung zwischen Ebenen und Werten erläutert. Für die visuellen Elemente x und y erzeugt ggplot2 keine Legende, erzeugt aber eine Achsenlinie mit Teilstrichen und einer Beschriftung. Die Achsenlinie fungiert als Legende; sie erklärt die Zuordnung zwischen Positionen und Werten.
Die visuellen Eigenschaften Ihrer geometrischen Attribute können Sie auch manuell festlegen. Zum Beispiel lassen sich alle Punkte im Diagramm blau darstellen:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
Hier vermittelt die Farbe keine Informationen über eine Variable, sondern ändert nur das Aussehen des Plots. Um eine visuelle Eigenschaft manuell festzulegen, setzen Sie die visuelle Eigenschaft nach dem Namen als Argument Ihrer geom-Funktion, das heißt außerhalb von aes(). Wählen Sie einen Wert aus, der für diese visuelle Eigenschaft sinnvoll ist:
den Namen einer Farbe als Zeichenfolge
die Größe eines Punkts in mm
die Form eines Punkts als Zahl entsprechend Abbildung 1-1
Abbildung 1-1: R bringt 25 integrierte Formen mit, die nach Nummern identifiziert werden.
Scheinbar gibt es bei den Formen gemäß Abbildung 1-1 einige Duplikate: Zum Beispiel sind den Werten 0, 15 und 22 Quadrate zugeordnet. Die Unterscheidung ergibt sich aus der Wechselwirkung der visuellen Eigenschaften color und fill. Der Rand der hohlen Formen (0 bis 14) wird durch color bestimmt, die gedeckten Formen (15 bis 18) sind mit der Farbe color gefüllt, und die ausgefüllten Formen (21 bis 24) besitzen einen Rand aus color und sind gefüllt mit fill.