Rを用いて図に文字を重ねる。
統計学やデータ解析において、グラフやプロットなどの図の中に、パーセンテージなどの文字情報を書き入れたいことがよくあります。
「連続型、離散型一様分布とは何か?」のページでは、下の図のように、0から10までの値をとる連続型一様分布の確率密度関数に、確率変数が1から3までの範囲と、6から8までの範囲をとる確率がそれぞれ20%であることを示すために「20%」というテキスト情報を書き入れました。
この図を作るために、まずは、以下のように一様分布のグラフそのものを作ります。
# 日本語表示 par(family = "HiraKakuProN-W3") # プロット本体 plot(c(rep(0.1,11)), # 0.1を11個含むベクトル type="l", # 各0.1の値を直線で結ぶ。 xlim=c(-1,12), # xの範囲指定 ylim=c(0,0.15), # yの範囲指定 xaxt="n", # x軸のメモリを一旦消す yaxt="n", # y軸のメモリも一旦消す main="0から10の値をとる連続型一様分布", xlab="X", ylab="確率" ) # 横線を引く abline(h=0) # 縦の点線を引く abline(v=1,lty=3) abline(v=11,lty=3)
次に以下のように、x軸とy軸のメモリをいれ、さらに、青とピンクの色を入れます。
# x軸を書き入れる Xvalues <- 0:12 Xstrings <- sprintf("%s",c("-1","0","1","2","3","4","5","6","7","8","9","10","11")) axis(side=1,at=Xvalues, labels=Xstrings) # y軸を書き入れる Yvalues <- c(0,0.1) Ystrings <- sprintf("%s",c("0","10% (0.1)")) axis(side=2,at=Yvalues, labels=Ystrings) #xが[1,3]の部分に色をつける。 cord.x1=c(2,seq(2,4,length=100),4) cord.y1=c(0,rep(0.1,100),0) polygon(cord.x1,cord.y1,col='skyblue') #xが[6,8]の部分に色をつける。 cord.x1=c(7,seq(7,9,length=100),9) cord.y1=c(0,rep(0.1,100),0) polygon(cord.x1,cord.y1,col='pink')
最後に以下のようにtext()関数を用いて「20%」というテキスト情報を挿入します。
# 文字情報を挿入する。 text(x=3,y=0.05,"20%") text(x=8,y=0.05,"20%")
x軸の-1を起点(0)としたときにx=3,x=8にあたる位置と、y軸の0.05(5%)にあたる位置に文字を挿入することができました。