2013-04-17 2 views
1

나는 여전히 R에 익숙하고 음모를 꾸미고있다. 나는 그들은 모두 내가하고 싶은 것입니다카테고리 별 컬러 텍스트 라벨을 사용하여 R에서 산점도를 만드는 방법은 무엇입니까?

df <- data.frame(c("Class1","Class2","Class3","Class4","Class5"), c("A","B","C","B","A")) 

의 다른 곳에 저장되어있는 범주 레이블 두 열의 단일 데이터 프레임과 관련된

matrix <- matrix(c(0,1,2,3,4,4,3,2,1,0), 5, 2) 

의 변화 몇 가지 차원 행렬이 첫 번째 열의 점 레이블이 dfmatrix의 산점도를 만들고 두 번째 열의 범주 레이블에 색상으로 코드화하십시오. 예를 들어, A=red, B=blue을 지정해야합니다. 그리고 나서 scatterplot은 Class1Class5과 연결된 점을 빨간색으로 표시하고, Class2Class4은 파란색으로 표시해야합니다. 클래스 열과 연관된 텍스트 레이블을 사용하여 matrix을 플롯 할 수 있지만 색상 조작을 파악할 수는 없습니다. 도움을 주시면 미리 감사드립니다.

답변

4
A="red"; B="blue" 
text(x= matrix[,1], y= matrix[,2], labels=df[,1], 
     col=c(A, B, "black")[ as.numeric(df[,2]) ]) 
:), geom_text()과 함께하고 label 장소, 텍스트와 플롯을 만들고 싶어 나타냅니다

기본 연습은 색상 벡터를 작성한 다음 "["을 통해 선택 벡터를 실행하는 것입니다.

+0

정말 대단합니다. 고마워요. – amurphy

+0

몇 가지 이유로 ggplot 메서드가 더 좋아 지지만 주로 범례가 자동으로 추가됩니다. –

+0

? 요청한 것을하지 않았더라도? –

0

이것은 쉽게 설치할 수있는 ggplot2을 사용하여 쉽게 수행 할 수 있습니다.

colnames(matrix) = c("x", "y") 
colnames(df) = c("Class", "Category") 
d = cbind(matrix, df) 

그런 ggplot를 사용하여, 당신은 x, y, col (컬러에 관심이있는 새로운 데이터 프레임의 열을 제공 : 첫째도 유용한 이름을 그들에게주는 하나 개의 큰 데이터 프레임에 모두 넣어

library(ggplot2) 
g = ggplot(d, aes(x=x, y=y, col=Category, label=Class)) + geom_text() 
print(g) 

enter image description here

+0

감사합니다. 이것은 대단히 도움이되며 완벽하게 작동합니다! – amurphy