0

皆さん、

(ランダム) データの散布図に格子を使用する次の例があります。私がやろうとしているのは、3 つの変数をそれぞれ新しい行に貼り付けることです。問題は、添え字が必要な 3 番目の変数に見られます。

以下のコードは、説明したのと同じ問題を生成します。

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")
              }
))
4

2 に答える 2

1

R に行の高さを計算させたい場合の代替手段は、非表示の grid.table を使用することです。

library(gridExtra)
multiline_text <- function(label){
 grid.table(as.matrix(strsplit(label, "\\n")[[1]]), parse=TRUE,
                  theme=theme.list(gpar.corefill = gpar(fill = NA, col = NA),
                                   core.just = "center"))
}
txt <- "First~line \n italic('see that slant') \n integral(f, a, b)"
grid.newpage() ; multiline_text(txt)  

ここに画像の説明を入力

于 2013-05-16T10:36:19.057 に答える
0

@baptiste から提案されているように、コードを変更して、改行と式が混在しないようにすることができます。

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", sep=""), 0.60, .90, gp=gpar(col="black", fontsize=11), just="left")
                grid.text(bquote(r[c] == .(rc)), 0.60, .86, gp=gpar(col="black", fontsize=11), just="left")
              }
))

他の選択肢がある場合は、喜んでそれらを参照してください。

于 2013-05-16T08:59:32.113 に答える