R中的coplot - 如何判断哪个情节是哪个

时间:2013-01-28 18:22:35

标签: r plot loess

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

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

1 个答案:

答案 0 :(得分: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"

enter image description here

# 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"

enter image description here