2016.08.01 Mon |
Rの圧倒的強さ-データの可視化
【Rの圧倒的強さ-データの可視化】
前回までで、Rをダウンロード・インストール完了したので、まずは、Rの可能性を実感してみましょう!
RはPython,Excelなど他のあらゆる環境・言語と比べていまだに圧倒的に優れているのが、そのグラフィクス能力(データ可視化能力)です。今回はその一端をお見せしましょう。
まず初めにデータ可視化とはどういうことでしょうか?
次のデータをご覧ください。
これは、Rにデフォルトで入っている、mtcarsという車の燃費、性能などのデータです。
各行がそれぞれ一つの車種のデータを示しています。
各列はたとえばmpgは燃費、cylはシリンダー数、、のような内容になってます
数の羅列だとよくわからないですね。。どこが多いか少ないか、ぱっと見でわからないです。。
行ごとのデータパターンの違いは特によくわからないです。。
そんな時に可視化が役に立つんですね。
たとえば、こんなふうに可視化してみましょう。
各行が一つの色で表されています。
これならがんばってみればデータの傾向はつかめそうです。
ちなみにコードは以下です。Rのコンソール画面に貼り付けるかご自身で入力してください。
library(MASS)
parcoord(mtcars,col=1:33,lwd=2)
これで大体のデータの傾向はわかったのですが、どの車種がどの線に該当しているかわからないですね。
なので凡例を入れてみましょう。ついでに線種も車種ごとに変えてみましょう!
使用したコードは以下です。
#MASSパッケージはデフォルトで入っているので、library関数でメモリにロードする。
library(MASS)
#右の余白に凡例(各線の名前(車種の名前))を付けたいので右の余白をあける。
par(mar=c(3,3,3,9))
#枠外への描画を許可
par(xpd=T)
#MASSパッケージの中のparcoord関数を使ってデータmtcarsを可視化。colは線の色。ltyは線種。lwdは線の太さ。
parcoord(mtcars,col=1:33,lty=1:33,lwd=3)
#凡例を付ける。legend関数を使用した後、グラフの中の右上あたりをクリックするとそこに凡例が描かれる。locator(1)はクリックしたところに凡例を載せるという意味。
legend(locator(1),legend=row.names(mtcars),col=1:33,lty=1:33,lwd=3)
数字のままよりずっとわかりやすいですよね!
コードははじめ長くて、びっくりするかもしれませんが。なれればひたすら便利です。細かい調整がいくらでもできます。Excelを使うのを躊躇するくらいに。。
ちなみに、他にもこんな可視化方法があります。
もみじみたいできれいですね。
コードは以下2行になります。
#配色指定(虹色40色を用意)
palette(rainbow(40))
#デフォルトで使えるstars関数を使用。key.locは右下の基準円の位置。draw.segment=Tで各扇形の色塗り指示。
stars(mtcars, key.loc = c(12, 1.5),draw.segments = TRUE)
各もみじ型がそれぞれの車種を表し、扇形の面積が各変数の大きさを表します。
もともとの数字のままよりずっと見やすいですね。
以上前置きでした!
それでは、Rのグラフィクスの多様性・使用例を見ていきましょう。
今回は、The R Galleryというweb siteの例を使用します。
http://www.r-graph-gallery.com/all-graphs/
基本的にココに書いてあるコードをRのコンソール画面(Rを立ち上げると文字を打ち込むことが出来るところ)にコピー&ペーストしてもらえば実行できます。
ただし、Macの場合はXQuartz(https://www.xquartz.org/)が入っていないと、外部パッケージを実行できない時があります。XQuartzが入っていなければ、ダウンロード、インストールして、ユーティリティのx11をactivateしてください。
それぞれ深い解説は省きますが、たしかにこれはExcelではできなそう。。みたいに感じていただけるといいかなと思います。
Rは外から(cranから)パッケージという名の機能拡張ツールをダウンロードすることが出来ます。
ダウンロードのコマンドは、install.packages(“パッケージ名”,dependencies=T)です。
ダブルクオテーションを忘れないでください。
次にメモリにパッケージをロードすると使えるようになるのですが、そのコマンドは、
library(パッケージ名)です。
今度はダブルクオテーションが必要ないことに注意してください。
それでは参りましょう。
http://www.r-graph-gallery.com/all-graphs/
を訪問してください。
下にスクロールしていきましょう!
たくさんのグラフィクスサンプルが出てきます。
それぞれ、どのようなデータに対して、どのような可視化手法がありうるか体系的に理解していないと、ありがたみは感じずらいのですが、雰囲気だけ理解していただければよいかなと思います。
なんかいろんなグラフィクスがありますね。
データ解析の手順は、
1、データを目で見る
2、データの意味の理解・背景知識の理解
3、データの集計
4、データの可視化
5、データ解析
の順序で行うのですが、このうち4、データの可視化のところで、上記のグラフィクスを使用します。
では実際にRにコマンドを打って、Rでグラフィクスを出力させていきましょう!
#が先頭についている行は僕が書いたコメントで、#が先頭についているものをRにコピペしても実行されないのでエラーは出ません。
安心して、コードをすべてコピペして大丈夫です(エラーが出るなら一行づつ貼り付けるか、ご自分で手打ちしてください)
たとえばゲノム分野でよく使うマンハッタンプロット。
#データを作成する
data <- data.frame (SNP = 1:20000*5 , CHR=c(rep(1:5, each = 20000)), BP= rep(1:20000, 5), P=rnorm(20000*5, 0.2, 0.3) )
data <- data[data$P>0,]
#パッケージを読み込む(cran mirrorはJapanを選択してください。)
install.packages(“qqman”,dependencies=T)
install.packages(“RColorBrewer”,dependencies=T)
#パッケージをメモリにロードする
library(qqman)
library(RColorBrewer)
#実際にプロットする。
manhattan(data , suggestiveline = F, genomewideline = F , col=brewer.pal(5, “Set2”) , cex=0.7)
どうでしょうか?出力できましたか?
では次に、レーダーチャートを描いてみましょう。Excelでもできることですが、その違いをみてみましょう。
いい感じに可視化されていますね。とても見やすいです。
Excelみたいに微調整が効かずイライラすることもありません。
#fmsbパッケージのダウンロード
install.packages(“fmsb”,dependencies=T)
#fmsbパッケージのメモリへのロード
library(fmsb)
#データの作成(本来であれば解析するデータがあるのでこの項はいりません)
#レーダーチャートの描画
m=leaflet() %>% addTiles() %>% setView( lng = 2.34, lat = 48.85, zoom = 5 ) %>% addProviderTiles(“NASAGIBS.ViirsEarthAtNight2012”)
m
m