R Lattice:堆叠/叠加的bwplot与组

时间:2018-03-27 17:42:01

标签: r plot lattice

我非常接近于制作我想要的东西。

vcDeciles <- ceiling(runif(100,1,10))
vcY <- runif(100,0,10)
vcPlotGroups <- sample(c("Pre","Post","Both"),100,1)
vcPlotColors <- 1:length(levels(as.factor(vcPlotGroups)))

print(bwplot(vcY~vcDeciles,ylim=c(min(vcY),max(vcY)),horizontal=F,main="test"
                                       ,groups=vcPlotGroups
                                       ,col=vcPlotColors
                                       ,panel=function(x,y,...) {panel.superpose(x,y,...,panel.groups=function(x,y,col,...) {
                                         panel.bwplot(x,y,col=col,...)
                                         panel.abline(lm(y~x),col.line=col)})}
                                       ,key=list(space="top",text=list(levels(as.factor(vcPlotGroups)),lines=list(col=vcPlotColors,lwd=6)))))

问题:

1)图例中没有显示颜色。基于其他正在运作的情节,(&#34;两者&#34; =黑色;&#34;发布&#34; =红色,&#34;前&#34; =绿色)

2)&#34; Post&#34;的填充颜色组不应该是浅蓝色,而是黑色。 abline使用正确的颜色。

1 个答案:

答案 0 :(得分:1)

对于您的关键问题,我认为您只是有一个括号匹配问题。然后我认为改变箱形图颜色的最简单方法就是将fill=传递给面板功能。例如

bwplot(vcY~vcDeciles,ylim=c(min(vcY),max(vcY)),
  horizontal=F,
  main="test", 
  groups=vcPlotGroups,
  col=vcPlotColors, 
  panel=function(x,y,...) {
    panel.superpose(x,y,...,panel.groups=function(x,y,col,fill,...) {
               panel.bwplot(x,y,col=col,fill=col, ...)
               panel.abline(lm(y~x),col.line=col)}
    )
  },
  key=list(space="top",
            text=list(levels(as.factor(vcPlotGroups))),
            lines=list(col=vcPlotColors,lwd=6)),
  par.settings = list(superpose.polygon=list(color="black"))
)

将返回

enter image description here