Guía

Configuración

Un gráfico es un único objeto de opciones plano pasado a KatuCharts.chart(container, options). Cada propiedad es opcional — los valores por defecto son sensatos. Esta es la referencia completa para cada clave de nivel superior.

const chart = KatuCharts.chart(container, {
  chart:    { /* chart-level options */ },
  title:    { /* title options */ },
  subtitle: { /* subtitle options */ },
  xAxis:    { /* x-axis options */ },
  yAxis:    { /* y-axis options */ },
  series:   [ /* array of series */ ],
  tooltip:  { /* tooltip options */ },
  legend:   { /* legend options */ },
  plotOptions: { /* default series options */ },
  credits:  { /* credits options */ },
  exporting: { /* export options */ },
  colorAxis: { /* color mapping */ },
  responsive: { /* responsive rules */ },
  accessibility: { /* a11y options */ },
  drilldown: { /* drilldown options */ }
});

chart

Contenedor general, fondo, dimensiones y modos de interacción.

PropiedadTipoValor por defectoDescripción
typestring'line'Tipo de serie por defecto para series que no establecen el suyo.
widthnumber | nullnullAncho explícito en px. null rellena el contenedor.
heightnumber | string400Altura en px o un porcentaje como '56%' del ancho. Usa null para ajustar la altura al contenido automáticamente (limitada en viewports móviles cortos).
backgroundColorstring'#ffffff'Color de fondo para toda el área del gráfico.
borderColor / borderWidth / borderRadiusstring / number / number— / 0 / 0Estilos de borde del contenedor.
spacingnumber[][10,10,15,10]Espaciado alrededor del gráfico [superior,derecho,inferior,izquierdo].
marginnumber[] | nullnullMárgenes explícitos del área de gráfico; sobrescribe el diseño automático.
animationboolean | objecttrueActiva/desactiva todas las animaciones, o pasa { duration, easing }.
zoomTypestring—Eje de arrastre para zoom: 'x', 'y' o 'xy'.
panningboolean | objectfalseDesplazamiento cuando se amplía. Objeto: { type }.
panKeystring—Tecla presionada para desplazarse: 'shift', 'ctrl', 'alt'.
invertedbooleanfalseIntercambia ejes X e Y (gráfico horizontal).
polarbooleanfalseRenderiza todas las series en coordenadas polares (radar).
reflowbooleantrueRedimensiona automáticamente cuando el contenedor se redimensiona.
palettestring[]—Paleta personalizada que sobrescribe los colores del tema.
styleobject—CSS aplicado al elemento del contenedor.
eventsobject—Listeners: load, redraw, render, selection, click, drilldown, drillup.
plotBackgroundColor / plotBorderColor / plotBorderWidthstring / string / number—Estilos del área de gráfico (dentro de los ejes).
scrollablePlotAreaobject—Hace que el área de trazado se desplace dentro de un viewport fijo: { minWidth, minHeight, scrollPositionX, scrollPositionY }. Mantiene usables listas de categorías largas y series temporales anchas en pantallas pequeñas.

chart.zooming

PropiedadTipoValor por defectoDescripción
typestring—Dirección del zoom: 'x', 'y', 'xy'.
keystring—Tecla modificadora: 'shift', 'ctrl', 'alt'.
mouseWheelboolean | object—Zoom con la rueda del ratón — desactivado por defecto; actívalo con true o { enabled, sensitivity, type }. En gráficos desplazables, la rueda desplaza el área de trazado en lugar de hacer zoom.
pinchTypestring—Dirección del pellizco táctil: 'x', 'y', 'xy'.
resetButtonobject—Botón de restablecer que aparece tras hacer zoom; restaura el rango original de los ejes. Personalízalo con { theme, position }.

title / subtitle

La misma forma; el subtítulo se renderiza justo debajo del título.

