2015-06-08 16 views
8

Tôi có các tập dữ liệu và mã sau đây để xây dựng âm mưu đường bao mật độ 2d cho mỗi cặp biến trong khung dữ liệu. Câu hỏi của tôi là liệu có một cách trong ggpairs() để đảm bảo rằng các thang đo giống nhau cho các cặp biến khác nhau giống như cùng một tỷ lệ cho các khía cạnh khác nhau trong ggplot2. Ví dụ, tôi muốn thang tỷ lệ x và y là tất cả từ [-1, 1] cho mỗi hình ảnh.Làm thế nào để đặt cùng một tỷ lệ trên các khía cạnh khác nhau với ggpairs()

Cảm ơn trước!

Cốt truyện trông giống như enter image description here

library(GGally) 
ggpairs(df,upper = list(continuous = "density"), 
    lower = list(combo = "facetdensity")) 

#the dataset looks like 
print(df) 
     x   y   z    w 
1 0.49916998 -0.07439680 0.37731097 0.0927331640 
2 0.25281542 -1.35130718 1.02680343 0.8462638556 
3 0.50950876 -0.22157249 -0.71134553 -0.6137126948 
4 0.28740609 -0.17460743 -0.62504812 -0.7658094835 
5 0.28220492 -0.47080289 -0.33799637 -0.7032576540 
6 -0.06108038 -0.49756810 0.49099505 0.5606988283 
7 0.29427440 -1.14998030 0.89409384 0.5656682378 
8 -0.37378096 -1.37798177 1.22424964 1.0976507702 
9 0.24306941 -0.41519951 0.17502049 -0.1261603208 
10 0.45686871 -0.08291032 0.75929106 0.7457002259 
11 -0.16567173 -1.16855088 0.59439600 0.6410396945 
12 0.22274809 -0.19632766 0.27193362 0.5532901113 
13 1.25555629 0.24633499 -0.39836999 -0.5945792966 
14 1.30440121 0.05595755 1.04363679 0.7379212885 
15 -0.53739075 -0.01977930 0.22634275 0.4699563173 
16 0.17740551 -0.56039760 -0.03278126 -0.0002523205 
17 1.02873716 0.05929581 -0.74931661 -0.8830775310 
18 -0.13417946 -0.60421101 -0.24532606 -0.1951831558 
19 0.11552305 -0.14462104 0.28545703 -0.2527437818 
20 0.71783902 -0.12285529 1.23488185 1.3224880574 

Trả lời

2

Tôi không chắc liệu điều này có thể từ ggpairs chức năng trực tiếp nhưng bạn có thể trích xuất một âm mưu từ ggpairs và sửa đổi nó và sau đó lưu nó trở lại.

Ví dụ này lặp qua hình tam giác dưới của ma trận ô và thay thế các thang trục x và y hiện có.

data(tips, package = "reshape") 
## pm is the original ggpair object 
pm <- ggpairs(tips[,c("total_bill", "tip", "size")]) 
## pm2 will be modified in the loop 
pm2 <- pm 
for(i in 2:pm$nrow) { 
    for(j in 1:(i-1)) { 
    pm2[i,j] <- pm[i,j] + 
     scale_x_continuous(limits = c(-5, 75)) + 
     scale_y_continuous(limits = c(-5, 10)) 
} 
} 

pm trông như thế này

enter image description here

pm2 trông như thế này

enter image description here

Để giải quyết vấn đề của bạn, bạn muốn lặp trên toàn bộ ma trận của lô và đặt thang x và y để có giới hạn từ -1 đến 1.

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