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"))
但是,默認情況下,萊迪思只使用七種顏色,正如上面的示例所示。如果有七個以上的組,Lattice會按順序再次循環顏色,從而導致來自不同組的數據具有相同的顏色。我從另一篇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
我不明白是什麼錯誤消息告訴我。
我剛剛意識到我愚蠢地忽略了一個叫做... set()的函數的事實。不過,我很高興我問了這個問題,因爲你設置參數的方式比我剛想到的方式簡單得多。我瀏覽了幫助頁面,但在瞭解了簡單的解釋之後,即使現在查看了「詳細信息」部分,但我發現如果沒有深入研究就很難遵循。謝謝! – Mars
@Mars,是的,我發現格子是一個很好的包裝,我也發現我花了很多時間去理解和使用它的複雜性! – BenBarnes