Управление легендами цветов в тактильном :: bwplot2 - PullRequest
0 голосов
/ 08 октября 2018

В этом воспроизводимом примере ниже с тактильным пакетом цвета автоматически выбираются для коробочных сюжетов и соответствующей легенды.Тем не менее, я хотел бы настроить цвета коробочных сюжетов и легенды.

tactile::bwplot2(runif(1000) ~ cut(runif(1000), c(0,0.3,0.6,1)) | as.factor(c(1,2,3)), 
             groups = sample(1:2, 1000, replace = TRUE), auto.key = TRUE)

boxplots with default colors

Однако, когда я попытался сделать это, цветав ящиках изменились, но цвета легенды не изменились:

Здесь я создаю новую цветовую схему:

coolNewPars <- list(superpose.symbol = list(pch = 21, cex = 2, col = "gray20",
                           fill = continentColors$color))

А затем снова строю диаграммы, с помощью auto.key для размещения легенды.содержимое в 2 столбца и par.settings, установленный в coolNewPars:

tactile::bwplot2(runif(1000) ~ cut(runif(1000), c(0,0.3,0.6,1)) | as.factor(c(1,2,3)), 
             groups = sample(1:2, 1000, replace = TRUE), auto.key = list(columns = 2),par.settings = coolNewPars)

boxplots with coolNewPars colors

Как заставить цвета легенды соответствовать цветам coolNewPars?

1 Ответ

0 голосов
/ 11 октября 2018

Проблема в том, что lattice::panel.superpose() использует trellis.get.par("superpose.symbol") для различения групп, в то время как функция, которая рисует клавишу, использует "superpose.polygon" или что-то в этом роде.

В любом случае, вот решение (хотя оно неудобное):

coolNewPars <- list(superpose.polygon = list(col = 2:3),
                    superpose.symbol = list(fill = 2:3))

tactile::bwplot2(runif(1000) ~ cut(runif(1000), c(0,0.3,0.6,1)) | as.factor(c(1,2,3)), 
                 groups = sample(1:2, 1000, replace = TRUE), 
                 auto.key = TRUE,
                 par.settings = coolNewPars)

enter image description here

...