19

密度に比例する回帰プロットの色合いを即興で作りたいです。たとえば、信頼区間が狭い場合は色合いが濃くなり、信頼区間が広い場合は塗りつぶしの色が明るくなります。結果グラフは次のようになります。

ここに画像の説明を入力

これが実際の例です:

set.seed(1234)
md <- c(seq(0.01, 1, 0.01), rev(seq(0.01, 1, 0.01)))
cv <-  c(rev(seq(0.01, 1, 0.01)), seq(0.01, 1, 0.01))
rv <- rnorm (length(md), 0.1, 0.05)

 df <- data.frame(x =1:length(md),  F = md*2.5 + rv, L =md*2.5 -rv-cv, U =md*2.5+ rv+ cv)
 plot(df$x, df$F, ylim = c(0,4), type = "l")

 polygon(c(df$x,rev(df$x)),c(df$L,rev(df$U)),col = "cadetblue", border = FALSE)
 lines(df$x, df$F, lwd = 2)
 #add red lines on borders of polygon
 lines(df$x, df$U, col="red",lty=2)
 lines(df$x, df$L, col="red",lty=2)
4

1 に答える 1

7

パッケージ内のdensregion()コマンドは、denstripあなたが望むことをしているようです。そのヘルプページの例から少し適応:

require(denstrip)
x <- 1:10
nx <- length(x)
est <- seq(0, 1, length=nx)^3
se <- seq(.7,1.3,length.out=nx)/qnorm(0.975)
y <- seq(-3, 3, length=100)
z <- matrix(nrow=nx, ncol=length(y))
for(i in 1:nx) z[i,] <- dnorm(y, est[i], se[i])
plot(x, type="n", ylim=c(-3, 3),xlab="")
densregion(x, y, z)
lines(x,est,col="white")

ここに画像の説明を入力

于 2013-01-15T17:08:43.287 に答える