グラフ描画とモンテカルロ法
(Press ?
for help, n
and p
for next and previous slide)
村田 昇
2019.10.11
plot()/curve()
ベクトルデータを左から等間隔で描画
plot(x, type="p", xlim=NULL, ylim=NULL, main=NULL, xlab=NULL, ylab=NULL, ...) ## x: ベクトル ## type: 描画タイプ.既定値は "p"(点プロット)."l"(折れ線)など指定可 ## xlim: x軸の範囲.既定値は自動的に決定 ## ylim: y軸の範囲.既定値は自動的に決定 ## main: 図のタイトル.既定値はタイトルなし ## xlab: x軸のラベル名.既定値は"Index" ## ylab: y軸のラベル名.既定値はxのオブジェクト名 ## ...: 他のオプション.以下に例示.詳細は help(par) を参照 ## col: 色の指定."red"や"blue"など.指定可能な色は colors() を参照 ## pch: 点の形.詳細は help(points) を参照 ## cex: 文字の大きさ.既定値の何倍にするかを指定 ## lty: 線のタイプ.実線・破線などを記号・数字で指定.詳細は help(par) を参照 ## lwd: 線の太さ.数字で指定
1変数関数の範囲を指定して描画
curve(fun,from=NULL,to=NULL, ...) ## fun: 1変数関数 ## from: x軸の左端 ## to: x軸の右端 ## ...: "ベクトルの描画"と同じオプションが利用可能 plot(fun, y=0, to=1, ...) ## curveとほぼ同様 ## y: x軸の左端 (from=と書いても良い) ## 別の関数 f を重ね書きする場合 curve(...,add=TRUE, ...) plot(...,add=TRUE, ...)
点 \((x_1,y_1),\dotsc,(x_N,y_N)\) を平面上に描画
plot(x, y, ...) ## x: 1種類目のデータ x_1,...,x_N ## y: 2種類目のデータ y_1,...,y_N ## ...: "ベクトルの描画"と同じオプションが利用可能 plot(B ~ A, data=x, ...) ## データフレームxの変数A,Bの散布図を作成する
コマンドで実行する (多数の場合はこちらで処理)
pdf()
png()
dev.copy()
などを参照
2種類の睡眠薬投与による睡眠時間の増減のデータ datasets::sleep
において
group
が1のデータの extra
をx軸group
が2のデータの extra
をy軸
とした散布図を描画せよ(詳細は help(sleep)
).
データの分布を可視化するのに有効(どのあたりに値が集中しているか, どの程度値にばらつきがあるかなど)
hist(x, breaks="Sturges", freq=NULL) ## x: ベクトル ## breaks: 区間の分割の仕方を指定.数字を指定するとそれに近い個数に等分割 ## freq: TRUEを指定すると縦軸はデータ数, ## FALSEを指定すると縦軸はデータ数/全データ数.既定値はTRUE ## ...: plotで指定できるオプションが利用可能
複数のデータの分布の比較の際に有効
boxplot(x, ...) ## x: ベクトルまたはデータフレーム ## ベクトルに対しては単一の箱ひげ図 ## データフレーム対しては列ごとの箱ひげ図 ## ...: plotと同様のオプションを指定可能 boxplot(B ~ A, data=x, ...) ## xの変数Bを変数A(質的変数; 性別, 植物の種類など)で分類する場合
縦にも横にも並べられる
barplot(x,width=1,space=NULL,beside=FALSE, legend.text=NULL,args.legend=NULL, ...) ## x: ベクトルまたは行列 (データフレームは不可) ## width: 棒の幅 ## space: 棒グラフ間・変数間のスペース ## legend.text: 凡例 ## beside: 複数の変数を縦に並べるか・横に並べるか ## args.legend: legendに渡す引数 ## ...: plotで指定できるオプションが利用可能
時計回りにも反時計回りにも配置できる
pie(x, clockwise=FALSE, ...) ## x: ベクトル ## clockwise: 時計回りに書くか否か ## ...: plotで指定できるオプションが利用可能
データフレームの全ての列の組み合わせの散布図を同時に見ることができる
pairs(x, ...) plot(x,...) # pairsと同じ結果となる ## x: データフレーム pairs(~ A1 + ... + Ak, data=x, ...) plot(~ A1 + ... + Ak, data=x, ...) ## 変数A1,...,Akのみ考える場合
3次元のグラフを2次元に射影した図
persp(x, y, z, theta=0, phi=15, expand=1) ## x,y,z: x,y,z座標 ## (zは行列で,z[i,j]は点(x[i],y[j])に対応する値を与える) ## theta,phi: 俯瞰の方向を指定する極座標 ## expand: z軸の拡大度 ## ...: plotで指定できるオプションが利用可能 ## 多様な3次元のグラフのためのパッケージがある. ## 以下はscatterplot3dパッケージの例 scatterplot3d(x, color, angle=40) ## x: x,y,z座標を指定するデータフレーム ## (perspのように直接指定することも可能) ## color: 色を指定(colではないので注意). 既定値は黒 ## angle: x軸とy軸の間の角度 ## ...: plotで指定できるオプションが利用可能
par()
を用いる
mrow
, mcol
margin
family
?par
を参照)demo("graphics")
, example(関数名)
を参照data()
で一覧表示)?Random
参照)set.seed()
)sample()
: ランダムサンプリングrbinom()
: 二項乱数runif()
: 一様乱数rnorm()
: 正規乱数標本平均: 平均値の典型的な推定量
\(X_1,X_2,\dotsc\) を独立同分布な確率変数列とし, その平均を \(\mu\) ,標準偏差を \(\sigma\) とする. このとき,すべての実数 \(a< b\) に対して
が成り立つ.
sample()
, rbinom()
などで模擬できる