Powered by AppSignal & Oban Pro

Indicators Overview

05_overview.livemd

Indicators Overview

Mix.install([
  {:plotly_ex, "~> 0.3"},
  {:kino, "~> 0.18"}
])

Section

Indicator traces display key metrics as numbers, deltas, or gauges. mode: is a "+" joined string combining "number", "delta", and/or "gauge". Multiple indicators share a grid via layout.grid with domain: %{row:, column:} per trace.

alias Plotly.{Figure, Indicator}

Figure.new()
|> Figure.add_trace(
  Indicator.new(
    mode: "number+delta+gauge",
    value: 200,
    delta: %{reference: 160},
    gauge: %{axis: %{visible: false, range: [0, 250]}},
    domain: %{row: 0, column: 0}
  )
)
|> Figure.add_trace(
  Indicator.new(
    mode: "number+gauge+delta",
    value: 120,
    gauge: %{shape: "bullet", axis: %{visible: false, range: [-200, 200]}},
    domain: %{x: [0.1, 0.5], y: [0.15, 0.35]}
  )
)
|> Figure.add_trace(
  Indicator.new(
    mode: "number+delta",
    value: 300,
    domain: %{row: 0, column: 1}
  )
)
|> Figure.add_trace(
  Indicator.new(
    mode: "delta",
    value: 40,
    domain: %{row: 1, column: 1}
  )
)
|> Figure.update_layout(
  width: 600,
  height: 400,
  margin: %{t: 25, b: 25, l: 25, r: 25},
  grid: %{rows: 2, columns: 2, pattern: "independent"},
  template: %{
    data: %{
      indicator: [%{
        title: %{text: "Speed"},
        mode: "number+delta+gauge",
        delta: %{reference: 90}
      }]
    }
  }
)
|> Plotly.show()