PropiedadTipoValor por defectoDescripción
textstring'Chart title'Contenido; null/' lo oculta.
alignstring'center''left' | 'center' | 'right'.
marginnumber15Espacio debajo del título.
styleobject—Estilos de texto CSS.
x / ynumber0 / —Desplazamientos en píxeles desde la posición de alineación.
floatingbooleanfalseFlota sobre el área del gráfico.
useHTMLbooleanfalsePermite HTML en lugar de texto SVG.

xAxis / yAxis

Un único objeto o un array para múltiples ejes. xAxis e yAxis comparten estas propiedades (los valores por defecto difieren donde se indica).

PropiedadTipoValor por defectoDescripción
typestring'linear''linear' | 'logarithmic' | 'datetime' | 'category'.
title.textstringnullTítulo del eje; null lo oculta.
min / maxnumber—Límites duros del eje.
softMin / softMaxnumber—Límites suaves — extiende aquí si los datos no lo hacen.
floor / ceilingnumber—Límites absolutos que el padding no puede cruzar.
categoriesstring[]—Etiquetas de categoría; establece el tipo a 'category'.
tickInterval / tickAmountnumber—Espaciado de tick (ms en datetime) / conteo exacto de tick.
tickLength / tickWidth / tickColornumber / number / string10 / 1 / '#ccd6eb'Estilos de marca de tick.
gridLineWidthnumber0 (x) / 1 (y)Ancho de línea de cuadrícula por tick.
gridLineColor / gridLineDashStylestring / string'#e6e6e6' / 'Solid'Color y guión de línea de cuadrícula.
lineWidth / lineColornumber / string1 / '#ccd6eb'Estilos de línea de eje.
offsetnumber0Desplazamiento desde el borde del área de gráfico.
oppositebooleanfalseColoca en el lado opuesto.
reversed / visiblebooleanfalse / trueInvierte la dirección / oculta el eje.
crosshairboolean | objectfalseRetícula del puntero; objeto: { color, width, dashStyle }.
plotBands / plotLinesobject[]—Bandas de color / líneas de referencia (abajo).
startOnTick / endOnTickbooleantrueAjusta los extremos del eje a los ticks.
minPadding / maxPaddingnumber0.01Padding como una fracción del rango.
allowDecimalsbooleantruePermite valores de tick decimales.
id / linkedTostring / number|string—Id del eje / vincula extremos a otro eje.
scrollbarboolean | objectfalseBarra de desplazamiento por eje para navegar cuando el área de trazado se desplaza — { enabled, barBackgroundColor, trackBorderColor, … }.

Etiquetas de eje

PropiedadTipoValor por defectoDescripción
enabledbooleantrueMuestra/oculta las etiquetas de tick.
formatstring'{value}'Plantilla, por ejemplo '${value}'.
formatterfunction—Callback; recibe this.value.
styleobject—Estilos CSS.
rotationnumber0Rotación fija en grados.
autoRotation / autoRotationLimitnumber[] / number[-45] / 80Rota automáticamente los ángulos cuando las etiquetas se superponen.
stepnumber—Muestra cada enésima etiqueta.
paddingnumber5Padding desde la línea del eje.

plotBands & plotLines

yAxis: {
  plotBands: [
    { from: 0, to: 50, color: 'rgba(68,170,213,0.1)', label: { text: 'Low' } },
    { from: 100, to: 200, color: 'rgba(255,68,68,0.1)', label: { text: 'High' } }
  ],
  plotLines: [
    { value: 75, color: '#d62728', width: 2, dashStyle: 'Dash',
      label: { text: 'Target', align: 'right' }, zIndex: 5 }
  ]
}

series

El array en el corazón de la config — una entrada por conjunto de datos. Opciones comunes primero; opciones específicas del tipo siguen.

