2013-03-24 4 views
6

특정 행 인덱스를 기반으로 한 쌍 플롯에서 색을 지정하고 싶습니다. 여기에 1 변수를 다른 변수에 대입하기 위해 사용한 코드가 있습니다.쌍 플롯의 색 점

pairs(pca[,1:3]) 

편집 :

cases<-which(rownames(data_no_na) %in% colnames(tumor_data)) 
controls<-which(rownames(data_no_na) %in% colnames(control_data)) 

plot(y=range(pca[,1]),x=range(pca[,2]),type='n',xlab="Principle Component 2",ylab="Principle Component 1", main="Iterative Thresholding Sparse PCA") 

points(y=pca[cases,1], x=pca[cases,2], col = 'red') 
points(y=pca[controls,1], x=pca[controls,2], col = 'blue'); 

간단한 쌍의 줄거리는 뭔가처럼 예 :이 같은

cases<-1:10 
controls<-11:20 

pca<-matrix(c(rnorm(3*10,0,1),rnorm(3*10,5,1)),nrow=20,ncol=3) 
+3

당신은 재생 가능한 예제를 제공한다 :

colors <- c('black', 'red')[unclass(factor_variable)] 

그런 다음이 마법을 수행합니다. – agstudy

+0

위의 그림을 보여줄 수있는 실제 데이터 또는 더미 데이터의 출력을 확인해야 함을 의미합니다. 데이터에 많은 열이 포함되어 있지 않으면'dput (head (cases))'및'dput (head (controls)) '출력을 붙여 넣으십시오. –

+1

안녕하세요! [** 훌륭한 재현 가능한 예제를 만드는 방법 **] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible- 예를 들어) 우리가 당신을 도울 수 있습니다. 고맙습니다. – Arun

답변

17

뭔가?

cols <- character(nrow(iris)) 
cols[] <- "black" 

cols[iris$Species %in% c("setosa","versicolor")] <- "blue" 
cols[iris$Species == "virginica"] <- "red" 
pairs(iris,col=cols) 
+0

고마워요. – bdeonovic

+0

도형에 대해 동일한 작업을 수행 할 수있는 방법이 있습니까? 덕분에 – Yoav

+0

네, 모양도 똑같이 할 수 있습니다. – Roland

0

@Roland의 답변이 일부 버전에서는 작동하지만 적어도 내 Windows R 3.4.2에서는 작동하지 않을지 모르겠습니다.

함수 쌍은 many arguments을 사용합니다. 이 중 일부는 대각선, 상단 및 하단 패널에 매핑 할 함수를 나타내는 데 사용됩니다. 기본적으로 플롯 (점) 기능을 사용합니다.

이 함수의 매개 변수는 bg이며, pch = 21과 같이 마커 채우기 색상을 지정하는 데 사용됩니다.

또한 색상 매핑은 unclass로 훨씬 효율적으로 수행 할 수 있습니다. 예를 들어, 두 수준의 변수를 고려 :

pairs(data, bg=colors)