Вы, конечно, можете добавить все, что хотите, в сегментный вызов, но я не уверен, что вы спрашиваете. Сначала мы можем значительно упростить ваш код:
set.seed(200)
x <- rnorm(100, 10)
truemean <- mean(x)
mat <- replicate(100, t.test(sample(x, rep = T))$conf.int)
mat <- t(mat)
yval <- seq(dim(mat)[1])
clr <- ifelse(mat[, 1] <= truemean & mat[, 2] >= truemean, "blue", "red")
plot(NA, xlim=c(min(mat[ , 1]), max(mat[ , 2])), ylim=c(0, length(yval)), type="n",
xlab="Conf Int", ylab="Trials")
abline(v=truemean)
segments(mat[, 1], yval, mat[, 2], yval, col=clr)
Это дает следующий график:
Вы можете заменить yval
с yval+.1
в функции segments
, чтобы сдвинуть все вверх. Если линий так много, что они перекрываются, вы можете увеличить высоту графика, чтобы освободить место.