我有以下示例,其中我使用晶格爲(隨機)數據的散點圖。我想要做的是粘貼三個變量,分別換行。問題發現與第三個變量需要有一個下標。
下面發現會產生所描述的相同問題的代碼:
library(lattice)
library(grid)
set.seed(20)
a <- data.frame(par1=runif(10, min=1, max=100),par2=runif(10, min=1, max=100))
print(xyplot(par1 ~ par2,
data=a,
panel = function(x,y){
n <- length(x)
r <- round(cor(x, y, use="pairwise.complete.obs"), 2)
rc <- 1
panel.abline(a=0, b=1, lty=2, col="grey59", lwd=1.5)
panel.xyplot(x,y, type = c("p", "g"), col="grey29", cex=0.75)
panel.abline(lm(y ~ x), col = "red", lwd=1.5)
grid.text(paste("n=",length(x), "\n", "r=", r, "\n", expression(paste(r[c])), "=", rc, sep=""), 0.60, .90, gp=gpar(col="black", fontsize=11), just="left")
}
))
我不使用點陣多,但'貼(...,表達式(paste(r [c])),...)似乎是一個非常奇怪的操作。 – Frank
確實很奇怪。我只寫下它來表明表達式(paste(r [c]))實際上是在自己的工作,但是當與paste()結合使用時,它不會。感謝回覆。 –
正如'?plotmath'中所解釋的那樣,不能混用換行符和表達式。這裏最好的選擇是有兩個單獨的調用'grid.text',一個用於文本,一個用於plotmath表達式slighlty在y中移動。 – baptiste