**编辑:**对不起,但情况可能比我所表现的要复杂一些。但是,两个脚本都可以工作,尽管由于点重叠,第一个脚本可能不太清楚大数据集!非常感谢Sacha!
我想首先显示几个变量对,然后叠加相同数据集的选定数据。通常,可以使用par(new=T)
来实现叠加:
h<-rnorm(nc) # this variable was used for conditioning
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
pairs(m)
par(new=T)
pairs(m[h>0.7,],col="red")
但是,par()
设置似乎不适用于此类用途。
然后,可能格子库可以提供帮助,例如。 splom()
,但我不知道它是否真的有效,以及如何运作。有人可以提出一些建议吗?
答案 0 :(得分:4)
我认为paris
必须是pairs
? pairs
函数没有add
参数左右,因为情节有9个面板(简单地做points
将在最后一个面板中绘图),它可能也不会那么微不足道。但是使用col
:
nc <- 100
set.seed(1)
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
cols <- ifelse(x>0.7,"red","black")
pairs(m,col=cols)
您在pairs
中可以做的另一件事实际上是设置您想要在每个面板中执行的功能。默认情况下,这是points
,但您可以将其扩展为包含一些条件:
nc <- 100
X<-rnorm(nc)
Y<-rnorm(nc)
Z<-rnorm(nc)
m<-cbind(X,Y,Z)
panelfun <- function(x,y,foo=X,...){
points(x[foo<0.7],y[foo<0.7],col="black",...)
points(x[foo>0.7],y[foo>0.7],col="red",...)
}
pairs(m,panel=panelfun)
这给出了与以前相同的图片(因为我没有设置种子,因此不同点)。简单地制作颜色矢量会更容易实现,但您可以使面板功能尽可能大。
此外,...
允许将其他参数传递给points
函数:
pairs(m,panel=panelfun,pch=16)
答案 1 :(得分:0)
lattice::splom
运行正常。颜色索引需要增加1,因为R索引是基于1而不是从零开始,逻辑向量被强制为0和1。
library(lttice)
nc=100; h<-rnorm(nc)
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
splom(m, col=c("blue", "red")[1+(h>0.7)])