2013-07-19 45 views
2

我正在尋找在下面的圖a的頂部的一個圖例,它描述了多邊形和幀中的藍點。點陣直方圖的圖例

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

回答

0

注意,遲到的答案。

與此相關的技巧是,你有2個文本標籤(一個用於酒吧和其他點),但你只有一個矩形(酒吧)和圖例中的一個點。您可以通過在您的key=參數中添加兩個text=參數來完成此工作。 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) 
     })