R Shiny の Gaugeコンポーネント

今日はShinyでゲージを表示するパーツについてです。

こんなやつですね → f:id:okdata:20190812163000p:plain:w200

いいゲージのパーツがあまり見つからないのですがいい感じに使えるライブラリーをいくつか紹介します。

shinyWidgets – knobInput

shinyWidgetsライブラリーの中のknobInputという関数です。
これはノブを回して値を変更していくinput用のパーツです。
入力用のパーツなので、範囲に応じて色を変えていくような細かいカスタマイズにはいろいろと修正が必要そうですが、
基本的なこれでいろいろなことができます。

flextdashboard – gauge

もう一つはflexdashboardというmarkdownでダッシュボードを作るライブラリーの中に入っているゲージパーツです。

ゲージの色はブートストラップのテーマカラーに応じて範囲を指定することができますのでもう少し応用が利くかと思います。
基本的な使い方は以下の通りです。

  output$gauge = renderGauge({
gauge(60,
min = 0,
max = 100,
sectors = gaugeSectors(
success = c(0, 40), # 0-40の間はsuccess色
warning = c(40, 60), # 40-60の間はwarning色
danger = c(60, 100) # 60-100はdanger色
)
)
})

色味を変更したい場合には5色の色のうち変えたいものをカラーコードで指定すればOKです、
colors ("success", "warning", "danger", "primary", and "info")

例えば以下のような感じですね。

          sectors = gaugeSectors(
success = c(0, 40),
warning = c(40, 60),
danger = c(60, 100),
colors = c("yellow", "#ffbc36", "#ffa3eb", "primary", "info")
)

これはゲージの表示だけのパーツなのでカスタマイズが効く反面、ゲージへの数値の入力は別途作り込みが必要となります。

Gaugeウイジェットの作成

ゲージのためだけに外部ライブラリーを読み込むとどうしても重たくなりがちなので、
JSでウイジェットを作ってしまいましょう!的なオフィシャルページもあるので、
そういった場合にはこのようなソリューションが良いかもしれません。