本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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)))
)

行と列で項目が同じ場合

#色の準備
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)) #ラベルの色を設定、
)

出力される図

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

行と列で項目が同じ場合

少しでも、あなたの解析が楽になりますように!!

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.