Files
fn_registry/cpp/functions/viz/pie_chart.md
T
egutierrez 3699a2554d docs(registry): tested:true + test_file_path en .md de primitivos
20 funciones C++ pasan de tested:false a tested:true con sus tests
correspondientes y test_file_path apuntando a cpp/tests/. Cubre 4 tests
reales (tween_curves, pie/kpi/bar math) y 16 placeholders (componentes
UI con tests visuales pendientes para 0048).

Coverage cpp pasa de 4% (3/81) a 28% (23/81).
2026-04-28 23:42:35 +02:00

2.7 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
pie_chart component cpp viz 1.1.0 pure void pie_chart(const char* title, const char* const* labels, const float* values, int count, float radius = 0.0f, float height = 200.0f) Pie/donut chart con ImPlot, ejes pineados, altura explicita y tooltip por slice al pasar el mouse
implot
chart
visualization
gpu
pie
donut
tooltip
locked-axes
false
implot
true
slice_at returns -1 outside radius
slice_at on cursor at center returns first slice
slice_at directly above center returns first slice
slice_at right of center hits second slice (CCW)
slice_at single slice always returns 0
slice_at right at radius edge
slice_at unequal slices distributes proportionally
cpp/tests/test_pie_chart_math.cpp cpp/functions/viz/pie_chart.cpp imgui
name desc
title Titulo del grafico (se usa tambien como id interno del plot)
name desc
labels Array de etiquetas para cada segmento del pie
name desc
values Array de valores numericos para cada segmento
name desc
count Numero de segmentos (longitud de labels y values)
name desc
radius Radio del pie (0 = auto 0.4). Positivo = radio explicito. Negativo = modo donut con outer radius = |radius|
name desc
height Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con contenedores AutoResizeY
Renderiza el pie en el frame ImGui actual; muestra tooltip con label + valor + % al pasar por encima de un slice

pie_chart

Wrapper atomico sobre ImPlot::PlotPieChart configurado para visualizacion estatica en dashboards. Modo pie (radius >= 0) o donut (radius < 0).

v1.1 (2026-04-24)

  • Altura explicita (height): necesaria para evitar vibracion en contenedores con AutoResizeY. Ver viz/plot_static.h.
  • Flags compartidos desde plot_static::kPlotFlags + kAxisFlagsHidden (axis decorations off): sin pan/zoom, sin menus, sin auto-fit, sin highlight al hover.
  • Tooltip por slice: calcula que slice esta bajo el cursor usando atan2(mouse - center) (ImPlot dibuja slices en sentido CCW matematico desde angulo 90°, arriba) y muestra label + valor + porcentaje.
  • Aspect 1:1 mantenido con ImPlotFlags_Equal para que el pie no se deforme en paneles rectangulares.

Ejemplo

const char* labels[] = {"Pure", "Impure"};
float values[] = {412, 187};
pie_chart("##purity", labels, values, 2);                  // pie normal, h=200
pie_chart("##purity", labels, values, 2, -0.4f, 260.0f);   // donut, h=260