2013-08-26 22 views
6

Tôi có một mặt phân cách ggplot2 và muốn in thống kê tóm tắt về hồi quy tuyến tính trên từng khía cạnh, như đã được thực hiện herehere. Không giống như các ví dụ đó, tôi đang sử dụng scales="free" và phạm vi dữ liệu trong mỗi khía cạnh là khác nhau, nhưng tôi muốn thống kê tóm tắt hiển thị ở cùng vị trí tương đối trong mỗi khía cạnh (ví dụ: góc trên cùng bên phải hoặc bất kỳ thứ gì). Làm cách nào tôi có thể chỉ định cho geom_text hoặc annotate rằng nhãn sẽ xuất hiện ở cùng vị trí tương ứng với bảng điều khiển?Dữ liệu tương quan in ở cùng vị trí lô trên các mặt

Tôi đang ở đâu ngay bây giờ:

# 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

Tôi muốn, thay vào đó, để có ggplot tự động xác định vị trí các văn bản trong vị trí tương đối giống nhau trong mỗi khía cạnh.

Trả lời

15

Nếu bạn muốn đặt chúng liên quan đến các góc, bạn có thể đạt được điều đó bằng cách xác định một x hoặc y vị trí của Inf hoặc -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

tôi cũng điều chỉnh hjustvjust nên nhãn không nằm ở góc chính xác của biểu đồ bằng cách đẩy nó ra một chút.

+0

Tôi đoán một giải pháp tổng quát hơn liên quan đến việc delving vào đồ họa lưới? –

+0

@DrewSteen Việc chuyển thành lưới sẽ là cần thiết cho giải pháp tổng quát hơn vì tất cả các đặc tả bên trong khu vực ô trong ggplot được xác định trong không gian dữ liệu và cho cùng vị trí tương đối mà bạn muốn chỉ định chúng trong không gian hiển thị. –

+0

Tôi sẽ đến đó nếu có ai đó chỉ cho tôi cách làm thế nào! –

Các vấn đề liên quan