BWR绘图区顶部的绘图框
我用的是我的一些想法。我想在格子顶部画一个框BWR绘图区顶部的绘图框,r,R,我用的是我的一些想法。我想在格子顶部画一个框bwclot 我想将提供的解决方案与lattice bwplot上的箱线图结合起来。理想纯格点解 样本数据: rdata <- data.frame(y=rnorm(1000,2,2),v1=rnorm(1000,1,1),v2=rnorm(1000,3,3), v3=rnorm(1000,4,4),v4=rnorm(1000,5,5),v5=rnorm(1000,3,3)) 如何在latticebw
bwclot
我想将提供的解决方案与lattice bwplot上的箱线图结合起来。理想纯格点解
样本数据:
rdata <- data.frame(y=rnorm(1000,2,2),v1=rnorm(1000,1,1),v2=rnorm(1000,3,3),
v3=rnorm(1000,4,4),v4=rnorm(1000,5,5),v5=rnorm(1000,3,3))
如何在latticebwplot
中执行相同操作?有可能吗?谢谢
仅为bwplot提供一些起点:
library(lattice)
library(gridExtra)
plot1 <- lapply(1:2, function(i) {bwplot(~rdata[,i],rdata)})
plot2 <- lapply(1:3, function(i) {bwplot(~rdata[,i],rdata)})
plot3 <- lapply(1:4, function(i) {bwplot(~rdata[,i],rdata)})
print(do.call(grid.arrange, c(plot1,plot2,plot3)))
库(晶格)
图书馆(gridExtra)
plot1在这里,我们可以创建一个帮助函数,该函数可以生成一个面板函数,我们可以使用该函数将彩色框添加到框图中
getPanelBoxCol<-function(cuts, colors=c("red","green","yellow"), yat=1.5) {
require(grid)
cuts<-sort(unique(c(0, cuts, 1)))
function(x, y, ...) {
xbr <- quantile(x, cuts)
xx<-rowMeans(embed(xbr,2))
yy<-rep(yat, 3)
grid.rect(x=xx,
y=yy,
width=diff(xbr),
height=.1,
gp=gpar(fill=colors),
default.units="native"
)
}
}
在这里,我们还为y
轴增加了一点空间,以容纳长方体。这导致
简直太神奇了!非常感谢。
getPanelBoxCol<-function(cuts, colors=c("red","green","yellow"), yat=1.5) {
require(grid)
cuts<-sort(unique(c(0, cuts, 1)))
function(x, y, ...) {
xbr <- quantile(x, cuts)
xx<-rowMeans(embed(xbr,2))
yy<-rep(yat, 3)
grid.rect(x=xx,
y=yy,
width=diff(xbr),
height=.1,
gp=gpar(fill=colors),
default.units="native"
)
}
}
panel.boxcol<-getPanelBoxCol( c(0, .25, .6, 1) )
rdata<-data.frame(
y=rnorm(100,2,2)
)
bwplot(~y,rdata,
prepanel=function(x,y,...) {
list(ylim=c(.5, nlevels(y)+.6), xlim=lattice:::scale.limits(x))
},
panel=function(x,y,...) {
panel.bwplot(x,y,...)
panel.boxcol(x,y,...)
},
scales=list(y=list(draw=F))
)