PropiedadTipoValor por defectoDescripción
typestring'line'Tipo de serie; sobrescribe chart.type.
namestring—Etiqueta de leyenda / tooltip.
dataarray[]Puntos: números, [x,y], o { x, y, name }.
idstring—Id para chart.get() y perforación.
color / colorIndexstring / number—Sobrescribe color de paleta / índice de paleta.
visible / showInLegendbooleantrueVisibilidad inicial / presencia en leyenda.
lineWidth / lineColornumber / string2 / —Estilos de línea.
dashStylestring'Solid'Solid, Dash, Dot, ShortDash, LongDash, DashDot…
fillColor / fillOpacitystring / number— / 0.75Color de relleno de área y opacidad.
opacitynumber1Opacidad general de la serie.
marker / dataLabelsobject—Marcadores / etiquetas de puntos (abajo).
stacking / stackstring / string|number—'normal' | 'percent' / id de grupo de pila.
stepstring | booleanfalseLínea de paso: 'left' | 'center' | 'right'.
connectNullsbooleanfalseDibuja a través de puntos nulos.
threshold / negativeColornumber / string0 / —Línea base de área / color debajo del umbral.
enableMouseTracking / allowPointSelectbooleantrue / falseDesplazamiento y clic / clic para seleccionar puntos.
clipbooleantrueRecorta el dibujo al área del gráfico.
zones / zoneAxisobject[] / string— / 'y'Zonas de estilos basadas en valor (abajo).
animation / cursorboolean|object / stringtrue / —Animación de entrada / cursor de desplazamiento.
xAxis / yAxis / zIndexnumber|string0 / 0 / —Ejes vinculados / orden de apilamiento.
pointStart / pointIntervalnumber0 / 1Inicio y paso X para arrays de números planos.
keysstring[]—Mapea columnas de array a props, por ejemplo ['x','y','z'].
drilldownstring—Id de la serie de perforación para clics.

Columnas / Barras

PropiedadTipoValor por defectoDescripción
pointPadding / groupPaddingnumber0.1 / 0.2Padding dentro de un grupo / entre grupos.
borderWidth / borderColor / borderRadiusnumber / string / number1 / '#fff' / 0Estilos de borde de columna.
colorByPointbooleanfalseColorea cada columna desde la paleta.
minPointLengthnumber0Altura mínima de barra para valores pequeños.
maxPointWidth / pointWidthnumber—Ancho máximo / fijo de columna en px.

Circular / Anillo

PropiedadTipoValor por defectoDescripción
innerSizenumber | string0Diámetro interior para arillos, por ejemplo '50%'.
size / centernumber|string / array— / ['50%','50%']Diámetro exterior / centro [x,y].
startAngle / endAnglenumber0 / 360Barrido circular (usa <360 para un circular parcial).
slicedOffsetnumber10Desplazamiento en píxeles para puntos cortados.

Marcador

PropiedadTipoValor por defectoDescripción
enabledboolean | nullnullnull muestra automáticamente cuando hay pocos puntos.
symbolstring'circle'circle, square, diamond, triangle, triangle-down, o URL.
radiusnumber4Radio del marcador.
fillColor / lineColor / lineWidthstring / string / number— / — / 0Relleno del marcador y borde.
states.hover / states.selectobject—{ enabled, radius, fillColor, lineColor, lineWidth }.

Etiquetas de datos

PropiedadTipoValor por defectoDescripción
enabledbooleanfalseHabilita etiquetas en cada punto.
format / formatterstring / function'{point.y}' / —Plantilla / callback (this.point, this.series).
style / colorobject / string—Estilos de texto.
backgroundColor / borderColor / borderRadius / paddingstring / string / number / number— / — / 0 / 5Estilos de caja de etiqueta.
align / verticalAlignstring'center' / —Alineación dentro del punto.
x / y / rotationnumber0Desplazamientos y rotación.
inside / allowOverlapbooleanfalseColoca dentro de barras / permite superposición.
distance / connectorWidth / connectorColornumber / number / string— / 1 / —Distancia de etiqueta circular y conector.

Estados de serie

plotOptions: {
  series: {
    states: {
      hover:    { lineWidthPlus: 2, halo: { size: 10, opacity: 0.25 } },
      select:   { color: '#d62728', borderColor: '#000', borderWidth: 2 },
      inactive: { opacity: 0.2, animation: { duration: 50 } }
    }
  }
}

