データの流れを指標や時間軸で表現するのに便利なAlluvial diagramsです。「ggplot2」パッケージを利用して描写する「ggalluvial」パッケージがありますが、別な方法の一つとして紹介です。
・Rで解析:Alluvial diagramsをプロットしませんか「ggalluvial」パッケージ
https://www.karada-good.net/analyticsr/r-504/
パッケージバージョンは0.1-1。windows 7およびOS X 10.11.5のR version 3.3.1で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("alluvial")
実行コマンドの紹介
詳細はコマンド、パッケージのヘルプを確認してください。
#パッケージの読み込み library("alluvial") ###データ例の作成##### n <- 100 TestData <- data.frame("Group" = sample(paste0("Group", 1:3), n, replace = TRUE), "Schar" = sample(letters[1:10], n, replace = TRUE), "Bchar" = sample(LETTERS[1:10], n, replace = TRUE), "Count" = sample(c(0, 1), n, replace = TRUE)) ######## #aggregateコマンドでデータを集計 PlotData <- aggregate(formula = Count~Group+Schar+Bchar, data = TestData, FUN = sum) #alluvialプロットの作成:alluvialコマンド #ラベルデータの指定:先頭で指定する #各行の出現数を指定:freqオプション #各ラインのウェーブ具合:xwオプション;0で直線 #塗の透明度:alphaオプション #ラベル間の隙間を指定:gap.widthオプション #色の設定:colオプション #ライン境界線の色:borderオプション #ライン描写順を指定:layerオプション #例ではScharのe以外を先に描写する alluvial(PlotData[, 1:3], freq = PlotData[, 4], xw = 0.1, alpha = 0.8, gap.width = 0.2, col = ifelse(PlotData[, 2] == "e", "#deb7a0", "#4b61ba"), border = "gray", layer = PlotData[, 2] != "e" )
出力例
少しでも、あなたの解析が楽になりますように!!