2013-08-26 4 views
6

Ich habe ein facettiertes ggplot2 Streudiagramm und möchte zusammenfassende Statistiken über die lineare Regression auf jeder Facette drucken, wie es here und here getan wurde. Im Gegensatz zu diesen Beispielen verwende ich scales="free", und die Bereiche der Daten in jeder Facette sind ziemlich unterschiedlich, aber ich möchte, dass die Zusammenfassungsstatistiken in derselben relativen Position in jeder Facette angezeigt werden (z. B. obere rechte Ecke oder was auch immer). Wie kann ich unter geom_text oder annotate angeben, dass das Etikett an der gleichen Position wie das Panel erscheinen soll? Druck Korrelationsdaten in der gleichen Plotposition über Facetten

Wo ich recht habe jetzt:

# Fake data 
set.seed(2112) 
x <- c(1:10, 6:15) 
y <- x + c(runif(10), runif(10)*10) 
l <- gl(2, 10) 
d <- data.frame(x=x, y=y, l=l) 

# Calculate a summary statistic (here, the r-squared) in a separate data frame 
r_df <- ddply(d, .(l), summarise, rsq=round(summary(lm(y~x))$r.squared, 2)) 

# Use geom_text and a separate data frame to print the summary statistic 
ggplot(d, aes(x=x, y=y)) + 
    geom_text(data=r_df, aes(x=8, y=8, label=paste("rsq=", rsq)))+ 
    geom_point() + 
    facet_wrap(~l, scales="free") 

enter image description here

Ich möchte, stattdessen haben ggplot den Text automatisch in der gleichen relativen Position in jeder Facette positionieren.

Antwort

15

Wenn Sie sie relativ zu den Ecken wollen, können Sie das erreichen, indem eine x oder y Position Inf oder -Inf Angabe:

ggplot(d, aes(x=x, y=y)) + 
    geom_text(data=r_df, aes(label=paste("rsq=", rsq)), 
      x=-Inf, y=Inf, hjust=-0.2, vjust=1.2)+ 
    geom_point() + 
    facet_wrap(~l, scales="free") 

enter image description here

ich auch hjust eingestellt und vjust so das Etikett war nicht in der exakten Ecke des Graphen, indem es etwas davon weggedrückt wurde.

+0

Ich vermute, eine allgemeinere Lösung beinhaltet Eintauchen in Rastergrafiken? –

+0

@DrewSteen Für die allgemeinere Lösung wäre das Eintauchen in das Raster erforderlich, da alle Spezifikationen im Plotbereich in ggplot im Datenbereich und für die gleiche relative Position im Anzeigebereich angegeben werden. –

+0

Ich werde dorthin gehen, wenn mir jemand zeigt, wie! –