2015-06-08 18 views
8

Mam następujący zestaw danych i kody do skonstruowania wykresu konturów gęstości 2d dla każdej pary zmiennych w ramce danych. Moje pytanie brzmi: czy istnieje sposób w ggpairs(), aby upewnić się, że skale są takie same dla różnych par zmiennych, takich jak ta sama skala dla różnych aspektów w ggplot2. Na przykład chciałbym, aby skala x i skala y były z [-1, 1] dla każdego obrazu.Jak ustawić tę samą skalę dla różnych aspektów za pomocą ggpairs()

Z góry dziękuję!

Fabuła wygląda 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 

Odpowiedz

2

Nie jestem pewien, czy jest to możliwe z funkcji ggpairs bezpośrednio, ale można wyodrębnić działkę od ggpairs i zmodyfikować go, a następnie zapisać go z powrotem.

Ten przykład wykonuje pętlę nad dolnym trójkątem macierzy wykresów i zastępuje istniejące osie osi X i Y.

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 wygląda następująco

enter image description here

i pm2 wygląda to

enter image description here

Aby rozwiązać problem, że pętla na całej matrycy i działek ustaw skale xiy, aby miały ograniczenia od -1 do 1.