簡単なエラーバーの描き方

plot(
    c(1, 3, 9, 10),
    c(5, 6, 2, 8),
    xlim=c(0.5, 10),
    ylim=c(0.5, 10)
)

矢印を引く関数arrowsを使用します

arrows(
    c(1, 3), c(5, 6),
    c(9, 10), c(2, 8),
    col=c("black", "red")
)

平均値をプロットした散布図

Aの平均 = 2
Bの平均 = 3
Aの標準偏差 = 0.4  
Bの標準偏差 = 0.7

fig <- function(){
    plot(
    c(1,2), c(Aの平均, Bの平均),
    ylim = c(0,5), xlim = c(0.5, 2.5)
    )
}

fig()

arrowsを使って\(\pm\)標準偏差の矢印を描きます

fig()
arrows(
    c(1, 2), c(Aの平均-Aの標準偏差, Bの平均-Bの標準偏差),
    c(1, 2), c(Aの平均+Aの標準偏差, Bの平均+Bの標準偏差),
)

code=3で矢印を両方につけます

fig()
arrows(
    c(1, 2), c(Aの平均-Aの標準偏差, Bの平均-Bの標準偏差),
    c(1, 2), c(Aの平均+Aの標準偏差, Bの平均+Bの標準偏差),
    code=3
)

矢印を90度まで広げます

fig()
arrows(
    c(1, 2), c(Aの平均-Aの標準偏差, Bの平均-Bの標準偏差),
    c(1, 2), c(Aの平均+Aの標準偏差, Bの平均+Bの標準偏差),
    code=3, angle=90
)

微調整

fig()
arrows(
    c(1, 2), c(Aの平均-Aの標準偏差, Bの平均-Bの標準偏差),
    c(1, 2), c(Aの平均+Aの標準偏差, Bの平均+Bの標準偏差),
    code=3, angle=90,
    length=0.1, lwd=1.0
)
Chat GPT

Chat GPT様に以下のようなお願いをしてみました

Rのコード
散布図
(x, y)= (1, 2), (2, 3)
(1, 2)をA、(2, 3)をB

y軸は数字のみ
x軸の数字を消す
x軸が1にAと書く
x軸が2にBと書く

点Aに±標準偏差0.4をy方向に
点Bに±標準偏差0.7をy方向に

エラーバーの文字は消してください

Chat GPT様からのお返事です

# データ点の定義
x <- c(1, 2)
y <- c(2, 3)

# 平均値の計算
mean_A <- mean(y[1])
mean_B <- mean(y[2])

# 標準偏差の指定
sd_A <- 0.4
sd_B <- 0.7

# グラフを描画
plot(x, y, xlim = c(0.5, 2.5), ylim = c(1, 4), main = "散布図", xlab = "", ylab = "y", pch = 16, col = "blue", xaxt = "n", yaxt = "s")

# データ点をAとBで表示
points(x[1], y[1], pch = 16, col = "red", cex = 1.5, lwd = 2)
points(x[2], y[2], pch = 16, col = "green", cex = 1.5, lwd = 2)

# エラーバーを追加
arrows(x[1], mean_A - sd_A, x[1], mean_A + sd_A, angle = 90, code = 3, length = 0.1, col = "red")
arrows(x[2], mean_B - sd_B, x[2], mean_B + sd_B, angle = 90, code = 3, length = 0.1, col = "green")

# X軸の目盛りとラベルを設定
axis(1, at = c(1, 2), labels = c("A", "B"))

# 凡例を表示
legend("topright", legend = c("A", "B"), pch = 16, col = c("red", "green"), bty = "n")

# エラーバーのテキストを消す(空のテキストを追加)
text(x[1], mean_A, "", col = "red")
text(x[2], mean_B, "", col = "green")

描けました・・・💦

コメント欄 『間違い』や『分かりにくい部分』などのご意見もお寄せください

タイトルとURLをコピーしました