R은

2014-12-17 4 views
2

I 데이터 집합을 가지고R은

a<-c(1,2,3,4,5,6,7,8,9,10) 
b<-c(2,2,2,2,4,5,6,8,4,1) 
c<-c("red","red","red","blue","blue","blue","orange","orange","orange","orange") 

data<-data.frame(a=a,b=b,c=c) 
지금 각 그룹이 다른 색 갖는 그래프의 데이터를 플롯 할

:

plot(a[c=="red"],b[c=="red"],col="red",xlim=c(min(a),max(a)),ylim=c(min(b),max(b))) 
points(a[c=="blue"],b[c=="blue"],col="blue") 
points(a[c=="orange"],b[c=="orange"],col="orange") 

이것 잘 작동합니다. 그러나 30 개 그룹이 있다면 코드 작성 작업이 번거로워집니다. R이 자동으로 그래프를 그려서 다른 그룹에 다른 색상을 줄 수 있도록 코드를 작성하는 더 좋은 방법이 있는지 궁금합니다.

또한 그래프에 범례를 빠르게 표시 할 수 있을지 궁금합니다.

도움 주셔서 감사합니다.

답변

2

이 시도 : 색상

with(data,plot(a,b,col=c)) 

col 인수 plot()에서 스탠드. 여기에는 원하는 색상의 벡터가 포함될 수 있습니다.

또한 색상 그룹 관계가 중요하지 않은 경우 색상을 정의하기 위해 열을 만들 필요가 없습니다. 예를 들어,보다 의미있는 컬럼과 같은 열 c을 만들 수 :

a<-c(1,2,3,4,5,6,7,8,9,10) 
b<-c(2,2,2,2,4,5,6,8,4,1) 
c<-c(rep('Group1',3),rep('Group2',3),rep('Group3',4)) 

data<-data.frame(a=a,b=b,c=c) 

는 그런 음모, 사용 :

legend('topleft',legend = levels(data[,'c']),col=1:nlevels(data[,'c']),pch=1) 
+0

정말 고맙습니다. 많이 감사했습니다 –

1

ggplot2

을 시도해보십시오

with(data,plot(a,b,col=c)) 

전설을 추가하려면

library(ggplot2) 
ggplot(data=data, aes(x=a, y=b, colour=c)) + geom_point() 
+0

나는 이것을 힘들게 실행했습니다. 이'ggplot (data = NULL, aes (x = a, y = b, color = c)) + geom_point()'가 대신 작동했습니다. – Steven

+0

정말 고마워요! –