Rとウェブ解析:Circular Visualization?関係を把握する珍しい表現方法です。


Circular Visualizationという表現方法をご存知でしょうか?遺伝子解析や社会学などで見かけるグラフで、項目を円に並べ線で結び関係性を把握する表現方法です。

そんなCircular Visualizationをお手軽に作成できる「circlizeパッケージ」をご紹介します。このパッケージはCIRCOSという団体がフリーで配布していて、natureやscienceだけでなく、New York Timesなどでも利用されています。

CIRCOS:http://circos.ca/

非常に有用なパッケージだと思います。ぜひ、ご利用ください。


「qicharts」パッケージの導入

下記コードを実行することで導入することができます。
URL: http://cran.r-project.org/web/packages/circlize/index.html


 install.packages("circlize")


コマンド例の紹介

行と列で項目が異なる場合と同じ場合の例をご紹介します。実行してデータを確認してみてください。
また、個のパッケージはいろいろできますので試してみてください。

まずは、パッケージの読み込みです。色を設定する為にRColorBrewerも読み込んでいます。

library("circlize")
library("RColorBrewer")

行と列で項目が異なる場合

#色の準備
ColColor <- colorRampPalette(c("#2ca9e1", "#e7609e", "#f7c114", "#543f32")) #行の色 RowColor <- colorRampPalette(c("#ec6d51", "#3f312b", "#674196", "#82ae46")) #列の色 set.seed(123) mat <- matrix(sample(1:100, 18, replace = TRUE), 3, 6) rownames(mat) <- letters[1:3] colnames(mat) <- LETTERS[1:6] rn <- rownames(mat) cn <- colnames(mat) mat #データの確認 chordDiagram(mat, transparency = 0.5, #透明度の調整 #column.col = ColColor(ncol(mat)), #行の色を設定、データ行で色数を指定 row.col = RowColor(nrow(mat)), #列の色を設定、データ列で色数を指定 grid.col = c(RowColor(nrow(mat)), rep("grey", ncol(mat))) #ラベルの色を設定、 #データ行で色を指定した場合はc(RowColor(ncol(mat)), rep("grey", nrow(mat))) ) [/code]

行と列で項目が同じ場合

#色の準備
ColColor <- colorRampPalette(c("#2ca9e1", "#e7609e", "#f7c114", "#543f32")) #行の色 RowColor <- colorRampPalette(c("#ec6d51", "#3f312b", "#674196", "#82ae46")) #列の色 set.seed(123) mat = matrix(sample(100, 25), 5) rownames(mat) = letters[1:5] colnames(mat) = letters[1:5] #diag(mat) <- 0 #対角要素を0に置換、自己循環が邪魔な場合は使用してみてください。 mat #データの確認 chordDiagram(mat, directional = TRUE, #指向性を解りやすく表現 transparency = 0.5, #透明度の調整 row.col = RowColor(nrow(mat)), #列の色を設定、データ列で色数を指定 grid.col = RowColor(nrow(mat)) #ラベルの色を設定、 ) [/code]

出力される図

行と列で項目が異なる場合

行と列で項目が同じ場合


少しでも、ウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク