首页 文章

如何更改莱迪思图形默认组颜色?

提问于
浏览
0

使用 groups 时,莱迪思为每个组提供不同的颜色 . 例:

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

但是,默认情况下,莱迪思只使用七种颜色,因为运行上面的例子会显示 . 如果您有超过七个组,则莱迪思按顺序再次循环显示颜色,从而使不同组的数据具有相同的颜色 . 我从另一篇Stackoverflow文章中了解到,这些颜色存储在 trellis.par.get()$superpose.symbol$col 中 . 我想让组颜色列表更长(无需在绘制调用时明确指定颜色) . 但是,我无法弄清楚如何更改此颜色列表 . (这可能是由于对莱迪思语法或语义的一些基本事实的无知 . )这说明了问题:

> 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

我不明白该错误消息告诉我的是什么 .

1 回答

  • 4

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

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

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

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

相关问题