##Example data to illustrate problem:
type=c("grp1","grp2","grp1","grp3","grp3","grp3","grp4")
num=c(1,1,2,4,3,5,1)
cols=c(rep("red",5),"green","red")
library(lattice)
bwplot(num~type)
par(new=T)
stripplot(num~type,col=cols)
我喜欢方框图显示的附加信息,但我需要条形图中彩色点传达的信息。显然par(new = T)不起作用,那么如何将点叠加到箱形图上呢?
答案 0 :(得分:2)
您可以像这样定义panel
函数:
library(lattice)
bwplot(num~type,panel=function(x,y,...){
panel.bwplot(x,y,...)
panel.stripplot(x,y,col=cols,...)
})
答案 1 :(得分:0)
agstudy的答案非常好,但正如我在评论中指出的那样,bwplot绘制的任何异常值也将由stripplot绘制,这可能会让人感到困惑。
请注意,如果您使用jitter.data=TRUE
作为stripplot
的选项,这只是一个问题,否则重复的点会直接在彼此之上绘制,而您永远不会知道它们在那里。如果数据有异常值,并且您使用了jitter.data=TRUE
,那么您会看到两倍的异常值。
以下方法会抑制bwplot
中的异常值以避免此问题:
bwstrip <- function(x,y,...){
panel.stripplot(x,y,col=cols,do.out=FALSE,jitter.data=TRUE,...)
panel.bwplot(x,y,...)
}
bwplot(lobe.depths,panel=bwstrip)