2012-09-03 7 views
2

누군가가 격자 줄거리에 텍스트 줄을 추가하는 방법을 알려줄 수 있습니까?
격자 플롯에 텍스트를 추가 하시겠습니까?

내 코드는 다음과 같습니다 여기

xyplot(Neff~Eeff,data=phuong,panel=mypanel, 
     col="black", 
     pch=18,xlab="Energy efficiency (%)", 
     ylab = "Nitrogen efficiency (%)", main="(a)") 

pane=mypanel가 abline를 추가하는 것입니다. Eeff와 Neff 사이의 선형 회귀 방정식을 그 플롯에 추가하려고합니다.

감사합니다.

+2

참조'panel.text', 당신이 당신의'mypanel' 기능에 추가 할 수있는 기능?. – BenBarnes

+0

그것은 나를 위해 작동하지 않습니다. 이것은 mypanel 코드입니다 : mypanel <-function (x, y, ...) { + panel.xyplot (...) + panel.abline (lm (Neff ~ Eeff, data = phuong)) + 패널 . 텍스트 (30,30, 레이블 = tp) +} 제게 도와 주시겠습니까? –

+0

도움을 받기 쉽도록 [재현 가능한 예] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 게시하십시오. – BenBarnes

답변

7

그래서, 재현성 데이터 :

set.seed(1) 

phuong <- data.frame(Eeff = rnorm(100,31)) 
phuong$Neff <- rnorm(100,19.7 + .36*phuong$Eeff) 

# Create the lm object ahead of time 
lm1 <- lm(Neff ~ Eeff, data = phuong) 

# Create the character string that you want to print 
tp <- sprintf("%s=%.1f + %.2f %s", all.vars(formula(lm1))[1], 
    coef(lm1)[1], coef(lm1)[2], all.vars(formula(lm1))[2]) 

# Change the mypanel function to use the lm1 object 
mypanel<-function(x,y,...){ 
    panel.xyplot(x, y, ...) 
    panel.abline(lm1) 
    panel.text(30,33,labels=tp) 
} 

library(lattice) 

# and off we go. 

xyplot(Neff~Eeff,data=phuong,panel=mypanel, 
     col="black", 
     pch=18,xlab="Energy efficiency (%)", 
     ylab = "Nitrogen efficiency (%)", main="(a)") 

enter image description here

+0

안녕하세요 BenBarnes,이 도움에 대해 대단히 감사합니다. 나는 이것과 관련된 또 다른 작은 질문을 가지고있다. 이 경우이 두 변수의 선형 방정식을 추가하는 것입니다. 어떻게해야합니까? 임의의 단어를 추가하고 싶습니다. 감사! –

+0

안녕하세요 @ hn.phuong, 다른 텍스트를 추가하려면'paste (tp, "Thanks!")를 사용하여 이미 만든 경우'tp' 개체를 수정하십시오. 또는 "감사합니다!"를 추가하기 만하면됩니다. 회귀 방정식없이'tp <- "고마워!". 그런 다음'xyplot'을 사용하여 산점도를 다시 만듭니다. – BenBarnes

+0

@ hn.phuong,이 대답으로 문제가 해결되면 답변의 앞부분에 체크 표시가되어있는 것으로 간주하십시오. – BenBarnes

3
library(latticeExtra) 

set.seed(1) 

phuong <- data.frame(Eeff = rnorm(100,31)) 
phuong$Neff <- rnorm(100,19.7 + .36*phuong$Eeff) 

xyplot(Neff ~ Eeff, data= phuong) + 
    layer(panel.ablineq(lm(Neff ~ Eeff, data= phuong), r.sq= TRUE, rot = TRUE)) 

enter image description here

관련 문제