0

使用 时groups,Lattice 为每个组赋予不同的颜色。例子:

df <- data.frame(x=1:56, y=rnorm(56), class=1:14) # create some data
xyplot(y ~ x, groups=class, data=df, type="l", auto.key=list(space="right"))

但是,默认情况下,Lattice 仅使用七种颜色,如运行上面的示例所示。如果您有超过 7 个组,Lattice 会按顺序再次循环显示颜色,导致来自不同组的数据具有相同的颜色。我从另一篇 Stackoverflow 文章中了解到,这些颜色存储在trellis.par.get()$superpose.symbol$col. 我想让组颜色列表更长(不必在绘图调用中明确指定颜色)。但是,我不知道如何更改此颜色列表。(这可能是由于对 Lattice 语法或语义的一些基本事实的无知。)这说明了问题:

> trellis.par.get()$superpose.symbol$col
[1] "#0080ff"   "#ff00ff"   "darkgreen" "#ff0000"   "orange"    "#00ff00"   "brown"    
> class(trellis.par.get()$superpose.symbol$col)
[1] "character"
> mycolors <- c(trellis.par.get()$superpose.symbol$col, "navyblue", "purple", "gold")
> trellis.par.get()$superpose.symbol$col[1:10] <- mycolors
Error in trellis.par.get()$superpose.symbol$col[1:10] <- mycolors : 
  invalid (NULL) left side of assignment

我不明白该错误消息告诉我什么。

4

1 回答 1

4

您应该使用trellis.par.set()设置格子图形参数。所以:

trellis.par.set(superpose.symbol = list(col = mycolors))

请记住,这只会更改当前活动设备的设置,因此如果您创建新的图形设备,则必须重置颜色设置。

?trellis.par.get此外,这在“详细信息”部分的帮助页面中进行了说明。请在那里看看。

于 2012-10-19T05:25:58.160 回答