9

coplot在 R 中使用来绘制一些条件图:

coplot(var1 ~ var2 | var3, data=dtb, number=5, overlap=.1, panel=function(x,y, col, pch) {idx = order(x); lines(x[idx], predict(loess(y ~ x))[idx], pch = pch, col = col)})

在这种情况下,如何判断哪个图对应于条件变量的哪个“桶” var3

> dput(dtb)
structure(list(var1 = 1:50, var2 = c(50L, 49L, 48L, 47L, 46L, 
45L, 44L, 43L, 42L, 41L, 40L, 39L, 38L, 37L, 36L, 35L, 34L, 33L, 
32L, 31L, 30L, 29L, 28L, 27L, 26L, 25L, 24L, 23L, 22L, 21L, 20L, 
19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 
6L, 5L, 4L, 3L, 2L, 1L), var3 = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L)), .Names = c("var1", 
"var2", "var3"), row.names = c(NA, -50L), class = "data.frame")
4

1 回答 1

8

显然它是从左到右和从下到上的,这意味着如果你设置它会更容易阅读rows=1

# determine how many levels in var3
num <- length(unique(dtb$var3))

# plot in one row using all levels of var3
coplot(var1 ~ var2 | var3, data=dtb, 
number=num, 
overlap=.1, 
col=rainbow(num), 
type="o",           # plot symbols and lines
cex=2,              # make symbols larger
pch=as.character(c(seq(from=1,to=(num-1)),"T")), # use chars as symbols
rows=1)                                          # as.character not required 
                                                 # due to "T"

在此处输入图像描述

# plot in two rows
coplot(var1 ~ var2 | var3, data=dtb, 
number=num, 
overlap=.1, 
col=rainbow(num), 
type="o",           # plot symbols and lines
cex=2,              # make symbols larger
pch=as.character(c(seq(from=1,to=(num-1)),"T")), # use chars as symbols
rows=2)                                          # as.character not required 
                                                 # due to "T"

在此处输入图像描述

于 2013-01-28T23:47:43.503 回答