2013-05-17 2 views
2

당신이 날이 문제를 해결하는 데 도움이 시겠어요하나의 기능으로 여러 개인을 플롯 하시겠습니까? 나는 데이터베이스 아래와 같이이</p> <p>:

Animal Milk Age 
1 11.96703591 1 
1 13.41236333 2 
1 14.85769075 3 
1 16.30301817 4 
2 17.74834559 1 
2 19.08465881 2 
2 20.42097204 3 
2 14.66094662 4 
2 14.70197368 5 
3 14.74300075 1 
3 14.78402781 2 
3 14.82505488 3 
3 14.86608194 4 
3 14.90710901 5 

내가 나이에 비해 우유 사이의 플롯을 만들고 싶어, 그래서 함수 그림을 (우유를 사용 ~ 나이 , data = mydata) 내 질문은 어떻게 하나의 기능을 사용하여 각 개인에 대해 동일한 음모 (Milk ~ Age)를 만들 수 있습니까? 나는 약 200 마리의 동물을 가지고 있고, 200 번을 달려서 200 개의 곡선을 만들어야하기 때문에.

감사 푸옹

답변

2

한 가지 방법은 라이브러리 ggplot2을 사용하고 각 동물에 대한 개별 측면을하는 것입니다. 동물이 많으므로 ncol= 또는 nrow=facet_wrap()으로 변경하면 더 잘 볼 수 있습니다.

library(ggplot2) 
ggplot(df,aes(x=Age,y=Milk))+geom_point()+facet_wrap(~Animal) 

enter image description here

+0

안녕하세요, 각각의면을 별도의 PDF 파일로 작성하는 방법이 있습니까? pls 내 대답 아래에 OP의 잘못 배치 된 코멘트를 참조하십시오 –

1

다음 코드는 고유 Animal 값을 가질만큼 플롯을 작성하고 작업 디렉토리에 다른 PDF 파일에 저장한다 : I가

invisible(by(df, df$Animal, function(tmpdf) { 
    pdf(paste0("plot",tmpdf$Animal[1],".pdf")) 
    plot(Milk~Age, data=tmpdf, main=tmpdf$Animal[1]) 
    dev.off() 
})) 
+0

나는 두 번째 제안을 시도하지 않은,하지만 내 생각에 맞는 것 같아요. 나는 집에 돌아와 그것을 시험해 볼 것이고, 그것이 효과가 있는지 알 것이다. 고마워! –

0

말할 것 ggplot2 패키지의 ggplot을 사용하십시오.

ggplot(df,aes(x=Age,y=Milk, color=Animal))+geom_point() 

edit1 : 실제로 이것은 200 마리의 동물에 대한 선명도가 떨어질 것입니다. 이 모든 데이터 포인트를 하나의 그래프에 나타내거나 200 개의 그래프에 분산 시키길 원했습니까? 후자의 경우 Didzis에 동의합니다

+0

안녕하세요, Didzis, 나는 당신에게 접근 해 보았습니다. 그리고 그것은 제 생각에 맞습니다. 감사. 그러나, 나는 각 동물에 대한 음모를 각 PDF 파일/페이지 또는 이미지로 분리하는 방법에 대한 문제가 여전히 있습니다. 제가 200 개가 넘는 동물을 가지고 있기 때문에 동일한 pdf 페이지에 넣으면 너무 작습니다. –

+0

다른 답변으로 게시하려고 한 것 같습니다. 하지만 내 관점에서 각 동물에 대한 새로운 pdf를 생성하려면 루프를 작성해야 할 수도 있습니다 –

+0

@ hn.phuong 각 동물의 pdf가 별도로 필요하면 facet_wrap()을 사용할 필요가 없지만 ggplot() 또는 루프를 사용하여 쥬바 응답에 적응해야합니다. –

관련 문제