2013-08-26 11 views
6

Mam fasetowany wykres rozrzutu ggplot2 i chciałbym wydrukować statystyki podsumowujące o regresji liniowej dla każdego aspektu, tak jak zrobiono here i here. W przeciwieństwie do tych przykładów używam scales="free", a zakresy danych w każdym aspekcie są całkiem różne, ale chciałbym, aby statystyki podsumowujące pojawiały się w tej samej względnej pozycji w każdym aspekcie (np. W prawym górnym rogu lub cokolwiek innego). Jak mogę określić, aby geom_text lub annotate etykieta miała być wyświetlana w tej samej pozycji względem panelu?Drukuj dane korelacji w tej samej pozycji wydruku na różnych płaszczyznach.

Gdzie jestem teraz:

# 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

Chciałbym natomiast, aby mieć ggplot automatycznie ustawić tekst w tej samej pozycji względnej w każdym aspekcie.

Odpowiedz

15

Jeśli chcesz umieścić je w stosunku do narożników, można to osiągnąć poprzez określenie x lub y pozycję Inf lub -Inf:

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

ja również regulować hjust i vjust tak etykieta nie znajdowała się dokładnie w rogu wykresu, nieco odepchnięta od niego.

+0

Zgaduję, że bardziej ogólne rozwiązanie wymaga zagłębienia się w grafikę siatki? –

+0

@ DrewSteen Wprowadzenie do siatki byłoby potrzebne dla bardziej ogólnego rozwiązania, ponieważ wszystkie specyfikacje w obszarze wykresu w ggplot są określone w przestrzeni danych i dla tej samej względnej pozycji, którą chcesz określić w obszarze wyświetlania. –

+0

Pójdę tam, jeśli ktoś mi pokaże! –

Powiązane problemy