polygon関数
例)y = 2*x
(x,y)=(0,0), (2,0), (2,4)の△を塗りつぶす場合
x <- 0:5
y <- 2*x
plot(x, y)
# c(x軸, y軸, 色)
polygon(
c(0, 1, 2, 2, 1, 0),
c(0, 0, 0, 4, 2, 0),
col = "gray"
)
#三角形なので、のように書いても同じです
polygon(
c(0, 2, 2, 0),
c(0, 0, 4, 0),
col="gray"
)
正規分布 N(2, 0.5^2)のグラフに色を塗ります(0<x<1.5)
x1seq <- seq(0, 5, length=100)
plot(
x1seq,
dnorm(x1seq,2, 0.5),
type="l"
)
x2seq <- seq(0, 1.5, length=100)
y <- dnorm(x2seq, 2, 0.5)
polygon(
c(x2seq, rev(x2seq)),
c(rep(0, length(x2seq)),
rev(y)),
col="gray"
)
x軸のメモリを書き替える操作方法
plot(
dnorm,
-4, 4,
xaxt="n"
)
# -4以上-1.96以下 領域をx軸方向に10個の多角形(台形)に等分割
xvals <- seq(-4, -1.96, length=10)
# y軸
dvals <- dnorm(xvals)
# x軸 c(c(xvals), rep(0,10)) を指定、次に曲線c(rev(xvals), rev(dvals))を指定
# polygon関数の上記の点で囲まれた内側を塗ってくれます
polygon(
c(xvals,rev(xvals)),
c(rep(0,10),rev(dvals)),
col=5
)
xvals2 <- seq(1.96, 4, length=10)
dvals2 <- dnorm(xvals2)
polygon(
c(xvals2, rev(xvals2)),
c(rep(0, 10),
rev(dvals2)),
col=5
)
name<-c("-1.96", "0", "1.96")
axis(
side=1,
at=c(-1.96,0,1.96),
labels=name
)
x軸のメモリを書き替える操作方法2(平均が0でない場合)
N(45, 10^2)におけるz<40の確率を塗りつぶします
pn <- pnorm(40, mean=45, sd=10)
par(ps=15)
plot(
dnorm,
-4, 4,
xaxt="n",
xlab="N(45,10^2)"
)
# -4以上40以下 領域をx軸方向に10個の多角形(台形)に等分割
xvals <- seq( -4, qnorm(pn), length=100)
# y軸
dvals <- dnorm(xvals)
polygon(
c(xvals,rev(xvals)),
c(rep(0,100),
rev(dvals)),
col=7)
name <- c("40")
axis(
side=1,
at=c(qnorm(pn)),
labels=name
)
コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください