【问题标题】:Control legend colors in tactile::bwplot2在 tactile::bwplot2 中控制图例颜色
【发布时间】:2018-10-08 01:40:08
【问题描述】:

在下面这个带有触觉包的可重现示例中,自动为箱线图和相应的图例选择颜色。但是,我想自定义箱线图和图例的颜色。

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)

但是,当我尝试这样做时,箱线图中的颜色发生了变化,但图例颜色没有:

我在这里创建一个新的配色方案:

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)

如何强制图例颜色与coolNewPars 颜色匹配?

【问题讨论】:

  • 获取大陆颜色的代码:gdURL stat.ubc.ca/~jenny/notOcto/STAT545A/examples/gapminder/data/…" (continentColors

标签: lattice bwplot


【解决方案1】:

问题是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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多