我正在寻找下图中顶部的一个图例,它描述了多边形和框架中的蓝点。
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 :(得分: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)
})