Zonas

series: [{
  data: [29, 71, 106, 82, 44, 13],
  zoneAxis: 'y',
  zones: [
    { value: 50,  color: '#2ca02c' },   // below 50
    { value: 100, color: '#ff7f0e' },   // 50–100
    { color: '#d62728' }                // above 100
  ]
}]

Opciones comunes, renderizadas

Estas opciones se aplican a cualquier tipo de serie. Cada ejemplo es la configuración mínima necesaria para ver la opción en acción.

color · colorByPoint

Colorea cada punto desde la paleta con colorByPoint, o asigna un color explícito a un punto.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [{
    colorByPoint: true,
    data: [
      { name: 'Apples', y: 5 },
      { name: 'Pears', y: 3, color: '#8C2810' },
      { name: 'Plums', y: 7 }
    ]
  }]
});

visible · showInLegend

Oculta una serie al cargar con visible: false, o déjala fuera de la leyenda con showInLegend: false.

KatuCharts.chart('container', {
  chart: { type: 'line' },
  series: [
    { name: 'Revenue',  data: [4, 6, 5, 8] },
    { name: 'Forecast', data: [3, 5, 6, 7], visible: false },
    { name: 'Internal', data: [2, 2, 3, 3], showInLegend: false }
  ]
});

marker

Activa los marcadores de punto y elige símbolo y radio.

KatuCharts.chart('container', {
  chart: { type: 'spline' },
  series: [{
    data: [3, 5, 4, 7, 6],
    marker: { enabled: true, symbol: 'diamond', radius: 6 }
  }]
});

dataLabels

Muestra el valor en cada punto; format admite tokens como {point.y}.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [{
    data: [29, 71, 40, 55],
    dataLabels: { enabled: true, format: '{point.y}%' }
  }]
});

dashStyle · lineWidth · lineColor

Distingue líneas por grosor, patrón de guion y color.

KatuCharts.chart('container', {
  chart: { type: 'line' },
  series: [
    { name: 'Thick',  data: [4, 5, 6, 7], lineWidth: 4 },
    { name: 'Dashed', data: [3, 4, 4, 5], dashStyle: 'Dash', lineColor: '#A85429' }
  ]
});

opacity · fillOpacity

Controla la transparencia de la serie y del relleno de área.

KatuCharts.chart('container', {
  chart: { type: 'area' },
  series: [{
    data: [5, 7, 6, 9, 8],
    fillOpacity: 0.3        // also: opacity, fillColor
  }]
});

zones

Aplica estilo por rango de valor con zones a lo largo del eje y.

KatuCharts.chart('container', {
  chart: { type: 'line' },
  series: [{
    data: [-4, -1, 2, 5, 3, 7],
    zones: [
      { value: 0, color: '#B43417' },
      { color: '#33503A' }
    ]
  }]
});

threshold · negativeColor

Define la línea base y colorea distinto todo lo que queda por debajo.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [{
    data: [3, -2, 5, -4, 2],
    threshold: 0,
    negativeColor: '#B43417'
  }]
});

animation

Ajusta la duración de la animación de entrada por serie.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [{
    data: [5, 8, 4, 9, 6],
    animation: { duration: 1200 }
  }]
});

events · cursor

Haz los puntos clicables con cursor y responde con los handlers de events.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [{
    cursor: 'pointer',
    data: [5, 8, 4],
    events: {
      click: (e) => console.log(e.point.category)
    }
  }]
});

step · connectNulls

Dibuja líneas escalonadas y une los huecos de puntos null.

KatuCharts.chart('container', {
  chart: { type: 'line' },
  series: [
    { name: 'Step', data: [3, 5, 5, 7, 6, 8], step: 'center' },
    { name: 'Gaps', data: [2, null, 4, 5, null, 6], connectNulls: true }
  ]
});

