Rで解析:インタラクティブなヒートマップ!D3.jsを利用した「d3heatmap」パッケージの紹介
公開日: Rとアクセス解析に役に立つ記事 R, インタラクティブ, ヒートマップ, 解析
ヒートマップをインタラクティブに操作する「d3heatmap」パッケージがリリースされました。本パッケージのメインコマンド”d3heatmap”は「heatmap」や「heatmap.2」パッケージと多くが共通しているので、これらパッケージの使用経験があるとすぐに使いこなせると思います。
ためしに本パッケージより「400*50の20,000データ」を出力したところ、多少のモタつきはありますがぐりぐり動きました。サーバー経由でなければ一般的な使用方法には十分かと思います。なお、距離の計算は搭載メモリに依存しますのでデータ数は使用環境により異なります。
また、紹介する出力結果は利便性を考えて「50*10の500データ」としています。最下部に表示しています。ぐりぐり動かしてみてください。
Rを使用し始めたころから考えると、これほど多くのインタラクティブな結果を出力するパッケージがリリースされるとは思っていませんでした。
参考までにインタラクティブに結果を出力する「からだにいいもの」の記事を紹介します。また、RStudioを利用すると結果の出力が非常に楽です。出力方法は「dygraphs」パッケージの紹介記事から確認ください。
・「dygraphs」パッケージの紹介
http://www.karada-good.net/analyticsr/r-113/
・「qrage」パッケージの紹介
http://www.karada-good.net/analyticsr/r-119/
・「metricsgraphicsパッケージ」の紹介
http://www.karada-good.net/analyticsr/r-112/
・「DTパッケージ」の紹介
http://www.karada-good.net/analyticsr/r-107/
これだけのパッケージがあれば、実用的な作業が十分にできるのではないでしょうか。
ぜひ、ウェブ関係者に利用いただければと思います。
紹介するパッケージバージョンは0.6.0、windows7 64bitとMac OS 10.10.3、RStudioはVersion 0.99.441、R version 3.2.0で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("d3heatmap")
実行コマンドの紹介
下記コマンドを実行してください。詳細はコメントまたはパッケージヘルプを確認してください。
#パッケージの読み込み library("d3heatmap") #データ例の作成 #50*10のデータ TestData <- matrix(sample(1:1000, 500, replace = TRUE), 50, 10) TestData <- data.frame(row.names = paste0("TEST", 1:50), TestData) colnames(TestData) <- paste0("Data", 1:10) #プロット #オプション無しで単純にプロット d3heatmap(TestData) #デンドログラムの表示設定:dendrogramオプション;初期値"both" #"both", "row", "column", "none"の設定が可能 #ラベル表示順にも影響します d3heatmap(TestData, dendrogram = "none") #行と列の距離計算を設定:Rowv;初期値TRUE, Colv;初期値"Rowv"オプション #初期値はdist,hclustコマンドの初期設定となります #FALSEを指定すると並び替をしませんがColvは初期値が使用されます d3heatmap(TestData, Rowv = FALSE) #デンドログラムを指定したグループで色分け:k_row, k_colオプション #色の指定はcolor_branchesコマンドを使用:最下部で紹介 d3heatmap(TestData, k_row = 5, k_col = 3) ###Rowv, k_row, k_colオプションを適応し出力### d3heatmap(TestData, Rowv = FALSE, k_row = 5, k_col = 3) ############################################## #セルの色を指定:colorsオプション;初期値"RdYlBu" #colorRampPaletteコマンドを利用すると便利です d3heatmap(TestData, colors = colorRampPalette(c("#d9bb9c", "#4b61ba"))(10)) #セルの枠線を消す:show_gridオプション;初期値TRUE #FALSEで消えます d3heatmap(TestData, show_grid = FALSE, colors = colorRampPalette(c("#d9bb9c", "#4b61ba"))(10)) ###colors, show_gridオプションを適応し出力### d3heatmap(TestData, show_grid = FALSE, colors = colorRampPalette(c("#d9bb9c", "#4b61ba"))(10)) ###################################################### ############################################## #参考:距離計算の方法例とcolor_branchesコマンドの使用例 #as.dendrogram, hclust, Distコマンドを利用 #距離計算手法が多いamapパッケージのDistコマンドを使用しています #詳細は各コマンドヘルプをご覧ください #amapパッケージのインストール #install.packages("amap") #amapライブラリの読み込み library(amap) #距離計算 RowDist <- as.dendrogram(hclust(Dist(TestData, method = "pearson", nbproc=200), method = "complete")) ColDist <- as.dendrogram(hclust(Dist(t(TestData), method = "pearson", nbproc=200), method = "complete")) #デンドログラムの色設定:dendextendパッケージのcolor_branchesコマンドを利用 library("dendextend") RowDist <- color_branches(RowDist, k = NULL, h = NULL, col = colorRampPalette(c("#4b61ba", "#ffdd99"))) ColDist <- color_branches(ColDist, k = NULL, h = NULL, col = colorRampPalette(c("#deb7a0", "red"))) #k_row, k_colオプションを適用するとデンドログラムの色は反映されません d3heatmap(TestData, Rowv = RowDist, Colv = ColDist, show_grid = FALSE, colors = colorRampPalette(c("#d9bb9c", "#4b61ba"))(10))
出力例
ドラッグで拡大や行と列ラベルをクリックすることで一括選択ができます。拡大の解除はダブルクリックで可能です。
<オプション無しで単純にプロット>
<Rowv, k_row, k_colオプションを適応し出力>
列のデンドログラムがありません。列の並び順が元データのままです。
<colors, show_gridオプションを適応し出力>
セルの色、枠線なしです。
<参考:距離計算の方法例とcolor_branchesコマンドの使用例>
距離計算をDistコマンド、デンドログラムの色を変更しています。
少しでも、あなたのウェブや実験の解析が楽になりますように!!
関連記事
-
-
Rで解析:ぐりぐり動く!3D ScatterPlotの作成「threejs」パッケージの紹介
ぐりぐり動かすことができる3DのScatterPlot(散布図)を作成できる「threejs」パッケ
-
-
Rとウェブ解析:知っていると役に立つ行列の操作コマンド
エクセルに慣れていると、概念として戸惑うmatrix(行列)です。データフレームに近いのですが微妙に
-
-
Rでお遊び:プレゼン資料の配色に使えるかも?キャラクターの髪の色?
プレゼン資料を作る時にいつも迷うのが配色です。注目してほしい項目に派手な色を使用すると、今度は全体の
-
-
おすすめ!TOP8:Rでウェブ解析をするなら、ぜひ持っていてほしい書籍
『Rでウェブ解析をするなら、ぜひ持っていてほしい書籍』TOP8をご紹介します。なお、書籍の表紙がわか
-
-
Rでウェブ解析:ワードクラウドを作ろう!「wordcloud」パッケージをお勧めします。
正確に数値を把握することはできませんが、タグクラウドとも呼ばれるワードクラウドは「文字でデータの特徴
-
-
Rでメールの送信:簡単管理!これでアドレス流出を防げるかも?「mailR」パッケージの紹介
BCCではなくCCでメールを発信してしまう最悪のトラブル。よく、CCの設定欄がなくなればトラブルが起
-
-
Rとウェブ解析:視覚でデータマイニング!密度もわかるbeanplotを作成「beanplotパッケージ」
密度がわかるbeanplotを描写できるbeanplotパッケージを紹介します。データの密度を確認せ
-
-
Rで解析:グループ解析が楽々!「compareGroups」パッケージの紹介。
ウェブ解析や疫学調査の結果を解析するとき、グループ間の解析を手軽に解析できればと考えたことはありませ
-
-
Rとウェブ解析:クリックでデータマイニングrattleパッケージ
コマンドではなく、クリックでデータマイニングができるrattleパッケージをご紹介します。
-
-
Rとウェブ解析:データフレームから項目名で抽出する例
データフレームからis.elementを使用し素早くデータを抽出する方法です。is.elementの