--- name: histogram kind: component lang: cpp domain: viz version: "1.1.0" purity: pure signature: "void histogram(const char* title, const float* values, int count, int bins = -1, float height = 200.0f)" description: "Histograma con bins automaticos, ejes lock (con AutoFit para bins dinamicos) y altura explicita" tags: [implot, chart, visualization, gpu, histogram, distribution, locked-axes] 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 / id interno" - 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" - name: height desc: "Altura del plot en pixeles (default 200). Explicita para evitar feedback loops con AutoResizeY" output: "Renderiza el histograma en el frame ImGui actual" --- # histogram Wrapper atomico sobre `ImPlot::PlotHistogram` con seleccion automatica del numero de bins. ## v1.1 - **Altura explicita** (`height`). - **Ejes con Lock + AutoFit**: a diferencia de bar_chart/line_plot/scatter_plot, histogram necesita el primer fit para decidir limites segun los bins calculados internamente por ImPlot. `AutoFit` hace ese ajuste pero `Lock` bloquea pan/zoom posterior. - Resto de flags estaticos via `plot_static::kPlotFlags`. Cuando `bins == -1` usa `ImPlotBin_Sturges` (`ceil(log2(n)) + 1`).