2012-05-01 2 views
1

단일 명령문으로 여러 범례를 그릴 수있는 방법은 무엇입니까? 예 : 마지막 네 줄은 하나의 명령에 병합해야여러 범례 플로팅

start <- seq(20,35, 5) 
end <- seq(39,42, 1) 
y <- seq(1,4,1) 
name <- c('a', 'b', 'c', 'd') 
plot(1, xlim=c(5,50), ylim=c(0,5)) 
rect(start, y, end, 1.1:4.1, col="black") 
legend(end[1],y[1], name[1], xjust=0, yjust=0.5) 
legend(end[2],y[2], name[2], xjust=0, yjust=0.5) 
legend(end[3],y[3], name[3], xjust=0, yjust=0.5) 
legend(end[4],y[4], name[4], xjust=0, yjust=0.5) 

. 어떤 도움

+0

흠, 전설이 할 수있는 여러 줄 그래서 궁금합니다. 코드에 의해 생성 된 그림이 정말로 원하는 것과 비슷한 경우'text()'와'rect() '를 사용하여이를 구현할 수 있습니다. –

+0

오, 간단합니다! 텍스트 - 조언을 주셔서 대단히 감사합니다! – biotom

+1

'legend'는 박스 안에 많은 정보를 그리기 위해 설계된 FWIW만으로 여러 개의 범례 상자를 그래프의 다른 위치에 둘 수 있지만 각각의 코드 행은 필요합니다. (이것은 구약입니다 - [randomnmber]가 찾고 있던 레이아웃 사용자가 아닙니다.) –

답변

0

에 미리 감사 할 수 있습니다 (모두 endy의 길이에 1)의 범위 1:4에 인덱스를 사용하여 루프. 이는 R 스타일 sapply를 사용에 for 루프를 사용하여 달성, 이상 할 수 있습니다 : 당신은 당신이 원하는 당신을 제공하기 위해 전설을 남용하려는 경우

sapply(seq_along(y), function(i) { 
    legend(end[i],y[i], name[i], xjust=0, yjust=0.5) 
}) 
+0

답을 약간 넓힐 수 있습니까? 기술적으로는 올바르지 만 OP는 자신이하는 일을 전혀 알지 못할 수도 있습니다. 나는 btw에서 좀 더 자세한 내용을 편집했습니다. –