항상 R 코드를 가능한 유연하게하고 싶습니다. 현재 필자는 매개 변수 델타를 기준으로 비교할 3 개의 (잠재적으로 더 많은) 커브를 가지고 있지만 델타의 값을 어디에서나 (또는 심지어 피할 수있는 경우 얼마나 많은 값을) 하드 코드하고 싶지는 않습니다.R 범례 변수 대체
델타 값에 대한 그리스어와 변수 대체를 모두 포함하는 범례를 만들기 위해 각 범례 항목의 형식은 'delta = 0.01'입니다. 여기서 델타는 그리스어이고 0.01은 변수로 결정됩니다. paste
, substitute
, bquote
및 expression
의 다양한 조합이 시도되었지만 완성 된 범례에 일부 축 어적 코드가 남았거나 항상 '델타'를 기호 형식에 넣지 못했습니다.
delta <- c(0.01,0.05,0.1)
plot(type="n", x=1:5, y=1:5) #the curves themselves are irrelevant
legend_text <- vector(length=length(delta)) #I don't think lists work either
for(i in 1:length(delta)){
legend_text[i] <- substitute(paste(delta,"=",D),list(D=delta[i]))
}
legend(x="topleft", fill=rainbow(length(delta)), legend=legend_text)
하나의 항목에 대한 legend=substitute(paste(delta,"=",D),list(D=delta[1])
작품 이후로, 나는 또한 델타의 길이를 고정하는 '반 하드 코드'버전을 일을 시도했다 :
legend(x="topleft", fill=rainbow(length(delta)),
legend=c(substitute(paste(delta,"=",A), list(A=delta[1])),
substitute(paste(delta,"=",B), list(B=delta[2])),
substitute(paste(delta,"=",C), list(C=delta[3])))
)
을하지만, 이것은 이전과 같은 문제가 있습니다 .
내가 할 수있는 방법이 있습니까, 아니면 델타의 각 업데이트와 함께 수동으로 코드를 변경해야합니까?