本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:JavaScriptのMetricsGraphicsがRから利用できます。「metricsgraphicsパッケージ」の紹介

インタラクティブな図を出力するライブラリは数多くありますが、「MetricsGraphics.js」ライブラリは使い方が簡単で出力されたHTMLファイルの表示が非常に高速です。

ぜひとも、ウェブ制作に関わる関係者に表現手段の一つとして「metricsgraphics」パッケージを利用いただけたらと思います。ぐりぐり動きますので出力例で試してみてください。

パッケージのバージョンは0.9.0。実行コマンドはwindows 11のR version 4.1.2で確認しています。

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

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

install.packages("metricsgraphics")
スポンサーリンク

実行コマンドの紹介

本パッケージは%>%(パイプ)でコマンドをつなげて使用することもできます。紹介コマンドではパイプを使用しています。作成したHTMLファイルはsaveWidget(“ファイル名.html”)コマンドで作業フォルダに出力します。詳細はコメントを確認してください。

<パッケージ読み込み、HTMLファイルの保存場所の指定とデータ例の作成>
作業の前に実行してください

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

#HTMLファイルの保存場所を指定
setwd(paste(as.character(tkchooseDirectory(title = "保存場所を選択"), sep = "", collapse ="")))

#データ例の作成
SampleData <- data.frame(Data1 = sample(1:500, 30),
                         Data2 = sample(1:500, 30))

#棒グラフの描写:mjs_barコマンド
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 320, height = 400) %>% mjs_bar() %>%
  saveWidget("bar.html")

#ヒストグラムの描写:mjs_histogramコマンド
SampleData %>%
  mjs_plot(x = Data1, width = 320, height = 400) %>% mjs_histogram(bins = 30) %>%
  saveWidget("Histogram.html")

#ラベルの追加:mjs_labsコマンド
SampleData %>%
  mjs_plot(x = Data1, width = 320, height = 400) %>% mjs_histogram(bins = 30) %>%
  mjs_labs(x = "ラベルの追加", y =  "ラベルの追加") %>%
  saveWidget("Labs.html")

#ラインプロットの描写:mjs_lineコマンド
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 320, height = 400) %>% mjs_line() %>%
  saveWidget("LinePlot.html")

#散布図の描写:mjs_pointコマンド
data.frame(Data1 = sample(1:500, 100),
           Data2 = sample(1:500, 100)) %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>% mjs_point(least_squares = TRUE) %>%
  saveWidget("PointPlot.html")

#図の装飾
#x軸に対して平行線の追加:mjs_add_baseline
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>% mjs_line() %>%
  mjs_add_baseline(y_value = 150, label = "yの値を設定して線を追加します") %>%
  saveWidget("add_baseline.html")

#y軸に対して平行線の追加:mjs_add_baseline
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>% mjs_line() %>%
  mjs_add_marker(x_value = 150, "位置はxの値で設定します") %>%
  saveWidget("mjs_add_marker.html")

#線とシンボルの注釈を追加
#線の追加:mjs_add_lineコマンド
#シンボルの注釈を追加:mjs_add_legendコマンド
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>%
  mjs_line() %>% mjs_add_line(Data1) %>%
  mjs_add_legend(legend=c("X", "Y")) %>%
  saveWidget("add_legend.html")

#マウスオーバー時のデータラベルのカスタム
#mjs_add_mouseoverコマンド:ポイントは'(カンマで文字列を囲む)
#データ例の作成
SampleData <- data.frame(Data1 = sample(1:500, 30),
                         Data2 = sample(1:500, 30),
                         Test = c(rep(c("てすと", "テスト"), 15)))
#データのプロット
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>%
  mjs_point() %>%
  mjs_add_mouseover("function(d, i) {
                $('{{ID}} svg .mg-active-datapoint')
                    .text('カスタム表示 : ' + d.point.Test + ' ' + i);
                 }") %>%
  saveWidget("add_mouseover.html")

<出力例> ・棒グラフの描写:mjs_barコマンド
・ヒストグラムの描写:mjs_histogramコマンド

・ラインプロットの描写:mjs_lineコマンド

・散布図の描写:mjs_pointコマンド

<図の装飾コマンド>
詳細はコメントを確認してください。

#ラベルの追加:mjs_labsコマンド
SampleData %>%
  mjs_plot(x = Data1, width = 320, height = 400) %>% mjs_histogram(bins = 30) %>%
  mjs_labs(x = "ラベルの追加", y =  "ラベルの追加") %>%
  saveWidget("Labs.html")

#x軸に対して平行線の追加:mjs_add_baseline
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>% mjs_line() %>%
  mjs_add_baseline(y_value = 150, label = "yの値を設定して線を追加します") %>%
  saveWidget("add_baseline.html")

#y軸に対して平行線の追加:mjs_add_marker
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>% mjs_line() %>%
  mjs_add_marker(x_value = 150, "位置はxの値で設定します") %>%
  saveWidget("mjs_add_marker.html")

#線とシンボルの注釈を追加
#線の追加:mjs_add_lineコマンド
#シンボルの注釈を追加:mjs_add_legendコマンド
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>%
  mjs_line() %>% mjs_add_line(Data1) %>%
  mjs_add_legend(legend = c("X", "Y")) %>%
  saveWidget("add_legend.html")

#マウスオーバー時のデータラベルのカスタム
#mjs_add_mouseoverコマンド:ポイントは'(カンマで文字列を囲む)
#データ例の作成
SampleData &amp;lt;- data.frame(Data1 = sample(1:500, 30),
                                Data2 = sample(1:500, 30),
                                Test = c(rep(c("てすと", "テスト"), 15)))
#データのプロット
SampleData %>%
  mjs_plot(x = Data1, y = Data2, width = 300, height = 400) %>%
  mjs_point() %>%
  mjs_add_mouseover("function(d, i) {
    $('{{ID}} svg .mg-active-datapoint')
    .text('カスタム表示 : ' + d.point.Test + ' ' + i);
  }") %>%
  saveWidget("add_mouseover.html")


<出力例>
・ラベルの追加:mjs_labsコマンド

・x軸に対して平行線の追加:mjs_add_baseline

・y軸に対して平行線の追加:mjs_add_marker

・線とシンボルの注釈を追加
本例ではインタラクティブになりません。パッケージHELP例ではインタラクティブです。mjs_add_lineコマンドを外すとインタラクティブになります。

・マウスオーバー時のデータラベルのカスタム

少しでも、あなたのウェブや実験の解析が楽になりますように!!

このコードの続きをAIに聞く

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.