2014年6月20日金曜日

Rのpch指定で使えるプロット文字の種類一覧

Rでplot関数を使った場合、デフォルトではプロット文字は○(白丸)になりますが、それ以外を使いたい場合は、pchオプションに0から25の数字を指定すればOKです。

で、どの数字を指定すればどのプロットキャラクターになるかというのは、こちらにまとめられています。

53. グラフィックスパラメータ(弐) | R-Source

でも、実際にプロットしたときの見え方や印象も確認したいですよね。cex指定との兼ね合いもあるし。

ということで、自分の環境で一気にplotしてみて、見え方を確認してみる、なんてのはどうでしょうか。

いろいろなpch指定とcex指定
sizes <- seq(0.5, 2.0, 0.25)
plot( 0,0, type="n", xlim=c(0,25), ylim=c(0.5,2.0), xlab="", ylab="")
for(i in sizes){
  par(new=T)
  plot( 0:25, rep(i,26), pch=0:25, cex=i,
        ylim=c(0.5, 2.0), xlab="pch", ylab="cex" )
}


なんだか目の検査みたい。あと、pch=11のダビデの星(六芒星)はどう見ても不恰好で、一生使うことはないでしょう。

曲線をプロットした感じは、こんな風になります↓


いろいろなpch指定で曲線をプロット
# プロットする曲線の定義
f <- function(x){ 2 * (sin( x - 0.5*pi ) + 1 ) }
 
x <- seq(0, 2*pi,length=30)
plot( 0,0, type="n", xlim=c(0,2*pi),ylim=c(0,30), xlab="", ylab="")
for(i in 0:25){
  par(new=T)
  plot( x, f(x)+i, pch=i, ylim=c(0,30), ylab="pch" )
}


ちなみに、数字でなく直接文字をダブルクォートで指定してもOK。(例: pch="あ")

むりやり変なサンプルを作ってみる↓


文字(日本語)で曲線をプロット
S <- "文字列を使って曲線をプロットしていくようなこともできますよ"
n <- nchar(str)
x <- seq(0, 2*pi, length=n)
plot( 0,0, type="n", xlab="", ylab="", xlim=c(0,2*pi), ylim=c(-1,1) )
for(i in 1:n){
  par(new=T)
  plot ( x[i], sin(x[i]), pch=substr(str,i,i), xlim=c(0,2*pi), ylim=c(-1,1) )
}


文字をプロットするんだったらtext関数を使った方がすっきり書けるのに、というつっこみはご勘弁を。pchのテーマで始めたもんですから・・・


【おまけ】
pchはPlotting CHaracterの略、cexはCharacter EXxpansionの略だったりします。ほら、覚えやすくなったでしょ。




0 件のコメント:

コメントを投稿