Files
fn_registry/cpp/functions/viz/sparkline.md
T
egutierrez 0bdf35a461 feat: add C++ ImGui functions for core UI and visualization
Funciones C++/ImGui para dashboards (grid, panel, docking, sidebar, tabs),
visualizaciones (candlestick, gauge, histogram, pie, sparkline, heatmap,
scatter, line, bar, surface3d, kpi, table), grafos (force layout, renderer,
viewport, spatial hash, types) y utilidades (time series buffer, tracy zones,
memory/fps overlay, plot theme).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 00:10:18 +02:00

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, framework, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path framework params output
sparkline component cpp viz 1.0.0 pure void sparkline(const char* id, const float* values, int count, float width = 100.0f, float height = 20.0f) Renderiza un mini grafico de lineas inline para uso en tablas, headers y KPI cards
imgui
visualization
sparkline
inline
dashboard
false
imgui
false
cpp/functions/viz/sparkline.cpp imgui
name desc
id Identificador unico del widget, usado con PushID/PopID para garantizar unicidad en tablas
name desc
values Array de valores float del sparkline (serie temporal)
name desc
count Numero de valores en el array
name desc
width Ancho en pixels del sparkline (default 100.0)
name desc
height Alto en pixels del sparkline (default 20.0)
Renderiza el sparkline inline en el frame ImGui actual, reservando espacio con ImGui::Dummy

sparkline

Mini grafico de lineas inline construido sobre ImGui draw primitives. No requiere ImPlot.

Auto-escala el eje Y al rango minimo/maximo de los valores. Dibuja una polyline con relleno semitransparente bajo la curva. Disenado para encajar en celdas de tablas, headers y tarjetas KPI.

Ofrece dos overloads:

  • Sin color: usa verde suave por defecto (ImVec4(0.35, 0.85, 0.45, 1.0))
  • Con color: acepta cualquier ImVec4 para personalizar la linea y el relleno

Debe llamarse dentro del render callback de fn::run_app (o cualquier contexto con un frame ImGui activo).

Ejemplo

// En una celda de tabla
ImGui::TableNextColumn();
sparkline("##revenue_spark", revenue.data(), (int)revenue.size(), 80.0f, 18.0f);

// Con color personalizado (rojo para valores negativos)
sparkline("##pnl", pnl.data(), (int)pnl.size(),
          ImVec4(0.9f, 0.3f, 0.3f, 1.0f), 100.0f, 20.0f);

// KPI card inline con label
ImGui::Text("Revenue"); ImGui::SameLine();
sparkline("kpi_rev", data, count);

Notas

  • El relleno bajo la curva usa alpha 40/255 del mismo color de la linea.
  • Si todos los valores son iguales (rango < 1e-6), la linea se dibuja en el centro verticalmente.
  • El grosor de linea es 1.5px para que sea legible a alturas de 16-24px.
  • id no se muestra visualmente; solo se pasa a PushID para que ImGui diferencie widgets con los mismos datos en la misma tabla.