2013-08-21 5 views
0

이 단순화 된 버전이므로주의 (따라서 내 이전 게시물의 중복)하십시오플롯이 개 크기 벡터 길이는

https://stackoverflow.com/questions/18358694/xyplot-2-separate-data-frame-lengths

그것은 잘 너무 많은 정보를 포함하는 것이 될 수있다, 그러나 아주 기초가 물었다. 그래서 여기에 다시

:

나는 (만 xyplot하시기 바랍니다) xyplot 서로 다른 길이의 2 열을 음모하고 싶습니다.

데이터 : 나는 (확률값 ~ VAR1)이 처음으로 꾸몄다 "데이터"의 줄거리에 길이 20의 긴 (VAR2) 벡터를 그릴 것 어떻게

Data <- data.frame(var1=rnorm(10,0,1),prob=seq(0.023,0.365,length=10)) 
Long <- data.frame(var2=rnorm(20,2,3)) 

.

+0

왜 이전 질문을 편집하지? 또는 조금 더 기다려 답변을 얻으시겠습니까? 이전 질문은 불과 2 시간 전입니다. – ialm

+0

@ialm. 예, 이것이 내가 더 긴 버전을 보관하는 이유입니다. 물론 2 시간 밖에 안되지만 다른 곳에서 짧은 질문을하는 것이 더 좋을 수도 있습니다. – Maximilian

+0

'Long'에서'var2'와 함께 갈 prob2 변수가 있습니까? –

답변

1

당신은 전화에 별도의 변수로 Long$var2을 통과 한 후 Data$prob의 값을 보간 xyplot하는 전화 내부 approx()를 사용할 수 있습니다. 사용자 정의 프리 팹 플롯이 한계를 조정합니다.

lattice::xyplot(prob ~ var1, data = Data, z = Long$var2, 
       xlab = "Var1, Var2", 
       prepanel = function(x, y, z, ...) { 
        list(xlim = range(x, z), 
         ylim = range(y)) 
       }, 
       panel = function(x, y, z, ...) { 
        b <- approx(y, n = length(z))$y 
        panel.xyplot(x, y, ...) 
        panel.xyplot(z, b, col = "orange", ...) 
       }) 

Imgur

편집 :는 사실, 그냥 먼저 데이터를 재편하는 것이 훨씬 청소기입니다.

dd <- rbind(data.frame(var = "var1", 
         val = Data$var1, 
         prob = Data$prob), 
      data.frame(var = "var2", 
         val = Long$var2, 
         prob = approx(Data$prob, n = 20)$y)) 

xyplot(prob ~ val, data = dd, groups = var, auto.key = TRUE) 

Imgur

+0

감사합니다. 시간이 조금 있으면 확인하겠습니다. – Maximilian