格子直方图的图例

时间:2013-07-19 11:15:11

标签: r histogram lattice

我正在寻找下图中顶部的一个图例,它描述了多边形和框架中的蓝点。

    require(lattice)
    grid<-data.frame(F=rnorm(1000),T=rep(c("A","B"),each=500))
    histogram(~F|T, data=grid, params=c(1,2)
            ,layout=c(2,1), xlab = "",ylab="",as.table=TRUE
            #,par.settings = list(superpose.polygons = list(col=c(4)))
            #,key = list(polygons = list(col=c(4)),space="top",columns=1
            #           ,text = list("text")
            #            )
            #, auto.key = list(polygons = TRUE,title = "Survived", columns = 1)
            ,type="density",breaks=40
            ,panel=function(x,params,...){
               panel.grid()
               panel.histogram(x,...,col=8)     
               lab<-format(params[panel.number()], digits=2, nsmall=2)
               panel.points(params[panel.number()],0,pch=16,col=4)
               panel.text(1, 0.05, labels = lab) 
              })

1 个答案:

答案 0 :(得分:0)

注意,迟到的答案。

这方面的诀窍是你有2个文本标签(一个用于条形,另一个用于点),但你只有一个矩形(条形)和图例中的一个点。您可以通过向text=参数添加两个key=参数来完成此工作。 Lattice会按照您在代码中列出的顺序将元素添加到密钥中。

require(lattice)
grid<-data.frame(F=rnorm(1000),T=rep(c("A","B"),each=500))
histogram(~F|T, data=grid, params=c(1,2)
      ,layout=c(2,1), xlab = "",ylab="",as.table=TRUE


      ,key=list(space="top",          #puts key on top of panels
            rectangles=list(col=8),   #draws gray box
            text=list("gray bars"),   #label box
            points=list(col=4,pch=16), #draw blue point
            text=list("blue dots")    #label point
      )


      ,type="density",breaks=40
      ,panel=function(x,params,...){
        panel.grid()
        panel.histogram(x,...,col=8)     
        lab<-format(params[panel.number()], digits=2, nsmall=2)
        panel.points(params[panel.number()],0,pch=16,col=4)
        panel.text(1, 0.05, labels = lab) 
      })