こんにちは自称計量東村アキコ学第一人者の @makito です。
Excelはバージョンによっては散布図の作成がとても苦手です。例えば、プロットにラベルを付けたい時に、古いExcelのバージョンではVBA(マクロ)を書いて実行する必要がありました。最新版では簡単になっているらしいのですが、手元にあるExcel2010では少なくともマクロを実行しなければなりません。
Rはラベル付きの散布図も作成可能です。さらに、rglというパッケージで3次元プロットまで作れます。主成分分析結果の第二主成分までの累積寄与率が低く、第三主成分でようやく8割近くなるといったときには第三主成分まで含めて検討したくなります。そうなったらいよいよExcelにお別れを告げる時なのかもしれません。
PC1 PC2 PC3 PC4 PC5
Standard deviation 1.4313 1.1319 0.8872 0.69908 0.62791
Proportion of Variance 0.4097 0.2562 0.1574 0.09774 0.07885
Cumulative Proportion 0.4097 0.6660 0.8234 0.92115 1.00000
例によって東村アキコ先生の「かくかくしかじか」第一巻のセリフ末記号の使用頻度を使用します。使用頻度は各話、各キャラクター毎に集計されたものです。
さっそくつくってみました
使用した rgl というパッケージもア○ゾンみたいなロゴで目立っている @hoxo_m さんのブログで見つけました。
例えばこんな散布図を作ろうとすると、
- データはどうやって渡すの?
- プロットへのラベル付けはどうするの?
- 色はどうやってつけるの?
といった疑問が出てきます。そんな時に知っていると便利なコマンドをまとめました。
※ @awakia さんが投稿した『 統計用R言語データ解析用チートシート - Qiita - http://goo.gl/rc0OGZ 』もとても良いです
コードを書く時に使えるRの便利なコマンド
パッケージの内容を調べる
library(help=rgl)
関数のヘルプを見る
?plot3d
クラスのメソッドを調べる
methods(plot3d)
オブジェクトがどのクラスのインスタンスなのか確認する
class(hoge)
オブジェクトの概要を確認する
summary(hoge)
3D散布図のつくりかた
使用するデータ
name,ex,qu,dot,tsu,cho,type
NAR(1),0.127272727,0,0.054545455,0,0.018181818,NAR
NAR(2),0.025,0,0,0,0,NAR
NAR(3),0,0,0.087719298,0,0,NAR
NAR(4),0,0.018867925,0.132075472,0,0,NAR
NAR(5),0.011494253,0.011494253,0.068965517,0,0,NAR
NAR(6),0.024096386,0,0.096385542,0,0,NAR
NAR(7),0,0,0.065217391,0,0,NAR
library("rgl") # ライブラリの読み込み
data <- read.csv('example.csv', head=T, row.names=1) # データの読み込み
pca <- prcomp(data[1:5], scale=T, cor=TRUE) # 主成分分析実行
pca # 主成分分析結果を表示
summary(pca) # サマリーを表示
pcScores <- pca$x[, 1:3] # 第三主成分までのデータ
###########################
# ここから3D散布図描画
###########################
# col は色を指定する、6列目はファクタになっているデータ
# size はドットの大きさを指定
plot3d(pcScores, col=as.integer(data[,6]), size=5)
# プロットにラベルをつける
# texts でラベルになる文字データを指定
# cex は文字の大きさ(小さめに) 1がデフォルトサイズらしい
text3d(pcScores, texts=rownames(data), cex=0.5)
# WebGLで描画
writeWebGL(width=500, height=550)
おまけ
Excelっぽい色にする
@hoxo_m さんのブログ記事『 R で Excel っぽい色を出す - ほくそ笑む - http://goo.gl/Wt1MhB 』を読んだら、元Excel使用者としてやってみたくなりました。色の彩度が低いので、プロットのサイズを大きめにしています。
図2.Excelっぽい色で三次元プロットした例
Excelっぽくなりました!!
ホクソエム
R界隈をめぐっていると、とても参考になる情報に助けられているのですが、一つどうでもよい疑問が湧いてきました。 @hoxo_m さんをはじめとして、 @uri さんはTwitterの名前がホクソエムになっていたり、タイムラインにホクソ○○といった違うユーザーの名前が出てきたりします。Rや統計界隈にはホクソ教というか、そういう邪教というか土着の宗教みたいのがあるのでしょうか?R及び統計界隈の コード のようなものでしょうか?
不思議です