stacking · stack

Apila series una sobre otra con stacking: 'normal'.

KatuCharts.chart('container', {
  chart: { type: 'column' },
  series: [
    { name: 'Online', data: [3, 5, 4, 6], stacking: 'normal' },
    { name: 'Store',  data: [2, 3, 3, 4], stacking: 'normal' }
  ]
});

pointStart · pointInterval

Genera los valores de x para un array plano de números.

KatuCharts.chart('container', {
  chart: { type: 'line' },
  series: [{
    pointStart: 2019,
    pointInterval: 1,
    data: [4, 6, 5, 8, 7, 9]
  }]
});

tooltip

PropiedadTipoValor por defectoDescripción
enabledbooleantrueActiva/desactiva el tooltip.
shared / splitbooleanfalseTodas las series en una caja / callouts por serie.
useHTMLbooleanfalseRenderizado HTML en lugar de SVG.
headerFormat / pointFormat / footerFormatstring—Plantillas para encabezado / cada fila / pie de página.
formatterfunction—Control total; sobrescribe cadenas de formato.
backgroundColor / borderColor / borderWidth / borderRadiusstring / string / number / number'#fff' / — / 1 / 3Estilos de caja.
padding / shadow / animationnumber / boolean / boolean8 / true / truePadding de caja, sombra, transiciones.
hideDelaynumber500ms antes de ocultar después de salir.
followPointer / stickOnContactbooleanfalseSigue el cursor / se queda cuando se desplaza.
snap / distancenumber10 / 16Distancia de disparo / brecha desde el punto.
outsidebooleanfalseRenderiza fuera del contenedor para evitar recorte.
valueDecimals / valuePrefix / valueSuffixnumber / string / string—Ayudantes de formato numérico.

Tokens de plantilla

Usa en headerFormat, pointFormat, footerFormat y dataLabels.format:

TokenDescripción
{point.x} / {point.y} / {point.z}Valores X, Y y Z (burbuja).
{point.key} / {point.name}Categoría/encabezado / nombre de punto (circular, embudo…).
{point.color} / {point.percentage}Color de punto / porcentaje en series apiladas o circulares.
{series.name}Nombre de la serie.
{point.y:.2f}Y formateado a 2 decimales.
tooltip: {
  shared: true,
  formatter() {
    let html = '<b>' + this.x + '</b><br/>';
    this.points.forEach(p => {
      html += '<span style="color:' + p.color + '">\u25CF</span> '
            + p.series.name + ': <b>' + p.y.toLocaleString() + '</b><br/>';
    });
    return html;
  }
}

legend

PropiedadTipoValor por defectoDescripción
enabledbooleantrueMuestra/oculta la leyenda.
layoutstring'horizontal''horizontal' | 'vertical'.
align / verticalAlignstring'center' / 'bottom'Posición dentro del gráfico.
floatingbooleanfalseFlota sobre el contenido del gráfico.
x / y / margin / paddingnumber0 / 0 / 15 / 8Desplazamientos y espaciado.
itemDistance / itemMarginTop / itemMarginBottomnumber20 / 0 / 0Espaciado entre elementos.
symbolWidth / symbolHeight / symbolRadius / symbolPaddingnumber16 / 12 / 2 / 5Tamaño de símbolo de leyenda.
squareSymbol / reversedbooleantrue / falseSímbolos cuadrados / invierte el orden de elementos.
itemStyle / itemHoverStyle / itemHiddenStyleobject—Estilos de texto de elemento por estado.
backgroundColor / borderColor / borderWidthstring / string / number— / — / 0Estilos de caja de leyenda.
maxHeightnumber—Limita la altura; pagina cuando se supera.
labelFormatterfunction—Texto de elemento personalizado (this = serie/punto).

plotOptions

Opciones de serie por defecto fusionadas en tres niveles: plotOptions.series (todos los tipos) → plotOptions[type] (un tipo) → series[i] (prioridad más alta).

