2015-06-08 13 views
8

Ich habe den folgenden Datensatz und die folgenden Codes, um das 2D-Dichte-Konturdiagramm für jedes Paar von Variablen im Datenrahmen zu erstellen. Meine Frage ist, ob es einen Weg in ggpairs() gibt, um sicherzustellen, dass die Skalen für verschiedene Variablenpaare gleich sind, wie die gleiche Skala für verschiedene Facetten in ggplot2. Zum Beispiel möchte ich, dass die x-Skala und y-Skala alle aus [-1, 1] für jedes Bild sind.Wie man gleiche Skalen über verschiedene Facetten hinweg mit ggpairs setzt()

Vielen Dank im Voraus!

Das Grundstück sieht aus wie 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 

Antwort

2

Ich bin nicht sicher, ob diese von der ggpairs Funktion direkt möglich ist, aber Sie können einen Plot aus ggpairs extrahieren und sie ändern und dann wieder speichern.

In diesem Beispiel wird das untere Dreieck der Plotmatrix übersprungen und die vorhandenen x- und y-Achsenskalen ersetzt.

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 wie sieht das

enter image description here

und pm2 wie diese

enter image description here

sieht Ihr Problem zu lösen, würden Sie Schleife über die gesamte Matrix von Plots und Setzen Sie die X- und Y-Skalen auf einen Wert zwischen -1 und 1.