LoginSignup
21
22

More than 5 years have passed since last update.

プログラマーがRを始める時に知っていると便利なコマンドのまとめと3D散布図をつくる話 - RStudio は入れておきましょう

Last updated at Posted at 2015-05-15

こんにちは自称計量東村アキコ学第一人者の @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

例によって東村アキコ先生の「かくかくしかじか」第一巻のセリフ末記号の使用頻度を使用します。使用頻度は各話、各キャラクター毎に集計されたものです。

image

:bar_chart: さっそくつくってみました

使用した rgl というパッケージもア○ゾンみたいなロゴで目立っている @hoxo_m さんのブログで見つけました。

image
図1.plot3dを使った三次元散布図の例

例えばこんな散布図を作ろうとすると、

  • データはどうやって渡すの?
  • プロットへのラベル付けはどうするの?
  • 色はどうやってつけるの?

といった疑問が出てきます。そんな時に知っていると便利なコマンドをまとめました。

:thumbsup: @awakia さんが投稿した『 統計用R言語データ解析用チートシート - Qiita - http://goo.gl/rc0OGZ 』もとても良いです

:wrench: コードを書く時に使えるRの便利なコマンド

パッケージの内容を調べる

library(help=rgl)

関数のヘルプを見る

?plot3d

クラスのメソッドを調べる

methods(plot3d)

オブジェクトがどのクラスのインスタンスなのか確認する

class(hoge)

オブジェクトの概要を確認する

summary(hoge)

:bar_chart: 3D散布図のつくりかた

使用するデータ

example.csv
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)

:heart: おまけ

Excelっぽい色にする

@hoxo_m さんのブログ記事『 R で Excel っぽい色を出す - ほくそ笑む - http://goo.gl/Wt1MhB 』を読んだら、元Excel使用者としてやってみたくなりました。色の彩度が低いので、プロットのサイズを大きめにしています。

image

図2.Excelっぽい色で三次元プロットした例

:smile: Excelっぽくなりました!!

ホクソエム :question:

R界隈をめぐっていると、とても参考になる情報に助けられているのですが、一つどうでもよい疑問が湧いてきました。 @hoxo_m さんをはじめとして、 @uri さんはTwitterの名前がホクソエムになっていたり、タイムラインにホクソ○○といった違うユーザーの名前が出てきたりします。Rや統計界隈にはホクソ教というか、そういう邪教というか土着の宗教みたいのがあるのでしょうか?R及び統計界隈の コード のようなものでしょうか?

不思議です :smile:

21
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22