2012-11-25 7 views
10

In beiden Plots sehen die Punkte anders aus, aber warum?Was bedeutet Größe wirklich in geom_point?

mya <- data.frame(a=1:100) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=seq(0.1,10,0.1))) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=1)) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

?aes_linetype_size_shape erklärt ...

# Size examples 
# Should be specified with a numerical value (in millimetres), 
# or from a variable source 

Aber in meinem Code sieht es anders aus.

Antwort

13

In Ihrem Code gibt es einige verwirrende Dinge. Sie scheinen die aes Funktion in einer Weise zu verwenden, die nicht beabsichtigt ist. Genau wie das size Problem, erhalten Sie mehrere Legenden, und ich denke, dass ggplot über die Farben verwirrt ist.

Die Funktion aes wird verwendet, um die Ästhetik auf Variablen in den Daten abzubilden, aber Sie verwenden sie, um die Ästhetik auf eine Konstante zu setzen. Darüber hinaus verwenden Sie die Funktion aes, um zwei unterschiedliche ästhetische Einstellungen vorzunehmen. Obwohl Sie size auf eine Konstante setzen, mag ggplot2 nicht zwei separate (Pfade und Punkte) Größenzuordnungen. Außerdem machen Sie dasselbe mit einer Farbzuordnung.

size und colour sind auf konstante Werte eingestellt, also verschieben Sie sie außerhalb der aes Funktion. Außerdem ist es in Bezug auf size des Pfads in dem ersten Diagramm wahrscheinlich sicherer, eine size Variable zu dem Datenrahmen hinzuzufügen. (Ich habe Ihre Daten ein wenig modifiziert, so dass beide Punkte und Pfade sichtbar sind.) Und wie erwartet, wird eine Legende im ersten Diagramm gezeichnet.

library(ggplot2) 
mya <- data.frame(a=1:10, size = seq(10, 1, -1)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, size=size), colour = 2) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a), colour = 2, size = 1) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

enter image description here

Verwandte Themen