2

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

    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) 
              })
4

1 回答 1

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) 
      })
于 2014-05-19T15:17:37.203 回答