plotOptions: {
  series: { animation: { duration: 1500 }, cursor: 'pointer' },
  column: { borderRadius: 4, groupPadding: 0.15 },
  line:   { lineWidth: 3, marker: { enabled: true, radius: 5 } }
}

colorAxis

Mapea valores a un gradiente de color (mapa de calor, treemap, coropleta). Objeto único o array.

PropiedadTipoValor por defectoDescripción
min / maxnumber—Rango de valor; auto de los datos si se omite.
minColor / maxColorstring—Colores en cada extremo de la escala.
stopsarray[]—Paradas de gradiente [[0,color],[0.5,color],[1,color]].
type / reversedstring / boolean'linear' / falseTipo de escala / invierte la dirección.
dataClassesobject[]—Clases discretas { from, to, color, name }.
labelsobject—Etiquetas de leyenda del eje de color (forma de etiqueta de eje).

exporting

PropiedadTipoValor por defectoDescripción
enabledbooleantrueHabilita módulo de exportación + botón contextual.
filenamestring'chart'Nombre de archivo por defecto (sin extensión).
typestring'image/png'Tipo MIME de exportación por defecto.
scalenumber2Escala de resolución de ráster.
printMaxWidthnumber780Ancho máximo al imprimir.
buttons.contextButtonobject—{ enabled, menuItems, x, y }.
csvobject—{ columnHeaderFormatter, dateFormat, itemDelimiter, lineDelimiter, decimalPoint }.

Formatos: image/png, image/jpeg, image/svg+xml, application/pdf (necesita el opcional jspdf peer) y CSV.

responsive

Reglas que fusionan sobrescrituras de opciones cuando una condición de viewport coincide.

responsive: {
  rules: [
    { condition: { maxWidth: 500 },
      chartOptions: { legend: { enabled: false }, yAxis: { title: { text: null } } } },
    { condition: { maxWidth: 300 },
      chartOptions: { title: { text: null }, subtitle: { text: null } } }
  ]
}
CondiciónTipoDescripción
maxWidth / minWidthnumberAplica en o por debajo / por encima de este ancho.
maxHeight / minHeightnumberAplica en o por debajo / por encima de esta altura.
callbackfunctionPredicado personalizado; recibe el gráfico.

accessibility

PropiedadTipoValor por defectoDescripción
enabledbooleantrueActiva/desactiva el módulo a11y.
descriptionstring—Descripción para lectores de pantalla del gráfico.
keyboardNavigation.enabledbooleantrueNavegación por teclado a través de elementos.
keyboardNavigation.focusBorderobject—Indicador de foco { color, margin, style }.
keyboardNavigation.orderstring[]—Orden de tabulación de componentes.
keyboardNavigation.seriesNavigationobject—{ mode, skipNullPoints, pointNavigationEnabledThreshold }.
announceNewData.enabledbooleanfalseAnuncia datos nuevos vía región ARIA en vivo.
highContrastModestring | boolean'auto'true | false | 'auto' (detecta SO).
point.descriptionFormatterfunction—Descripciones accesibles personalizadas por punto.

drilldown

PropiedadTipoValor por defectoDescripción
animationboolean | objecttrueAnima la transición de perforación.
allowPointDrilldownbooleantruePerfora haciendo clic en puntos individuales.
seriesarray[]Sub-series de perforación, cada una con un id único.
drillUpButtonobject—{ relativeTo, position, theme }.
breadcrumbsobject—{ enabled, format, formatter, style, position }.
series: [{
  colorByPoint: true,
  data: [{ name: 'North', y: 310, drilldown: 'north' },
         { name: 'South', y: 260, drilldown: 'south' }]
}],
drilldown: {
  breadcrumbs: { enabled: true },
  series: [
    { id: 'north', data: [['NYC', 120], ['Boston', 95]] },
    { id: 'south', data: [['Miami', 90], ['Atlanta', 85]] }
  ]
}

