lattice - 在 tactile::bwplot2 中控制图例颜色
问题描述
在下面这个带有触觉包的可重现示例中,自动为箱线图和相应的图例选择颜色。但是,我想自定义箱线图和图例的颜色。
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 颜色匹配?
解决方案
问题是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)
推荐阅读
- python - 将元组的值加在一起
- java - Android Studio 上的 Java 计算器应用程序无法正常运行
- html - 带有弹性包装的响应式图像
- python - 如何根据列的百分位数从 DataFrame 中采样?
- azure - Azure DevOps - 如何创建个人访问令牌 (PAT) 以便为其他用户显示?
- c++ - 带有 Xcode 生成器的特定于配置的 add_custom_command
- git - ./.git-rewrite 未完成的 git filter-branch 尝试后的文件
- sql - 如何在 postgres 中删除具有匹配值的 hstore 对
- kubernetes - nginx-ingress 在谷歌云 kubernetes 集群上响应“默认后端 - 404”
- amazon-web-services - 在 CloudFormation 用户数据中读取 AWS 机密