---
name: histogram
kind: component
lang: cpp
domain: viz
version: "1.0.0"
purity: pure
signature: "void histogram(const char* title, const float* values, int count, int bins = -1)"
description: "Renderiza un histograma con bins automaticos o manuales usando ImPlot PlotHistogram dentro de un frame ImGui"
tags: [implot, chart, visualization, gpu, histogram, distribution]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: [implot]
tested: false
tests: []
test_file_path: ""
file_path: "cpp/functions/viz/histogram.cpp"
framework: imgui
params:
  - name: title
    desc: "Titulo del histograma mostrado como cabecera del plot"
  - name: values
    desc: "Array de valores numericos a distribuir en bins"
  - name: count
    desc: "Numero de valores en el array"
  - name: bins
    desc: "Numero de bins. -1 = automatico via regla de Sturges (ImPlotBin_Sturges). Positivo = numero explicito de bins"
output: "Renderiza el histograma en el frame ImGui actual"
---

# histogram

Wrapper atomico sobre `ImPlot::PlotHistogram` con seleccion automatica del numero de bins.

Cuando `bins == -1` usa `ImPlotBin_Sturges`, que calcula el numero de bins como `ceil(log2(n)) + 1`. Para distribuciones con muchos valores o alta varianza puede preferirse pasar un valor explicito.

El plot usa `ImVec2(-1, 0)` para ocupar el ancho disponible con altura automatica.

Debe llamarse dentro del render callback de `fn::run_app`.
