2012-05-20 3 views
10

저는 비교적 새로운 ggplot2을 사용하고 있습니다. 윤곽에 적절한 레이블을 추가하는 데 문제가 있습니다. 위의 예에서 R : direct.label을 사용하여 특정 윤곽선을 레이블링하는 방법

library(plyr) 
library(ggplot2) 
library(directlabels) 
library(reshape) 
volcano<-melt(volcano) 
v<-ggplot(volcano, aes(x,y,z=z)) 
e<-v + stat_contour(aes(colour=..level..)) 
direct.label(e) 

은 레이블이 적절하게 추가,하지만 난 내 자신을 지정하려고하면 일을 더 복잡하게 : 나는 기본 윤곽 플롯에 레이블을 추가 할 수있는 고전적인 화산 예를 사용

e<-v + stat_contour(aes(breaks=c(160, 170, 180), colour=..level..)) 
direct.label(e) 

이제 윤곽은 내가 제공 한 휴식에 의해 지정되어 있지만, 라벨은 여전히 ​​기본 윤곽의 모든 나타납니다 윤곽 포인트를 휴식. 그래프로 된 윤곽의 레이블 만 어떻게 그 래핑합니까?

관련 문제로, 기본에 포함되지 않은 등고선 레벨의 레이블을 어떻게 표시합니까? 165의 휴식을 말해라.

e<-v + stat_contour(aes(breaks=c(165), colour=..level..)) 
direct.label(e) 

어떤 도움을 주셔서 감사합니다!

+2

그것의 가치는 directlabels 패키지입니다. –

+0

예, 그 점을 지적 해 주셔서 감사합니다. –

+0

이 질문을 다시 게시해야합니까, 아니면 여전히 사람들이보고 있습니까? –

답변

3

나는 쉽게 해결할 수없는 오래된 질문을 보지 못했습니다.

간단한 문제는 stat_contour() 내부의 매핑입니다. 귀하의 호출은 다음과 같아야합니다

v<-ggplot(volcano, aes(x=X1,y=X2,z=value)) # specify the mapping properly 
e<-v + stat_contour(aes(colour=..level..), breaks=c(160, 170, 180)) 
direct.label(e) 
하지 AES 매핑에 포함 된 나누기

및 포함 된 colour=..level...)이 direct.label을 (지적

enter image description here

+4

'ggplot2' 버전'> 2.0.0'과 함께 작동하지 않습니다. – jaimedash

관련 문제