【问题标题】:Add stripplot points to bwplot (Lattice graphics in R)将带状图点添加到 bwplot(R 中的点阵图形)
【发布时间】:2013-10-03 08:14:32
【问题描述】:
##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) 不起作用,那么如何将点叠加到箱线图上?

【问题讨论】:

    标签: r lattice bwplot


    【解决方案1】:

    您可以像这样定义panel 函数:

    library(lattice)
    bwplot(num~type,panel=function(x,y,...){
        panel.bwplot(x,y,...)
        panel.stripplot(x,y,col=cols,...)
    })
    

    【讨论】:

    • 一个很好的答案,尽管bwplot 绘制为“异常值”的点随后将由stripplot 再次绘制。如果使用jitter.data=TRUE 作为条形图,则似乎有两倍的异常值。
    【解决方案2】:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多