2015-06-08 41 views
8

我有以下数据集和代码来为数据框架中的每对变量构建二维密度等高线图。我的问题是ggpairs()中是否有一种方法来确保不同变量对的比例相同,如ggplot2中不同facet的相同比例。例如,我希望每个图片的x比例和y比例都是[-1,1]。如何使用ggpairs在不同构面上设置相同的缩放比例()

在此先感谢!

情节看起来像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 

回答

2

我不知道这是否是可能直接从ggpairs功能,但你可以从ggpairs提取情节和修改,然后将其重新保存。

本示例在图的矩阵的下三角形上循环并替换现有的x轴和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看起来像这样

enter image description here

pm2看起来像这样

enter image description here

解决你的问题,你会遍历地块的整个矩阵和将x和y比例设置为-1到1的限制。

相关问题