Ich mache momentan eine Analyse in ggplot2 für ein Projekt und zufällig stolperte ich über etwas (für mich) komisch Verhalten, das ich nicht erklären kann. Wenn ich schreibe die Handlung sieht anders aus, was es tut, wenn ich die gleiche Variable mit aes(x = mtcars$cyl, ...)
übergeben. Wenn ich facet_grid(am ~ .)
entferne, sind beide Graphen wieder gleich. Der folgende Code wird in meinem Projekt nach dem Code modelliert, das das gleiche Verhalten erzeugt:Problem beim Übergeben von Variablen mit Dollarzeichennotation an aes() in Kombination mit facet_grid() oder facet_wrap()
library(dplyr)
library(ggplot2)
data = mtcars
test.data = data %>%
select(-hp)
ggplot(test.data, aes(x = test.data$cyl, y = mpg)) +
geom_point() +
facet_grid(am ~ .) +
labs(title="graph 1 - dollar sign notation")
ggplot(test.data, aes(x = cyl, y = mpg)) +
geom_point()+
facet_grid(am ~ .) +
labs(title="graph 2 - no dollar sign notation")
Hier ist das Bild von Diagramm 1:
Hier wird das Bild von Diagramm 2:
Ich habe festgestellt, dass ich dieses Problem mit aes_string
anstelle von aes
umgehen und die Variablennamen als Zeichenfolgen übergeben kann, aber ich würde gerne verstehen, warum ggplot verhält sich so. Das Problem tritt auch bei ähnlichen Versuchen mit facet_wrap
auf.
Vielen Dank für jede Hilfe im Voraus! Ich fühle mich sehr unwohl, wenn ich nicht verstehe, dass richtig ...
die kurze Antwort ist: * nie * '' $ verwenden in 'aes()' – baptiste
^_^nach dem Schock, den ich heute habe, als mein Diagramm plötzlich alle seltsam aussah, werde ich es nicht wieder tun. Dennoch würde ich gerne verstehen, was passiert, denn ich habe dieses Problem noch nie zuvor erlebt. – Christoph
Wenn ggplot das Diagramm erstellt, teilt es die Datensätze für jede Ebene in Gruppen auf, die durch die Ästhetik und die Facettierung definiert sind.Damit diese Gruppierung zuverlässig ist, müssen die Variablen aus einem einzigen data.frame stammen, andernfalls kann ggplot möglicherweise eine andere Reihenfolge für den Facettierungsfaktor und den Rest des Mappings verwenden. – baptiste