Chrome de series de tiempo/acciones a través de la katucharts.js punto de entrada. El navegador es un gráfico de vista previa en miniatura; el selector de rango añade botones de rango de tiempo preestablecido.

PropiedadTipoValor por defectoDescripción
navigator.enabled / height / marginboolean / number / numbertrue / 40 / 25Activa/desactiva, redimensiona y espaciado del navegador.
navigator.maskFill / outlineColor / outlineWidthstring / string / numberrgba(102,133,194,.3) / '#ccc' / 1Estilos de máscara y contorno.
navigator.baseSeries / seriesnumber|string / object0 / —Serie de origen / sobrescrituras de gráfico en miniatura.
rangeSelector.enabled / selectedboolean / numbertrue / —Activa/desactiva / índice de botón inicial.
rangeSelector.inputEnabledbooleantrueCampos de entrada de fecha.
rangeSelector.buttonsobject[]—{ type, count, text } — type ∈ second…year, ytd, all.
rangeSelector.dropdownstring'responsive''always' | 'never' | 'responsive'.

loading &amp; credits

PropiedadTipoValor por defectoDescripción
loading.showDuration / hideDurationnumber100Transición de entrada/salida de la superposición de carga (ms).
loading.style / labelStyleobject—CSS de superposición y etiqueta.
credits.enabled / text / hrefboolean / string / stringtrue / 'Powered by: KatuCharts' / —Etiqueta de créditos.
credits.position / styleobject{ align:'right', verticalAlign:'bottom' }Posicionamiento y estilos de créditos.
Muestra la superposición de carga con chart.showLoading() y ocúltala con chart.hideLoading().

Actualizaciones dinámicas

Una vez creado, el gráfico expone una API imperativa para cambiar datos, series y opciones en tiempo de ejecución sin recrearlo.

MétodoDescripción
chart.update(options, redraw?)Combina nuevas opciones y redibuja el gráfico (tipo, títulos, ejes, series…).
chart.series[i]Accede a las instancias de serie renderizadas para actualizarlas individualmente.
series.setData(data, redraw?, animation?)Reemplaza todos los datos de una serie.
series.addPoint(point, redraw?, shift?)Añade un punto; con shift elimina el más antiguo (ventana deslizante).
chart.addSeries(options, redraw?)Agrega una nueva serie en tiempo de ejecución.
chart.setTitle(title, subtitle?)Actualiza el texto del título y del subtítulo.
chart.showLoading(text?) / hideLoading()Muestra y oculta la superposición de carga.
chart.redraw() / reflow()Fuerza un redibujado o reajusta el gráfico a su contenedor.
chart.destroy()Destruye el gráfico y libera los escuchadores de eventos.

Ejemplos en vivo

Los dos gráficos siguientes usan la API de tiempo de ejecución: uno recibe nuevos puntos continuamente y el otro cambia de tipo con cada clic.

Datos en tiempo real

Una ventana deslizante de lecturas: cada segundo entra un valor nuevo, sale el más antiguo y la serie se redibuja con chart.series[0].setData(history).

const chart = KatuCharts.chart('container', {
  chart: { type: 'line', animation: false },
  yAxis: { min: 0, max: 100 },
  series: [{ name: 'Requests/s', data: history, marker: { enabled: false } }]
});

setInterval(() => {
  history.push(nextReading());
  history.shift();
  chart.series[0].setData(history);
}, 1000);

Cambiar de tipo

Los mismos datos se redibujan como otro tipo con chart.update definiendo un nuevo chart.type, sin recrear el gráfico.

const chart = KatuCharts.chart('container', {
  chart: { type: 'column' },
  xAxis: { categories: ['Q1', 'Q2', 'Q3', 'Q4', 'Q5', 'Q6'] },
  series: [{ name: 'Revenue', data: [42, 58, 35, 71, 49, 63] }]
});

columnButton.onclick = () => chart.update({ chart: { type: 'column' } });
barButton.onclick = () => chart.update({ chart: { type: 'bar' } });