Referencia

Referencia de API

El namespace global KatuCharts crea gráficos y gestiona valores por defecto; cada instancia de gráfico expone métodos para actualizar, exportar, inspeccionar y descartar.

Global — KatuCharts

MétodoFirma → retornaDescripción
chartchart(containerOrId: string | HTMLElement, options) → ChartCrea un gráfico en el contenedor (id o nodo DOM).
setOptionssetOptions(options) → voidEstablece valores por defecto globales heredados por gráficos posteriores.
getOptionsgetOptions() → Partial<Options>Lee los valores por defecto globales actuales.
useuse(module) → voidRegistra un plugin/módulo con un método install(KC).
dateFormatdateFormat(format: string, timestamp: number) → stringFormatea una marca de tiempo en ms (tokens abajo).
numberFormatnumberFormat(value, decimals, decPoint?, thousandsSep?) → stringFormatea un número; valores por defecto '.' y ','.
colorcolor(input: string) → KatuChartsColorObjeto color encadenable: .brighten(n), .setOpacity(a), .toString().
palettesRecord<string, string[]>Mapa de nombre de paleta → colores hex.
getPalettegetPalette(name: string) → string[]Copia de una paleta nombrada (lanza excepción si es desconocida).
setThemesetTheme(name: string) → voidAplica 'dark' | 'light' | 'nordic'.
SeriesRegistry.registerTyperegisterType(name, seriesClass) → voidRegistra un tipo de serie personalizado.
SeriesRegistry.getTypegetType(name) → class | undefinedBusca una clase de serie registrada.

Tokens de dateFormat

TokenSalidaEjemplo
%YAño de cuatro dígitos2026
%m / %dMes / día con ceros iniciales03 / 22
%H / %M / %SHoras (24h) / minutos / segundos14 / 05 / 09
%B / %ANombre completo de mes / día de semanaMarzo / Domingo

Paletas y temas

20 paletas integradas: default, tableau10, d3classic, brewer, google, ocean, sunset, earth, forest, berry, corporate, minimal, nordic, darkMode, neon, pastel, soft, classic, tupi, monochrome. 18 temas (9 familias, cada una en claro y oscuro) establecen un fondo + paleta, por ejemplo:

TemaFondoPaleta
dark#1a1f24monochrome
light#ffffffmonochrome
nordic#eceff4nordic
import KatuCharts from 'katucharts.js';
import 'katucharts.js/bio'; // modules register their chart types on import

KatuCharts.setTheme('dark');
KatuCharts.setOptions({ colors: KatuCharts.getPalette('sunset') });

const chart = KatuCharts.chart('container', {
  series: [{ type: 'volcano', data: [/* … */] }]
});

Instancia — datos y diseño

MétodoFirma → retornaDescripción
addSeriesaddSeries(options, redraw=true) → BaseSeriesAñade una serie; redraw=false para procesar por lotes.
getget(id) → BaseSeries | Axis | undefinedEncuentra una serie o eje por id.
updateupdate(options, redraw=true) → voidFusiona opciones parciales (título, ejes, series…).
addAxisaddAxis(options, isX=false, redraw=true) → AxisAñade un eje en tiempo de ejecución.
redrawredraw() → voidAplica cambios pendientes inmediatamente.
animatedRedrawanimatedRedraw(duration=500) → voidRedibujar con una transición.
reflowreflow() → voidRecalcula el diseño para el tamaño actual del contenedor.
setSizesetSize(width, height) → voidEstablece dimensiones en píxeles y redibuja.
setTitlesetTitle(titleOptions?, subtitleOptions?) → voidActualiza título/subtítulo; null lo elimina.

Instancia — exportación, datos e interfaz

MétodoFirma → retornaDescripción
getSVGgetSVG() → stringMarcado SVG independiente.
getCSVgetCSV() → stringDatos como CSV.
getTablegetTable() → stringDatos como cadena HTML <table>.
getDataRowsgetDataRows() → array[][]Array 2D; primera fila son encabezados.
exportChartexportChart({ type, filename, width, scale })Descarga PNG/JPEG/SVG/PDF.
showLoadingshowLoading(text='Loading...') → voidMuestra la superposición de carga.
hideLoadinghideLoading() → voidOculta la superposición de carga.
getSeriesInstancesgetSeriesInstances() → BaseSeries[]Todas las instancias de serie.
getXAxes / getYAxes→ Axis[]Instancias de eje X / Y (múltiples ejes retornan muchos).
destroydestroy() → voidElimina del DOM y desvincula listeners — llamar antes de eliminar el contenedor.
chart.showLoading('Fetching data…');
fetch('/api/data').then(r => r.json()).then(data => {
  chart.addSeries({ data });
  chart.hideLoading();
});

chart.exportChart({ type: 'image/svg+xml', filename: 'report', width: 1200 });

// on teardown
chart.destroy();

Renderizador de gráficos

chart.plotRenderer expone primitivos de bajo nivel para formas personalizadas y anotaciones en el área del gráfico.

MétodoFirmaDibuja
rectrect(x, y, width, height, attrs?)Rectángulo
circle / ellipsecircle(cx, cy, r, attrs?) / ellipse(cx, cy, rx, ry, attrs?)Círculo / elipse
pathpath(d, attrs?)Ruta SVG desde una cadena d
lineline(x1, y1, x2, y2, attrs?)Línea recta
texttext(str, x, y, attrs?)Etiqueta de texto
groupgroup(attrs?)Grupo <g> para anidamiento

Ayudantes de coordenadas: plotRenderer.plotArea → { x, y, width, height }; xAxis.toPixels(value) y yAxis.toPixels(value) convierten datos a píxeles.

const [xAxis] = chart.getXAxes();
const [yAxis] = chart.getYAxes();
const plot = chart.plotRenderer.plotArea;

const yPx = yAxis.toPixels(6);
chart.plotRenderer.line(plot.x, yPx, plot.x + plot.width, yPx, {
  stroke: '#d62728', strokeWidth: 2, strokeDasharray: '6 3'
});
chart.plotRenderer.text('Target', plot.x + plot.width + 8, yPx + 4, {
  fill: '#d62728', fontSize: 12, fontWeight: 'bold'
});