# Manual de uso — GrafiEstadistik Manual práctico para usar `grafiestadistik-motorv2.js` junto con `grafiestadistik-autov3.js` en páginas web o Moodle. El sistema funciona en dos capas: 1. **Motor**: define las funciones que dibujan los gráficos SVG. 2. **Auto**: busca elementos HTML con clases específicas y lee sus atributos `data-*` para dibujar automáticamente. --- ## 1. Archivos necesarios Carga siempre primero el motor y después el autoinicializador: ```html ``` En Moodle puedes dejarlos en `additionalhtmlhead` o cargarlos desde CDN, por ejemplo: ```html ``` El archivo `grafiestadistik-autov3.js` se ejecuta automáticamente cuando el documento está listo. También puedes reinicializar manualmente con: ```js window.GrafiEstadistikAuto.inicializar(document); ``` O sobre una sección específica: ```js const bloque = document.querySelector("#mi-bloque"); window.GrafiEstadistikAuto.inicializar(bloque); ``` --- ## 2. Reglas generales de escritura HTML Cada gráfico necesita: - Un `id` único. - Una clase específica, por ejemplo `grafico-lineas-auto`. - Atributos `data-*` con datos en formato JSON válido. Ejemplo mínimo: ```html
``` En Moodle, si el editor convierte comillas, puedes usar `"`: ```html ``` ### Conversión de nombres `data-*` JavaScript convierte automáticamente nombres con guion a formato camelCase: | En HTML | En JS | |---|---| | `data-etiquetas-x` | `dataset.etiquetasX` | | `data-valores-y` | `dataset.valoresY` | | `data-etiquetas-ejes` | `dataset.etiquetasEjes` | | `data-min-y` | `dataset.minY` | | `data-max-y` | `dataset.maxY` | | `data-ticks-y` | `dataset.ticksY` | | `data-range-x` | `dataset.rangeX` | | `data-step-x` | `dataset.stepX` | | `data-radio-punto` | `dataset.radioPunto` | --- ## 3. Gráfico de líneas / polígono de frecuencias Clase: ```html class="grafico-lineas-auto" ``` Uso recomendado para polígonos de frecuencia. ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único del contenedor. | | `data-etiquetas-x` | Sí | Lista de etiquetas del eje X. | | `data-valores-y` | Sí | Lista de valores del eje Y. Debe tener la misma cantidad de elementos que `data-etiquetas-x`. | | `data-etiquetas-ejes` | No | Objeto JSON con etiquetas y configuración del eje Y. | | `data-color` | No | Color de la línea y los puntos. Por defecto `#3e95cd`. | ### Opciones de `data-etiquetas-ejes` ```json { "x": "Marca de clase", "y": "Frecuencia", "minY": 0, "maxY": 10, "ticksY": 5 } ``` Si todas las etiquetas X son numéricas, incluso escritas con coma decimal como `"4,5"`, el motor las trata como escala numérica. Si no son numéricas, las distribuye de forma ordinal. ### Ejemplo mínimo ```html ``` ### Ejemplo completo ```html ``` ### Ejemplo compatible con Moodle usando `"` ```html ``` --- ## 4. Gráfico de barras Clase: ```html class="grafico-barra-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-frecuencias` | Sí | Lista numérica de frecuencias. | | `data-etiquetas` | Sí | Lista de etiquetas. Debe tener la misma cantidad de elementos que `data-frecuencias`. | | `data-color` | No | Color de las barras. Por defecto `#ccc`. | | `data-min-y` | No | Mínimo manual del eje Y. | | `data-max-y` | No | Máximo manual del eje Y. | | `data-ticks-y` | No | Cantidad de divisiones del eje Y. | | `data-posicion-etiquetas` | No | `1` para etiquetas horizontales, `0` para etiquetas rotadas verticalmente. | ### Ejemplo ```html ``` ### Ejemplo con etiquetas largas ```html ``` --- ## 5. Histograma Clase: ```html class="histograma-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-frecuencias` | Sí | Lista de frecuencias. | | `data-limites` | Sí | Lista de límites de clase. Debe tener una posición más que las frecuencias. | | `data-color` | No | Color de las barras. | | `data-min-y` | No | Mínimo del eje Y. | | `data-max-y` | No | Máximo del eje Y. | | `data-ticks-y` | No | Cantidad de divisiones del eje Y. | ### Ejemplo ```html ``` --- ## 6. Ojiva Clase: ```html class="ojiva-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-limites` | Sí | Lista de límites. Puede tener la misma longitud que las frecuencias acumuladas o una posición más. | | `data-frecuencias-acumuladas` | Sí | Lista de frecuencias acumuladas. | | `data-color` | No | Color de la línea. Por defecto `#4bc0c0`. | | `data-min-y` | No | Mínimo del eje Y. | | `data-max-y` | No | Máximo del eje Y. | | `data-ticks-y` | No | Cantidad de divisiones del eje Y. | | `data-etiquetas-ejes` | No | Objeto con `x` e `y`. | | `data-etiqueta-x` | No | Alternativa simple para nombrar el eje X. | | `data-etiqueta-y` | No | Alternativa simple para nombrar el eje Y. | Cuando `data-limites` tiene una posición más que `data-frecuencias-acumuladas`, el motor agrega automáticamente un punto inicial con frecuencia acumulada `0`. ### Ejemplo ```html ``` --- ## 7. Gráfico de dispersión Clase: ```html class="grafico-dispersion-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-puntos` | Sí | Lista de objetos `{ "x": número, "y": número }`. | | `data-etiquetas` | No | Objeto con configuración avanzada. | | `data-etiquetas-ejes` | No | Objeto con nombres de ejes `{ "x":"...", "y":"..." }`. | | `data-etiqueta-x` | No | Nombre simple del eje X. | | `data-etiqueta-y` | No | Nombre simple del eje Y. | | `data-range-x` | No | Rango manual X como texto: `"0,100"`. | | `data-range-y` | No | Rango manual Y como texto: `"0,50"`. | | `data-step-x` | No | Salto entre marcas del eje X. | | `data-step-y` | No | Salto entre marcas del eje Y. | | `data-ticks-x` | No | Cantidad de divisiones en X si no se usa `stepX`. | | `data-ticks-y` | No | Cantidad de divisiones en Y si no se usa `stepY`. | | `data-width` | No | Ancho del SVG. Por defecto `640`. | | `data-height` | No | Alto del SVG. Por defecto `420`. | | `data-radio-punto` | No | Radio de cada punto. | | `data-color` | No | Color de los puntos. | ### Ejemplo básico ```html ``` ### Ejemplo con rangos y saltos ```html ``` ### Configuración avanzada en `data-etiquetas` También puedes pasar configuración dentro de `data-etiquetas`: ```html ``` --- ## 8. Gráfico circular Clase: ```html class="grafico-circular-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-datos` | Sí | Lista de objetos con `label`, `valor` y opcionalmente `color`. | ### Ejemplo ```html ``` Si no se define `color` en cada sector, el motor asigna colores por defecto. --- ## 9. Pictograma Clase: ```html class="pictograma-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-datos` | Sí | Lista de objetos `{ "label":"...", "valor": número }`. | | `data-icono` | Sí | Ruta SVG tipo `path d`. | | `data-valor-por-icono` | Sí | Valor que representa cada ícono. | | `data-color` | No | Color del ícono. | El motor permite íconos fraccionarios cuando el valor no es múltiplo exacto de `data-valor-por-icono`. ### Ejemplo ```html ``` --- ## 10. Gráfico de caja y bigotes Clase: ```html class="caja-auto" ``` ### Atributos | Atributo | Obligatorio | Descripción | |---|---:|---| | `id` | Sí | Identificador único. | | `data-valores` | Sí | Objeto con resumen de cinco números. | | `data-color` | No | Color de la caja. | ### Estructura de `data-valores` ```json { "min": 2, "q1": 5, "mediana": 8, "q3": 12, "max": 16, "limiteMin": 0, "limiteMax": 20, "salto": 5 } ``` Los campos obligatorios son: - `min` - `q1` - `mediana` - `q3` - `max` Los campos opcionales son: - `limiteMin` - `limiteMax` - `salto` Debe cumplirse: ```text min <= q1 <= mediana <= q3 <= max ``` ### Ejemplo ```html ``` --- ## 11. Uso manual con JavaScript Además del modo automático por HTML, el motor exporta funciones en: ```js window.GrafiEstadistik ``` También mantiene compatibilidad legacy, por lo que las funciones pueden existir directamente en `window`. ### Funciones disponibles ```js window.GrafiEstadistik.dibujarGraficoBarra( contenedorId, frecuencias, etiquetasX, color, minY, maxY, ticksY, posicionEtiquetas ); window.GrafiEstadistik.dibujarPictograma( contenedorId, datos, icono, valorPorIcono, color ); window.GrafiEstadistik.dibujarHistograma( contenedorId, frecuencias, limites, color, minY, maxY, ticksY ); window.GrafiEstadistik.dibujarGraficoCircular( contenedorId, datos ); window.GrafiEstadistik.dibujarGraficoCaja( contenedorId, valores, color ); window.GrafiEstadistik.dibujarOjiva( contenedorId, limites, frecuenciasAcumuladas, color, minY, maxY, ticksY, etiquetasEjes ); window.GrafiEstadistik.dibujarGraficoDispersion( contenedorId, puntos, etiquetas, color ); window.GrafiEstadistik.dibujarGraficoLineas( contenedorId, etiquetasX, valoresY, etiquetasEjes, color ); ``` ### Ejemplo manual ```html ``` --- ## 12. Plantilla general para Moodle ```htmlEl gráfico anterior representa un polígono de frecuencias usando marcas de clase.
Gráfico de barras
Histograma
Polígono de frecuencias
Ojiva
Dispersión
Circular
Caja y bigotes
```