日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

散布図のいろいろ

Rは数値処理も優れていますが、グラフィックスが充実しているのも素晴らしいと思います。
私がRを始めたきっかけも、書きたいグラフがあって、エクセルじゃどうしても描けなかったことでした。
で、散布図ですが、plot関数がベースになっています。
サインカーブを書いてみます。

> x <- seq(20)/2
> x <- data.frame("x"=x,"y"=sin(x))
> jpeg("plot.sin.jpg")
> plot(x)
> dev.off()

jpeg関数はその名の通り、jpegで出力する関数です。こんなグラフになっているはず。

で、plot はいくつか引数を持ち、type は散布図の形状を変更できる。

> jpeg("plot.type.jpg")
> layout(matrix(1:4,ncol=2)) # layout関数は1 ページを分割して複数の図を並べる関 数。
> par(mai=c(1,1,.5,.5)) # par関数はグラフィックパラメータをいろいろ指定できる 。> plot(x,pch=1:3) # pch はplot のsymbol を指定
> plot(x,type="l") # type は表示方法を指定
> plot(x,type="b",col=1:3) # col は色を指定
> dev.off()

で、こんな感じ。

引数pchはpoints関数、引数typeはlines関数が代用できる。

> # どちらも、plot(x,type="b")と同じ。
> jpeg("lines.points.jpg", height=960)
> par(mfrow=c(2,1),mai=c(1,1,.5,.1))
> plot(x,type="l")
> points(x)
> 
> plot(x,type="p")
> lines(x)
> dev.off()

で、こんな感じ。

par関数は非常にたくさんのパラメータを持つので、?parで調べるか、ここがいいと思う。

昔、知人がRはOctaveGnuplotみたいと言っていました。
使ったことがないので、実感がわかなかったけど、「とても使いやすい」という意味で話していたので、ちょっと嬉しくなった。