我想在XYplot中添加99%和95%的置信区间。
以下是数据:
X <- 1:20
Y <- c(0.5, 1.4, 2.3, 3.4, 4.5,
3.3, 3.0, 2.1, 1.5, 0,
0, 3.4, 4.5, 6.7, 5.3, 2.8,
0.5, 3.4, 3.5, 3.7)
mydata <- data.frame (X, Y)
我想确定Y的最大值,而对应的X值是方框图和晶须图中的中值位置。每当Y的值下降1点(左或右)是99%置信区间(将在框内),并且每当Y的值下降到2(左和右)时,x中的对应位置都将被表示晶须旁。
所需地块:
解释。
对应的x值到max(Y)= 6.7
框左侧对应的x值= 6.7-1,框右侧= 6.7-1
晶须左侧对应的x值= 6.7-2,晶须右侧= 6.7-2
最佳答案
以下情节应该可以帮助您入门。它使用矩形而不是bwplot,并且也不进行插值。
创建数据:
library(ggplot2)
dat <- data.frame(
x = 1:20,
y = c(0.5, 1.4, 2.3, 3.4, 4.5, 3.3, 3.0, 2.1, 1.5, 0, 0, 3.4, 4.5, 6.7, 5.3, 2.8, 0.5, 3.4, 3.5, 3.7)
)
编写一个返回5个所需点的函数:
getRange <- function(x, a=1, b=2){
maxy <- max(x)
xMax <- which.max(x)
x2 <- max(which(x[1:xMax] <= (maxy-a)))
x1 <- max(which(x[1:x2] <= (maxy-b)))
x3 <- xMax + min(which(x[-(1:xMax)] < (maxy+a)))
x4 <- x3 + min(which(x[-(1:x3)] < (maxy+b)))
data.frame(x1=x1, x2=x2, max=xMax, x3=x3, x4=x4)
}
获取范围值并绘制:
rr <- getRange(dat$y, 1, 3)
ggplot(dat, aes(x, y)) + geom_line() + geom_point() +
geom_rect(data=rr, aes(xmin=x2, xmax=x3, NULL, NULL),
ymin=-Inf, ymax=Inf, fill="blue", alpha=0.25) +
geom_rect(data=rr, aes(xmin=x1, xmax=x4, NULL, NULL),
ymin=-Inf, ymax=Inf, fill="blue", alpha=0.25)
关于r - 在r中添加了具有置信区间(框和维克图)的xyplot,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9342529/