ウェブページの遷移だけでなく時間の変化・つながりを表現する方法にriverプロットという表現方法があります。riverプロットを作成できる「riverplot」パッケージを紹介します。
表現方法として非常に面白いと思います。
パッケージバージョンは0.10です。 実行コマンドはwindows 11のR version 4.1.2で確認しています。
パッケージのインストール
下記コマンドを実行してください。
#パッケージのインストール install.packages("riverplot")
実行コマンドの紹介
詳細はコマンド、パッケージヘルプを確認してください。
#ライブラリの読み込み library("riverplot") #2色を指定し補色のカラーパレットを作成:ColRampPaletteコマンド ColRampPalette <- colorRampPaletteAlpha(c("#4b61ba", "#a87963"))(10) #カラーパレットのプロット #軸範囲:x:0-2, y:0-2 #プロット背景色を指定 par(bg = "#A9A9A9") #図の描写 plot(0:2, 0:2, type = "n", axes = FALSE, xlab = "", ylab = "") rasterImage(as.raster(ColRampPalette), 0, 2, 2, 0, interpolate = FALSE) #帯状のラインを既存のプロットに追加:curvesegコマンド #curveseg(x0 = x軸開始点, x1 = x軸終了点, y0 = y軸開始点, y1 = y軸終了点, # width = 帯の太さ, col = 色, lty = 枠線の太さ, form = "sin" or "line") #ColRampPaletteコマンドで出力した図に追加 #form:sin curveseg(x0 = 0, x1 = 1, y0 = 1, y1 = 0, width = 0.3, col= "#deb7a0", lty = 0, form = "sin") #form:line curveseg(x0 = 1, x1 = 2, y0 = 0, y1 = 1.7, width = 2 - 1.7, col= "#ffdd99", lty = 0, form = "line") #リバープロット:makeRiverコマンド #英語大文字でnodesとlistでedges(角リボンの幅)を設定 nodes <- c(LETTERS[1:4]) edges <- list(A = list(D = 10), B = list(D = 15), C = list(D = 8)) RiverData <- makeRiver(nodes, edges, node_xpos = c(1, 1, 1, 2), node_labels = c(A = "てすと", B = "テスト", C = "TEST", D = "合流"), node_styles = list(A = list(col = c("#4b61ba","#d9bb9c")), B = list(col = "#ffdd99"))) #MAC日本語文字化け防止 #par(family = "HiraKakuProN-W3") #プロット背景色を指定 par(bg = "#A9A9A9") #図の描写 plot(RiverData) #リバープロットのディフォルトの色(グレー)を変更:default.styleコマンド ds <- default.style() ds[["col"]] <- "red" #プロット背景色を指定 par(bg = "#A9A9A9") #図の描写 plot(RiverData, default_style= ds) #参考:riverplot.exampleに使用されているコマンドを紹介 #色とラベルの一部を変更しています #データの作成 ret <- list(nodes = data.frame(ID = LETTERS[1:8], x = c(1, 2, 2, 3, 3, 4, 5, 1), labels = c(NA, NA, "テスト", rep(NA, 4), "てすと"), stringsAsFactors = FALSE), styles = list(A = list(col = "#00990099", lty = 0, textcol = "white"), H = list(col = "#4b61ba", textcol = "white"), B = list(col = "#00006699", textcol = "white"), F = list(col = "#ffdd99"), D = list(col = "#00FF0099"))) ret$edges <- data.frame(N1 = c("A", "A", "A", "H", "H", "H", "B", "B", "C", "C", "C"), N2 = c("B", "C", "D", "D", "F", "G", "D", "F", "D", "E", "F"), Value = c(10, 20, 5, 10, 10, 20, 5, 10, 20, 15, 10), stringsAsFactors = F) rownames(ret$nodes) <- ret$nodes$ID #作成したデータをriverplotに対応するようにデータを変換 class(ret) <- c(class(ret), "riverplot") #MAC日本語文字化け防止 #par(family = "HiraKakuProN-W3") #プロット背景色を指定 par(bg = "#A9A9A9") #図の描写 plot(ret)
出力例
・ColRampPaletteコマンド
・curvesegコマンド(帯状のラインを既存のプロットに追加)
ColRampPaletteコマンドで出力した図に追加しています。
・makeRiverコマンド
・default.styleコマンド
・riverplot.exampleに使用されているコマンド
少しでも、あなたの解析が楽になりますように!!