Gráfico gauge (velocímetro) en plotly

Gráfico gauge en plotly con Indicator

Un gráfico gauge (o velocímetro) muestra un único valor dentro de un rango, típicamente usado en dashboards para KPIs. Usa la clase Indicator de plotly.graph_objects con mode = "gauge+number".

import plotly.graph_objects as go

fig = go.Figure(go.Indicator(
    mode = "gauge+number",
    value = 68,
    gauge = dict(axis = dict(range = [0, 100]))))

fig.show()

Tramos de color

Divide el gauge en tramos de color con gauge.steps, una lista de diccionarios cada uno con un range y un color.

import plotly.graph_objects as go

fig = go.Figure(go.Indicator(
    mode = "gauge+number",
    value = 68,
    gauge = dict(
        axis = dict(range = [0, 100]),
        bar = dict(color = "#4C72B0"),
        steps = [dict(range = [0, 50], color = "#DEEBF7"),
                dict(range = [50, 80], color = "#9ECAE1")])))

fig.show()

Umbral

Marca un valor objetivo con gauge.threshold, dibujado como una línea fina a través del gauge.

import plotly.graph_objects as go

fig = go.Figure(go.Indicator(
    mode = "gauge+number",
    value = 68,
    gauge = dict(
        axis = dict(range = [0, 100]),
        bar = dict(color = "#4C72B0"),
        threshold = dict(line = dict(color = "#C44E52", width = 4),
                         value = 90))))

fig.show()

Comparación delta

Añade mode = "gauge+number+delta" y un diccionario delta con un valor reference para mostrar la diferencia respecto a un periodo anterior, coloreada en verde o rojo según la dirección.

import plotly.graph_objects as go

fig = go.Figure(go.Indicator(
    mode = "gauge+number+delta",
    value = 68,
    delta = dict(reference = 60),
    gauge = dict(axis = dict(range = [0, 100]))))

fig.show()

Título y sufijo del número

Añade un diccionario title para una etiqueta encima del gauge, y un diccionario number con suffix (o prefix) para formatear el valor mostrado, por ejemplo como porcentaje.

import plotly.graph_objects as go

fig = go.Figure(go.Indicator(
    mode = "gauge+number",
    value = 68,
    title = dict(text = "Carga del servidor"),
    number = dict(suffix = "%"),
    gauge = dict(axis = dict(range = [0, 100]))))

fig.show()
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon
Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon

También te puede interesar