実装関連事項

各種プログラミング言語の基本的な書き方やソフトウェア等の使用方法について.

プロットエリアへの矩形の描画

以下のようなコマンドで適当な散布図を描く.

$ plot(0:9,pch=20,xlab="x value",ylab="y value",las=1)
ida_r_basic_drawing_01.svg

このプロットエリアに対して,頂点 (2,2),(4,2),(4,4),(2,4) からなる矩形を描くには以下のように打つ.

$ polygon(c(2,4,4,2),c(2,2,4,4))
ida_r_basic_drawing_02.svg

プロットエリアへ点を打つ

R において,プロットエリアを点を打つには points() コマンドを使用する.以下のように打つと,座標 (1,3) に点が打たれる.

points(c(1),c(3))

以下のように書くと,座標 (1,3),(3,4) および (7,7) に点が打たれる.

points(c(1,3,7),c(3,4,7))

楕円の描画

R において,確率楕円を描くには以下のようにする.ライブラリー ellipse を最初に読み込む.

$ library(ellipse)

サンプルデータ cars を用いてプロットするには以下のようにする.以下のコマンドによって95%確率楕円が描ける.

$ plot(0, type="n", xlim=c(-50,100), ylim=c(-50,150), xlab="", ylab="")
$ polygon(ellipse(cov(cars), centre=colMeans(cars), level=0.95), lty=1, lwd=1, border="#ff0000")
ida_r_basic_drawing_03.svg

座標軸の原点での交差

R にて描画を行う多くの場合において得られる図は,各軸の最小値が交差していない原点不在のものである.そのようなグラフを各軸の最小値で交差した図に変換するには,すなわち各軸が原点で交差した図を作成するには,コマンド par(xaxs="i", yaxs="i") を利用する.以下のように打つ.

$ par(xaxs="i", yaxs="i")
$ hist(iris$Petal.Width, breaks=seq(0,2.5,0.1), main="", xlab="range", ylim=c(0,30), col="#2b4b65")

結果は以下のようになる.

ida_r_basic_drawing_04.svg

PNGのアンチエイリアス処理

Windows 版 R にてアンチエイリアス処理した画像を作成したいときはパッケージ cairoDevice を利用する.以下のコマンドにてパッケージをインストールして,そのパッケージを読み込む.

$ install.packages("cairoDevice", repos="http://cran.ism.ac.jp/")
$ library(cairoDevice)

以下のコマンドを打つことでアンチエイリアス処理された png 画像を得られる.上のパッケージを利用した作図デバイスはコマンド Cairo_png にて呼び出す.以下では,画像の保存名は foo.png で,そこに正規分布 N(0, 3) をプロットする.作図デバイスの呼び出し終了はコマンド dev.off() にて行う.

$ Cairo_png("foo.png", width=5, height=3)
$ x=seq(-6, 6, 0.1)
$ plot(x, xaxs="i", yaxs="i", xlab="", ylab="", xlim=c(-6, 6), ylim=c(0, 0.25), bty="l", las=1)
$ polygon(c(-6, x, 6), c(0, dnorm(x,sd=sqrt(3)), 0), col="#ff8c00", border=NA)
$ lines(x, dnorm(x,sd=sqrt(3)), lty=1, lwd=2, col="#2b4b65")
$ dev.off()

結果 foo.png は以下のようになる.綺麗な画像が作成できる.

ida_r_basic_drawing_05.png
Hatena Google+