今日はShinyでゲージを表示するパーツについてです。
こんなやつですね →
いいゲージのパーツがあまり見つからないのですがいい感じに使えるライブラリーをいくつか紹介します。
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でウイジェットを作ってしまいましょう!的なオフィシャルページもあるので、
そういった場合にはこのようなソリューションが良いかもしれません。