gpt4 book ai didi

r - 更改 xyplot() 中的背景颜色

转载 作者:行者123 更新时间:2023-12-02 18:32:54 26 4
gpt4 key购买 nike

我试图改变 strip 的背景颜色(它是一个 6 x 6 矩阵,我有 6 个 strip 颜色存储在名为 cola 的向量中)。我尝试结合在互联网上找到的东西,但我得到的结果完全偏离了目标:现在我得到的只是垂直条全是黄色,水平条全是红色:(

library(lattice)
library(latticeExtra)
B<-structure(list(ylab = c(0, 0, -1, -1, -1, -1, 0, 0, -1, -1, -1,
-1, 1, 1, 0, 0, 0, -1, 1, 1, 0, 0, 1, -1, 1, 1, 0, -1, 0, -1,
1, 1, 1, 1, 1, 0), xlab = c(0, -1.02679909743483, -4.31389840050087,
-4.72016163070677, -3.82773068058066, -4.95060796675797, 1.02679909743483,
0, -3.28709930306604, -3.69336253327194, -2.80093158314584, -3.92380886932314,
4.31389840050087, 3.28709930306604, 0, -0.406263230205904, 0.486167719920203,
-0.636709566257106, 4.72016163070677, 3.69336253327194, 0.406263230205904,
0, 0.892430950126108, -0.230446336051202, 3.82773068058066, 2.80093158314584,
-0.486167719920203, -0.892430950126108, 0, -1.12287728617731,
4.95060796675797, 3.92380886932314, 0.636709566257106, 0.230446336051202,
1.12287728617731, 0), zlab = c(1, 0.435981356312883, 1.28746578953454e-08,
1.64728897189548e-09, 9.04719004157784e-08, 1.22124532708767e-15,
0.435981356312883, 1, 2.30452944283144e-07, 1.23923277972615e-07,
1.38063360011209e-06, 7.7715611723761e-16, 1.28746578953454e-08,
2.30452944283144e-07, 1, 0.654543666603895, 0.608788895482761,
3.33066907387547e-16, 1.64728897189548e-09, 1.23923277972615e-07,
0.654543666603895, 1, 0.0429030453016164, 0, 9.04719004157784e-08,
1.38063360011209e-06, 0.608788895482761, 0.0429030453016164,
1, 4.22994972382185e-14, 1.22124532708767e-15, 7.7715611723761e-16,
3.33066907387547e-16, 0, 4.22994972382185e-14, 1), g1 = structure(c(1L,
2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L,
6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L,
4L, 5L, 6L), .Label = c("1", "2", "5", "6", "7", "8"), class = "factor"),
g2 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L,
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L), .Label = c("1",
"2", "5", "6", "7", "8"), class = "factor")), .Names = c("ylab",
"xlab", "zlab", "g1", "g2"), row.names = c(NA, -36L), class = "data.frame")
mycol<-c("light grey", "light grey", "purple", "purple", "purple", "purple",
"light grey", "light grey", "purple", "purple", "purple", "purple",
"light green", "light green", "light grey", "light grey", "light grey",
"purple", "light green", "light green", "light grey", "light grey",
"light green", "purple", "light green", "light green", "light grey",
"purple", "light grey", "purple", "light green", "light green",
"light green", "light green", "light green", "light grey")

mycola <- rainbow(6)


useOuterStrips(bwplot(~B$ylab|B$g1*B$g2,ylab="",xlab="",as.table=TRUE, par.settings=list(strip.background=list(col=mycola)),panel=function(...,bg){
panel.fill(col=mycol[panel.number()])
},strip = function(..., bg) {
strip.fill=col[which.packet()]
},scale=list(draw=FALSE)))

最佳答案

这段代码(根据我对 this SO question 的回答快速改编)可以帮助您找到解决方案。 (我有兴趣了解是否/如何调整它以在每个 strip 中打印文本)。

需要注意的一点是,自定义的 strip 函数需要直接传递给 useOuterStrips(),而不是传递给 bwplot() 的嵌套调用。

# Create a function to be passes to "strip=" argument of xyplot
myStripStyle <- function(which.panel, factor.levels, ...) {
panel.rect(0, 0, 1, 1,
col = bgColors[which.panel],
border = 1)
## This call to panel.text() commented out because it does not
## work as I would have expected/hoped it to
# panel.text(x = 0.5, y = 0.5,
# font=2,
# lab = factor.levels[which.panel],
# col = "black")
}

mycola <- rainbow(6)
bgColors <- mycola

useOuterStrips(bwplot(~B$ylab|B$g1*B$g2,ylab="",xlab="",as.table=TRUE,
panel=function(...,bg){
panel.fill(col=mycol[panel.number()])
},
scale=list(draw=FALSE)),
strip = myStripStyle,
strip.left = myStripStyle)

enter image description here

关于r - 更改 xyplot() 中的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9746597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com