我想使用 r 的 lattice 包叠加一个直方图和一个表示累积分布函数的 xyplot。
我尝试使用自定义面板功能来完成此任务,但似乎无法做到这一点——我认为一个情节是单变量的,一个情节是双变量的。
这是我要垂直堆叠的两个图的示例:
set.seed(1)
x <- rnorm(100, 0, 1)
discrete.cdf <- function(x, decreasing=FALSE){
x <- x[order(x,decreasing=FALSE)]
result <- data.frame(rank=1:length(x),x=x)
result$cdf <- result$rank/nrow(result)
return(result)
}
my.df <- discrete.cdf(x)
chart.hist <- histogram(~x, data=my.df, xlab="")
chart.cdf <- xyplot(100*cdf~x, data=my.df, type="s",
ylab="Cumulative Percent of Total")
graphics.off()
trellis.device(width = 6, height = 8)
print(chart.hist, split = c(1,1,1,2), more = TRUE)
print(chart.cdf, split = c(1,2,1,2))
我希望这些叠加在同一个框架中,而不是堆叠。
以下代码不起作用,我尝试过的任何简单变体也不起作用:
xyplot(cdf~x,data=cdf,
panel=function(...){
panel.xyplot(...)
panel.histogram(~x)
})