Rで解析:インタラクティブな平行座標プロットを作成「parallelPlot」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

インタラクティブな平行座標プロットを作成するパッケージの紹介です。出力例を実行例に示します。指標はドラッグで入れ替えたり、線の色などを変更することが可能です。

なお、体裁の細かい設定やプロットデータの指定はコマンドで指定します。

パッケージのバージョンは0.4.0。windows 11のR version 4.3.3で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

# パッケージのインストール
install.packages("parallelPlot")

実行コマンド

詳細はコメントやコマンドヘルプを確認してください。

# パッケージの読み込み
library("parallelPlot")


### データ例の作成 #####
set.seed(1234)
n = 50
TestData <- data.frame(Int_1 = sample(1:10, n, replace =  TRUE),
                       Char_1 = factor(sample(LETTERS[1:4], n, replace =  TRUE)),
                       Binary_1 = sample(0:1, n, replace =  TRUE),
                       Binary_2 = sample(c(TRUE, FALSE), n, replace =  TRUE),
                       Int_2 = sample(1:10, n, replace =  TRUE),
                       Char_2 = factor(sample(LETTERS[1:2], n, replace =  TRUE)))

# 内容を確認
str(TestData)
'data.frame':	50 obs. of  6 variables:
$ Int_1   : int  10 6 5 9 5 6 4 2 7 6 ...
$ Char_1  : Factor w/ 4 levels "A","B","C","D": 2 4 3 2 3 1 4 3 2 1 ...
$ Binary_1: int  0 1 1 1 1 0 0 1 0 0 ...
$ Binary_2: logi  FALSE FALSE TRUE FALSE TRUE TRUE ...
$ Int_2   : int  3 9 9 4 5 1 3 6 5 6 ...
$ Char_2  : Factor w/ 2 levels "A","B": 1 1 2 2 1 1 2 2 1 1 ...
########


# インタラクティブな平行座標プロットを作成:parallelPlotコマンド
# html widgetsで操作:controlWidgetsオプション;TRUE/FALSE
# 参照指標の指定,本指標を基準に線色が設定される:refColumnDimオプション
# 線色を指定:categoricalCSオプション;
#   指標がカテゴリ変数の場合:"Category10","Accent","Dark2","Paired","Set1"
#   その他:"Viridis","Inferno","Magma","Plasma","Warm","Cool","Rainbow",
#     "CubehelixDefault","Blues","Greens","Greys","Oranges","Purples","Reds",
#     "BuGn","BuPu","GnBu","OrRd","PuBuGn","PuBu",”RdBu","RdPu","YlGnBu",
#     "YlGn","YlOrBr","YlOrRd";初期値:"Viridis"
# データをカテゴリ変数にする:categoricalオプション;list classで指定します
# カテゴリ変数の箱の表現設定:categoriesRepオプション;
#   指標間で等しい:EquallySizedBoxesオプション,
#   データ量で可変:EquallySpacedLinesオプション
# カテゴリ変数の箱内の線の処理:arrangeMethodオプション;"fromLeft","fromRight","fromBoth")
# 指標名を指定する:columnLabelsオプション
# 指標名の45度回転:rotateTitleオプション;TRUE/FALSE
# 各指標にヒストグラムを付ける:histoVisibilityオプション;TRUE/FALSEで指定する
# 指標名左側に下矢印を付ける:invertedAxesオプション
# データのカットオフ:cutoffsオプション
# 水平の並び:refRowIndexオプション
parallelPlot(TestData,
             # html widgetsで操作
             controlWidgets = TRUE, width = 700, #height = 350,
             # 参照指標の指定,本指標を基準に線色が設定される
             refColumnDim = "Char_1",
             # 線色を指定
             categoricalCS = "Paired",
             # データをカテゴリ変数にする
             categorical = list(Char_1 = c("A", "B", "C", "D"),
                                Binary_1 = c(0, 1),
                                Binary_2 = c(0, 1),
                                Int_2 = 1:10,
                                Char_2 = c("A", "B")),
             # カテゴリ変数の箱の表現設定
             categoriesRep = "EquallySizedBoxes",
             # カテゴリ変数の箱内の線の処理
             arrangeMethod = "fromRight",
             # 指標名を指定する
             columnLabels = c("からだ<br>に<br>いいもの", "に", "いいもの", "R", "が", "楽しい"),
             # 指標名の回転
             rotateTitle = TRUE,
             # 各指標にヒストグラムを付ける
             histoVisibility = rep(TRUE, 6),
             # 指標名左側に下矢印を付ける
             invertedAxes = "Int_1",
             # データのカットオフ;データ範囲はc(最小,最大)で指定する
             cutoffs = list(Int_1 = list(c(4, 8)), Char_2 = "B"),
             # 水平の並び
             refRowIndex = 1
             )

実行例


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

タイトルとURLをコピーしました