在使用splom制作的条件散点图矩阵的面板中指定组级别的符号颜色?

时间:2015-04-25 08:08:45

标签: r scatter-plot lattice

如何在使用scatterplot生成的条件splom矩阵的面板中指定组级别的颜色?我可以在密钥中这样做,但我在panel.pairs中找不到符号的参数。键不仅与面板不匹配,分配到组级别的颜色应为male=bluefemale=pink

dput(head(dfSO,20))
structure(list(MHI = c(67460L, 89033L, 61836L, 49853L, 88772L, 
                       105107L, 94744L, 56061L, 49435L, 68027L, 152673L, 56408L, 
                       74493L, 53048L, 62485L, 96712L, 90211L, 81249L, 
                       111576L, 102231L), 
               gender = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
                                    1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L), 
                                  .Label = c("female", "male"), 
                                  class = "factor"),
               happy = c(4, 4, 1, 4, 3, 3, 3, 3,
                         2, 4, 3, 4, 3, 4, 3, 1, 4, 3, 3, 2)),
          .Names = c("MHI", "gender", "happy"), row.names = c(NA, 20L), 
          class = "data.frame")
library(lattice)
super.sym <- trellis.par.get("superpose.symbol") #where I can customize key
splom(dfSO, groups=dfSO$gender, subset=TRUE, panel=panel.superpose,
      key=list(title="By Gender", columns=2,
               points=list(pch=super.sym$pch[1],col=super.sym$col[1:2]),
               text=list(c("male","female"))))

1 个答案:

答案 0 :(得分:1)

在格子图形中更改图形参数时,我最喜欢的方法是将参数传递给 par.settings 参数。这会更改当前图表的图形设置,但不会更改trellis.par.get()找到的全局设置。

(我也会将key参数更改为auto.key。)

您使用superpose.symbol设置在正确的轨道上!分组变量级别(malefemale)的顺序决定将哪种颜色分配给哪个级别。由于级别通常按字母顺序排序,female将获得第一种颜色。

首先,使用所需的图形参数创建一个对象:

myPars <- list(superpose.symbol = list(pch = super.sym$pch[1], col = c("pink", "blue")))

然后通过splom参数将这些传递给par.settings(注意更改的key)。

splom(dfSO, groups = dfSO$gender, subset = TRUE, panel = panel.superpose,
    auto.key = list(title="By Gender", columns=2),
    par.settings = myPars)