Rで解析:D3.jsでインタラクティブな散布図を作成する「scatterD3」パッケージの紹介
D3.jsを使用したJavaScriptの散布図を作成するパッケージ「scatterD3」は拡大縮小、ラベルの移動、svg出力などインタラクティブな機能により散布図を簡単に生成できます。
パッケージバージョンは1.0.2。Windows 11 x64 (build 26200)のR version 4.6.0で確認しています。
パッケージのインストール
下記コマンドを実行してください。
# パッケージのインストール
install.packages("scatterD3")
# パッケージの読み込み
library("scatterD3")スポンサーリンク
コマンド例
詳細はコメント、パッケージのヘルプを確認してください。
JavaScript = クライアントサイドのプログラミング言語で、Webページ上での動作を実現するために使用される。 D3 = Data-Driven Documentsの略で、データを用いてインタラクティブな可視化を行うためのJavaScriptライブラリ。
インタラクティブな散布図を作成:scatterD3コマンド
| オプション | 意味 | 初期値 |
|---|---|---|
| x | x値のベクトル、もしくはデータがNULLでない場合には変数名。 | |
| y | y値のベクトル、もしくはデータがNULLでない場合には変数名。 | |
| data | プロットに使用するデフォルトのデータセットを指定。 | NULL |
| lab | テキストラベル、もしくはデータがNULLでない場合には変数名。 | NULL |
| x_log | x軸を対数スケールにするかどうか。 | FALSE |
| y_log | y軸を対数スケールにするかどうか。 | FALSE |
| point_size | 点のサイズ。(size_varがNULLでない場合には無視される) | 64 |
| labels_size | テキストラベルのサイズ。 | 10 |
| labels_positions | データフレーム、もしくは自動ラベルを使用するための文字列”auto”. | NULL |
| point_opacity | 点の不透明度。 | 1 |
| opacities | opacityのリストやベクトルを指定する。 | NULL |
| hover_size | マウスオーバー時のサイズ変更率を指定する。 | 1 |
| hover_opacity | マウスオーバー時点の不透明度を指定する。 | NULL |
| fixed | 1対1のアスペクト比を強制する。 | FALSE |
| col_var | 点の色を指定するか、データが無い場合は変数名を指定する。 | NULL |
| col_continuous | 色スケールが連続である必要があるかどうかを指定する。(デフォルトは連続) | NULL |
| colors | カスタム点の色を指定する。色は16進数で定義するか、d3-scale-chromatic関数名を指定する。 | NULL |
| ellipses | 点や色別グループにエリプシスを描くかどうかを指定する。 | FALSE |
| ellipses_level | エリプシスの信頼水準を指定する。(デフォルトは0.95) | 0.95 |
| symbol_var | 点の記号を指定するか、データが無い場合は変数名を指定する。 | NULL |
| symbols | 点記号のベクトル。定義可能な値は「circle」、「cross」、「diamond」、「square」、「star」、「triangle」、「wye」。 | NULL |
| size_var | 点サイズのマッピングや変数名(データが NULL の場合)。 | NULL |
| size_range | 最小と最大の点サイズを指定する数値ベクトル(長さ2)。 | c(10, 300) |
| sizes | 各サイズは名前で関連付けられる名付けたリストや名付けたベクトル。 | NULL |
| col_lab | 色伝説のタイトル。NAに設定すると色伝説を削除する。 | NULL |
| symbol_lab | 点記号の伝説のタイトル。NAに設定すると点記号伝説を削除する。 | NULL |
| size_lab | サイズ伝説のタイトル。NAに設定するとサイズ伝説を削除する。 | NULL |
| key_var | 行IDのベクトル(データが NULL の場合)。Shinyアプリケーションで表示される行がインタラクティブにフィルターされた場合にのみ使用される。 | NULL |
| type_var | 点のタイプ:「point」はデフォルトのドット、「arrow」は起点から始まる矢印。 | NULL |
| opacity_var | 点の不透明度(0〜1の値)。 | NULL |
| unit_circle | 図形の半径を指定 | FALSE |
| url_var | クリックされた点で開くURLのリスト | NULL |
| tooltips | ポイント上でのツールチップ表示を指定 | TRUE |
| tooltip_text | ツールチップのテキスト | NULL |
| tooltip_position | ツールチップの位置を指定 (ヘルプ参照) | “bottom right” |
| xlab | x軸のラベル | NULL |
| ylab | y軸のラベル | NULL |
| html_id | SVGのrootノードに付けるIDを指定 | NULL |
| width | 図形の幅を指定 | NULL |
| height | 図形の高さを指定 | NULL |
| legend_width | 図の伝説領域の幅を指定します。 | 150 |
| left_margin | プロットの左側の余白を指定します。 | 30 |
| xlim | x軸の制限値を指定します。 | NULL |
| ylim | y軸の制限値を指定します。 | NULL |
| dom_id_reset_zoom | リセットズームコントロールを結びつける要素のIDを指定します。 | “scatterD3-reset-zoom” |
| dom_id_svg_export | SVGエクスポートコントロールを結びつける要素のIDを指定します。 | “scatterD3-svg-export” |
| dom_id_lasso_toggle | トグルラッソコントロールを結びつける要素のIDを指定します。 | “scatterD3-lasso-toggle” |
| transitions | データ更新を滑らかに表示するかどうかを指定します。 | FALSE |
| menu | ツールメニューを表示するかどうかを指定します。 | TRUE |
| lasso | ラッソ選択機能を有効にするかどうかを指定します。 | FALSE |
| lasso_callback | 選択肢を指定するための関数体 | NULL |
| click_callback | クリックされた要素のインデックスとHTML IDを指定する関数体 | NULL |
| init_callback | 初期化時点での散布図オブジェクトに適用される関数体 | NULL |
| zoom_callback | ズームアクション後、新しい境界値を指定する関数体 | NULL |
| zoom_on | プロットの描画や更新時に中心となる座標を指定する | NULL |
| zoom_on_level | プロットの描画や更新時のズームレベルを指定する (NULL時は無視) | NULL |
| disable_wheel | マウスホイールによるズームを無効化するかどうかを指定する | FALSE |
| lines | 散布図に追加する線分のデータフレームを指定する (スロープ、切片、行数が必要) | data.frame(slope = c(0, Inf), intercept = c(0, 0), stroke_dasharray = c(5, 5)) |
| axes_font_size | 軸のテキストサイズを指定する (CSS互換値) | “100%” |
| legend_font_size | レジェンドのテキストサイズを指定する (CSS互換値) | “100%” |
| caption | アイコンをクリックした際に表示されるキャプション。 | NULL |
# 散布図の作成
scatterD3(x = mtcars$wt, y = mtcars$mpg, data=NULL, lab = rownames(mtcars),
col_var = mtcars$cyl, symbol_var = mtcars$am,
xlab = "Weight", ylab = "Mpg", col_lab = "Cylinders",
symbol_lab = "Manual transmission", html_id = NULL)・実行結果:上記コマンドの実行でインタラクティブな操作が可能です。

<おすすめのRに関する書籍です>
R/RStudioでやさしく学ぶプログラミングとデータ分析【ダウンロード特典付き!】 | 掌田津耶乃
Amazonで掌田津耶乃のR/RStudioでやさしく学ぶプログラミングとデータ分析【ダウンロード特典付き!】。アマゾンならポイント還元本が多数。
この記事が誰かの役に立ちますように。
スポンサーリンク