目的 正規確率紙に累積相対度数をプロットする。 使用法 npp(y) 累積相対度数をプロットする npp(y, x) 累積相対度数をプロットする npp(y, plt=FALSE) 正規確率紙を作成する 引数 y 度数ベクトル x 階級代表値(省略時は等間隔の正数ベクトルを仮定する) plt データ点をプロットしないとき FALSE にする xlab 横軸のラベル(プロットしないときには空文字列) ylab 縦軸のラベル(プロットしないときには空文字列) main 図のタイトル(プロットしないときには空文字列) ソース インストールは,以下の 1 行をコピーし,R コンソールにペーストする source("http://aoki2.si.gunma-u.ac.jp/R/src/npp.R", encoding="euc-jp") # 正規確率紙に累積相対度数をプロットする npp <- function(y, # 度数ベクトル x=NULL, # 階級代表値 plt=TRUE, # データ点をプロットする xlab=NULL, # 横軸ラベル ylab=NULL, # 縦軸ラベル main=NULL) # 図のタイトル { if (length(y) < 3) { # 階級数が2以下のときには正規確率紙のみを出力する y <- 1:11 plt <- FALSE } y <- cumsum(y)/sum(y) # 累積相対度数 if (is.null(x)) { x = seq(along=y) } if (is.null(xlab)) xlab <- "観察値" if (is.null(ylab)) ylab <- "累積相対度数" if (is.null(main)) main <- "正規確率紙" probs <- c(0.01, 0.1, 1, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 99.9, 99.99)/100 plot(c(x[1], x[length(x)-1]), qnorm(c(probs[1], probs[17])), type="n", xaxt="n", yaxt="n", xlab=xlab, ylab=ylab, main=main) abline(h=qnorm(probs), v=x, col="grey") # 格子線を引く if (plt) { # データ点をプロットする points(x, qnorm(y), type="b") text(x, qnorm(y), round(y, digit=3)*100, pos=1) } axis(1, at=x) # 横軸を描く axis(2, at=qnorm(probs), labels=probs*100) # 縦軸を描く } 使用例 > npp(c(1, 2, 3, 4, 3, 2, 1)) # 横軸の目盛りは 1 から始まる整数値(等間隔) > npp(c(1, 2, 3, 4, 3, 2, 1), seq(160, 190, 5)) # 階級の代表値を指定する場合 > npp(1:21, plt=FALSE) # 横軸の目盛りを 21 個として,正規確率紙を作る 出力結果例 npp(c(1, 2, 3, 4, 3, 2, 1)) 横軸の目盛りは 1 から始まる整数値(等間隔) npp(c(1, 2, 3, 4, 3, 2, 1), seq(160, 190, 5)) 階級の代表値を指定する場合 npp(1:21, plt=FALSE) 横軸の目盛りを 21 個として,正規確率紙を作る 解説ページ