7eef2544ab
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>
47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
---
|
|
name: pie_chart
|
|
kind: component
|
|
lang: cpp
|
|
domain: viz
|
|
version: "1.0.0"
|
|
purity: pure
|
|
signature: "void pie_chart(const char* title, const char* const* labels, const float* values, int count, float radius = 0.0f)"
|
|
description: "Renderiza un grafico circular (pie/donut) usando ImPlot PlotPieChart dentro de un frame ImGui"
|
|
tags: [implot, chart, visualization, gpu, pie, donut]
|
|
uses_functions: []
|
|
uses_types: []
|
|
returns: []
|
|
returns_optional: false
|
|
error_type: ""
|
|
imports: [implot]
|
|
tested: false
|
|
tests: []
|
|
test_file_path: ""
|
|
file_path: "cpp/functions/viz/pie_chart.cpp"
|
|
framework: imgui
|
|
params:
|
|
- name: title
|
|
desc: "Titulo del grafico"
|
|
- name: labels
|
|
desc: "Array de etiquetas para cada segmento del pie"
|
|
- name: values
|
|
desc: "Array de valores numericos para cada segmento"
|
|
- name: count
|
|
desc: "Numero de segmentos (longitud de labels y values)"
|
|
- name: radius
|
|
desc: "Radio del pie (0 = auto 0.4). Positivo = radio explicito. Negativo = modo donut con outer radius = |radius| e inner = 0.2"
|
|
output: "Renderiza el grafico circular en el frame ImGui actual"
|
|
---
|
|
|
|
# pie_chart
|
|
|
|
Wrapper atomico sobre `ImPlot::PlotPieChart` con soporte para modo pie y modo donut.
|
|
|
|
El eje del plot se configura con `ImPlotAxisFlags_NoDecorations` para ocultar los ejes y mostrar solo el grafico circular. El aspecto se fuerza a cuadrado con `ImPlotFlags_Equal`.
|
|
|
|
**Modo pie** (`radius >= 0`): dibuja un pie chart solido. Si `radius == 0`, usa radio automatico de 0.4.
|
|
|
|
**Modo donut** (`radius < 0`): usa `|radius|` como radio exterior. El agujero interior es fijo en 0.2, suficiente para texto central.
|
|
|
|
Debe llamarse dentro del render callback de `fn::run_app`.
|