データの流れを指標や時間軸で表現するのに便利な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" )
出力例

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