Guia

Configuração

Um gráfico é um objeto de opções simples passado para KatuCharts.chart(container, options). Cada propriedade é opcional — os padrões são sensatos. Esta é a referência completa para cada chave de nível 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

Container geral, fundo, dimensões e modos de interação.

PropriedadeTipoPadrãoDescrição
typestring'line'Tipo de série padrão para séries que não definem seu próprio.
widthnumber | nullnullLargura explícita em px. null preenche o container.
heightnumber | string400Altura em px ou uma porcentagem como '56%' da largura. Defina null para ajustar a altura ao conteúdo automaticamente (limitada em viewports móveis curtos).
backgroundColorstring'#ffffff'Cor de fundo para toda a área do gráfico.
borderColor / borderWidth / borderRadiusstring / number / number— / 0 / 0Estilo de borda do container.
spacingnumber[][10,10,15,10]Espaçamento ao redor do gráfico [top,right,bottom,left].
marginnumber[] | nullnullMargens explícitas da área de plot; substitui layout automático.
animationboolean | objecttrueAlterna todas as animações, ou passa { duration, easing }.
zoomTypestring—Eixo drag-to-zoom: 'x', 'y' ou 'xy'.
panningboolean | objectfalsePanning quando ampliado. Objeto: { type }.
panKeystring—Chave pressionada para pan: 'shift', 'ctrl', 'alt'.
invertedbooleanfalseTroca eixos X e Y (gráfico horizontal).
polarbooleanfalseRenderiza todas as séries em coordenadas polares (radar).
reflowbooleantrueAuto-redimensiona quando o container redimensiona.
palettestring[]—Paleta personalizada substituindo cores de tema.
styleobject—CSS aplicado ao elemento container.
eventsobject—Listeners: load, redraw, render, selection, click, drilldown, drillup.
plotBackgroundColor / plotBorderColor / plotBorderWidthstring / string / number—Estilo da área de plot (dentro dos eixos).
scrollablePlotAreaobject—Faz a área de plotagem rolar dentro de um viewport fixo: { minWidth, minHeight, scrollPositionX, scrollPositionY }. Mantém listas de categorias longas e séries temporais largas utilizáveis em telas pequenas.

chart.zooming

PropriedadeTipoPadrãoDescrição
typestring—Direção do zoom: 'x', 'y', 'xy'.
keystring—Chave modificadora: 'shift', 'ctrl', 'alt'.
mouseWheelboolean | object—Zoom com a roda do mouse — desativado por padrão; ative com true ou { enabled, sensitivity, type }. Em gráficos roláveis, a roda rola a área de plotagem em vez de dar zoom.
pinchTypestring—Direção do pinch do toque: 'x', 'y', 'xy'.
resetButtonobject—Botão de redefinir exibido após o zoom; restaura o intervalo original dos eixos. Personalize com { theme, position }.

title / subtitle

Mesma forma; o subtitle renderiza logo abaixo do title.

PropriedadeTipoPadrãoDescrição
textstring'Chart title'Conteúdo; null/' o oculta.
alignstring'center''left' | 'center' | 'right'.
marginnumber15Espaço abaixo do title.
styleobject—Estilos de texto CSS.
x / ynumber0 / —Offsets em pixels da posição de alinhamento.
floatingbooleanfalseFlutua sobre a área de plot.
useHTMLbooleanfalsePermite HTML em vez de texto SVG.

xAxis / yAxis

Um objeto único ou um array para múltiplos eixos. xAxis e yAxis compartilham essas propriedades (os padrões diferem onde anotado).

PropriedadeTipoPadrãoDescrição
typestring'linear''linear' | 'logarithmic' | 'datetime' | 'category'.
title.textstringnullTítulo do eixo; null o oculta.
min / maxnumber—Limites rígidos de eixo.
softMin / softMaxnumber—Limites suaves — estende até aqui se os dados não alcançarem.
floor / ceilingnumber—Limites absolutos que o padding não pode cruzar.
categoriesstring[]—Rótulos de categoria; define tipo como 'category'.
tickInterval / tickAmountnumber—Espaçamento de tick (ms em datetime) / contagem exata de tick.
tickLength / tickWidth / tickColornumber / number / string10 / 1 / '#ccd6eb'Estilo de marca de tick.
gridLineWidthnumber0 (x) / 1 (y)Largura de linha de grade por tick.
gridLineColor / gridLineDashStylestring / string'#e6e6e6' / 'Solid'Cor e traço da linha de grade.
lineWidth / lineColornumber / string1 / '#ccd6eb'Estilo da linha de eixo.
offsetnumber0Offset da borda da área de plot.
oppositebooleanfalseColoca no lado oposto.
reversed / visiblebooleanfalse / trueInverte direção / oculta o eixo.
crosshairboolean | objectfalseCrosshair do ponteiro; objeto: { color, width, dashStyle }.
plotBands / plotLinesobject[]—Bandas coloridas / linhas de referência (abaixo).
startOnTick / endOnTickbooleantrueEncaixa os extremos do eixo aos ticks.
minPadding / maxPaddingnumber0.01Padding como uma fração do intervalo.
allowDecimalsbooleantruePermite valores de tick decimais.
id / linkedTostring / number|string—Id do eixo / vincula extremos a outro eixo.
scrollbarboolean | objectfalseBarra de rolagem por eixo para navegar quando a área de plotagem rola — { enabled, barBackgroundColor, trackBorderColor, … }.

Rótulos de eixo

PropriedadeTipoPadrãoDescrição
enabledbooleantrueMostra/oculta rótulos de tick.
formatstring'{value}'Template, ex: '${value}'.
formatterfunction—Callback; recebe this.value.
styleobject—Estilos CSS.
rotationnumber0Rotação fixa em graus.
autoRotation / autoRotationLimitnumber[] / number[-45] / 80Auto-rotaciona ângulos quando os rótulos se sobrepõem.
stepnumber—Mostra cada enésimo rótulo.
paddingnumber5Padding da linha de eixo.

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

O array no coração da config — uma entrada por conjunto de dados. Opções comuns primeiro; opções específicas de tipo seguem.

PropriedadeTipoPadrãoDescrição
typestring'line'Tipo de série; substitui chart.type.
namestring—Rótulo de legenda / tooltip.
dataarray[]Pontos: números, [x,y], ou { x, y, name }.
idstring—Id para chart.get() e drilldown.
color / colorIndexstring / number—Substitui cor de paleta / índice de paleta.
visible / showInLegendbooleantrueVisibilidade inicial / presença de legenda.
lineWidth / lineColornumber / string2 / —Estilo de linha.
dashStylestring'Solid'Solid, Dash, Dot, ShortDash, LongDash, DashDot…
fillColor / fillOpacitystring / number— / 0.75Cor de preenchimento de área e opacidade.
opacitynumber1Opacidade geral da série.
marker / dataLabelsobject—Marcadores / rótulos de ponto (abaixo).
stacking / stackstring / string|number—'normal' | 'percent' / id de grupo de stack.
stepstring | booleanfalseLinha de passo: 'left' | 'center' | 'right'.
connectNullsbooleanfalseDesenha através de pontos nulos.
threshold / negativeColornumber / string0 / —Baseline de área / cor abaixo do threshold.
enableMouseTracking / allowPointSelectbooleantrue / falseHover e click / click-to-select pontos.
clipbooleantrueRecorta desenho para a área de plot.
zones / zoneAxisobject[] / string— / 'y'Zonas de estilo baseadas em valor (abaixo).
animation / cursorboolean|object / stringtrue / —Animação de entrada / cursor de hover.
xAxis / yAxis / zIndexnumber|string0 / 0 / —Vincula eixos / ordem de stacking.
pointStart / pointIntervalnumber0 / 1Início X e passo para arrays de números flat.
keysstring[]—Mapeia colunas de array para props, ex: ['x','y','z'].
drilldownstring—Id da série de drilldown para clicks.

Colunas / Barras

PropriedadeTipoPadrãoDescrição
pointPadding / groupPaddingnumber0.1 / 0.2Padding dentro de um grupo / entre grupos.
borderWidth / borderColor / borderRadiusnumber / string / number1 / '#fff' / 0Estilo de borda de coluna.
colorByPointbooleanfalseColorir cada coluna da paleta.
minPointLengthnumber0Altura mínima da barra para valores pequenos.
maxPointWidth / pointWidthnumber—Largura máxima / fixa da coluna em px.

Pizza / Rosca

PropriedadeTipoPadrãoDescrição
innerSizenumber | string0Diâmetro interno para roscas, ex: '50%'.
size / centernumber|string / array— / ['50%','50%']Diâmetro externo / centro [x,y].
startAngle / endAnglenumber0 / 360Sweep de pizza (use <360 para pizza parcial).
slicedOffsetnumber10Offset em pixels para pontos cortados.

Marcador

PropriedadeTipoPadrãoDescrição
enabledboolean | nullnullnull mostra automaticamente quando há poucos pontos.
symbolstring'circle'circle, square, diamond, triangle, triangle-down, ou URL.
radiusnumber4Raio do marcador.
fillColor / lineColor / lineWidthstring / string / number— / — / 0Preenchimento do marcador e borda.
states.hover / states.selectobject—{ enabled, radius, fillColor, lineColor, lineWidth }.

Rótulos de dados

PropriedadeTipoPadrãoDescrição
enabledbooleanfalseHabilita rótulos em cada ponto.
format / formatterstring / function'{point.y}' / —Template / callback (this.point, this.series).
style / colorobject / string—Estilo de texto.
backgroundColor / borderColor / borderRadius / paddingstring / string / number / number— / — / 0 / 5Estilo da caixa de rótulo.
align / verticalAlignstring'center' / —Alinhamento dentro do ponto.
x / y / rotationnumber0Offsets e rotação.
inside / allowOverlapbooleanfalseColoca dentro de barras / permite sobreposição.
distance / connectorWidth / connectorColornumber / number / string— / 1 / —Distância de rótulo de pizza e conector.

Estados de série

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
  ]
}]

Opções comuns, renderizadas

Estas opções valem para todos os tipos de série. Cada exemplo traz a configuração mínima necessária para ver a opção em ação.

color · colorByPoint

Pinte cada ponto pela paleta com colorByPoint, ou defina uma color explícita em um único ponto.

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

Oculte uma série no carregamento com visible: false, ou deixe-a fora da legenda com 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

Ative os marcadores de ponto e escolha símbolo e raio.

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

dataLabels

Mostre o valor em cada ponto; format aceita 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

Diferencie linhas pela espessura, padrão de traço e cor.

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

Controle a transparência da série e do preenchimento de área.

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

zones

Estilize a série por faixa de valor com zones ao longo do eixo y.

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

threshold · negativeColor

Defina a linha de base e dê outra cor a tudo que fica abaixo dela.

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

animation

Ajuste a duração da animação de entrada por série.

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

events · cursor

Torne os pontos clicáveis com cursor e responda pelos 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

Desenhe linhas em degraus e ligue lacunas deixadas por pontos 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

Empilhe séries umas sobre as outras com 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

Gere os valores de x para um array simples de números.

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

tooltip

PropriedadeTipoPadrãoDescrição
enabledbooleantrueAlterna o tooltip.
shared / splitbooleanfalseTodas as séries em uma caixa / callouts por-série.
useHTMLbooleanfalseRenderização HTML em vez de SVG.
headerFormat / pointFormat / footerFormatstring—Templates para cabeçalho / cada linha / rodapé.
formatterfunction—Controle total; substitui strings de formato.
backgroundColor / borderColor / borderWidth / borderRadiusstring / string / number / number'#fff' / — / 1 / 3Estilo de caixa.
padding / shadow / animationnumber / boolean / boolean8 / true / truePadding da caixa, sombra, transições.
hideDelaynumber500ms antes de ocultar após sair.
followPointer / stickOnContactbooleanfalseSegue o cursor / fica quando pairado.
snap / distancenumber10 / 16Distância de acionamento / gap do ponto.
outsidebooleanfalseRenderiza fora do container para evitar recorte.
valueDecimals / valuePrefix / valueSuffixnumber / string / string—Helpers de formatação numérica.

Tokens de template

Use em headerFormat, pointFormat, footerFormat e dataLabels.format:

TokenDescrição
{point.x} / {point.y} / {point.z}Valores X, Y e Z (bolha).
{point.key} / {point.name}Categoria/cabeçalho / nome do ponto (pizza, funil…).
{point.color} / {point.percentage}Cor do ponto / porcentagem em série empilhada ou pizza.
{series.name}Nome da série.
{point.y:.2f}Y formatado para 2 casas decimais.
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

PropriedadeTipoPadrãoDescrição
enabledbooleantrueMostra/oculta a legenda.
layoutstring'horizontal''horizontal' | 'vertical'.
align / verticalAlignstring'center' / 'bottom'Posição dentro do gráfico.
floatingbooleanfalseFlutua sobre conteúdo do gráfico.
x / y / margin / paddingnumber0 / 0 / 15 / 8Offsets e espaçamento.
itemDistance / itemMarginTop / itemMarginBottomnumber20 / 0 / 0Espaçamento entre itens.
symbolWidth / symbolHeight / symbolRadius / symbolPaddingnumber16 / 12 / 2 / 5Tamanho do símbolo da legenda.
squareSymbol / reversedbooleantrue / falseSímbolos quadrados / inverte ordem de item.
itemStyle / itemHoverStyle / itemHiddenStyleobject—Estilos de texto de item por estado.
backgroundColor / borderColor / borderWidthstring / string / number— / — / 0Estilo de caixa de legenda.
maxHeightnumber—Limita altura; pagina quando excedida.
labelFormatterfunction—Texto de item personalizado (this = série/ponto).

plotOptions

Opções de série padrão mescladas em três níveis: plotOptions.series (todos os tipos) → plotOptions[type] (um tipo) → series[i] (prioridade máxima).

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

colorAxis

Mapeia valores para um gradiente de cor (heatmap, treemap, choropleth). Objeto único ou array.

PropriedadeTipoPadrãoDescrição
min / maxnumber—Intervalo de valor; auto dos dados se omitido.
minColor / maxColorstring—Cores em cada extremidade da escala.
stopsarray[]—Paradas de gradiente [[0,color],[0.5,color],[1,color]].
type / reversedstring / boolean'linear' / falseTipo de escala / inverte direção.
dataClassesobject[]—Classes discretas { from, to, color, name }.
labelsobject—Rótulos de legenda de eixo de cor (forma de rótulo de eixo).

exporting

PropriedadeTipoPadrãoDescrição
enabledbooleantrueHabilita módulo de exportação + botão de contexto.
filenamestring'chart'Nome do arquivo padrão (sem extensão).
typestring'image/png'Tipo MIME de exportação padrão.
scalenumber2Escala de resolução raster.
printMaxWidthnumber780Largura máxima ao imprimir.
buttons.contextButtonobject—{ enabled, menuItems, x, y }.
csvobject—{ columnHeaderFormatter, dateFormat, itemDelimiter, lineDelimiter, decimalPoint }.

Formatos: image/png, image/jpeg, image/svg+xml, application/pdf (necessita o opcional jspdf peer) e CSV.

responsive

Regras que mesclam substituições de opção quando uma condição de viewport corresponde.

responsive: {
  rules: [
    { condition: { maxWidth: 500 },
      chartOptions: { legend: { enabled: false }, yAxis: { title: { text: null } } } },
    { condition: { maxWidth: 300 },
      chartOptions: { title: { text: null }, subtitle: { text: null } } }
  ]
}
CondiçãoTipoDescrição
maxWidth / minWidthnumberAplica em ou abaixo / acima desta largura.
maxHeight / minHeightnumberAplica em ou abaixo / acima desta altura.
callbackfunctionPredicado personalizado; recebe o gráfico.

accessibility

PropriedadeTipoPadrãoDescrição
enabledbooleantrueAlterna o módulo a11y.
descriptionstring—Descrição de leitor de tela do gráfico.
keyboardNavigation.enabledbooleantrueNavegação por teclado através de elementos.
keyboardNavigation.focusBorderobject—Indicador de foco { color, margin, style }.
keyboardNavigation.orderstring[]—Ordem de tabulação de componentes.
keyboardNavigation.seriesNavigationobject—{ mode, skipNullPoints, pointNavigationEnabledThreshold }.
announceNewData.enabledbooleanfalseAnuncia novos dados via região ARIA live.
highContrastModestring | boolean'auto'true | false | 'auto' (detecta SO).
point.descriptionFormatterfunction—Descrições acessíveis personalizadas por ponto.

drilldown

PropriedadeTipoPadrãoDescrição
animationboolean | objecttrueAnima a transição de drilldown.
allowPointDrilldownbooleantrueDrilldown clicando em pontos individuais.
seriesarray[]Sub-séries de drilldown, cada uma com um 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 estoque/série temporal via o katucharts.js ponto de entrada. O navegador é um gráfico de mini visão geral; o seletor de intervalo adiciona botões de intervalo de tempo predefinidos.

PropriedadeTipoPadrãoDescrição
navigator.enabled / height / marginboolean / number / numbertrue / 40 / 25Alterna, dimensiona e espaça o navegador.
navigator.maskFill / outlineColor / outlineWidthstring / string / numberrgba(102,133,194,.3) / '#ccc' / 1Estilo de máscara e contorno.
navigator.baseSeries / seriesnumber|string / object0 / —Série de origem / substituições de mini-gráfico.
rangeSelector.enabled / selectedboolean / numbertrue / —Alterna / índice de botão inicial.
rangeSelector.inputEnabledbooleantrueCampos de entrada de data.
rangeSelector.buttonsobject[]—{ type, count, text } — type ∈ second…year, ytd, all.
rangeSelector.dropdownstring'responsive''always' | 'never' | 'responsive'.

loading &amp; credits

PropriedadeTipoPadrãoDescrição
loading.showDuration / hideDurationnumber100Fade in/out da sobreposição de carregamento (ms).
loading.style / labelStyleobject—CSS de sobreposição e rótulo.
credits.enabled / text / hrefboolean / string / stringtrue / 'Powered by: KatuCharts' / —Rótulo de créditos.
credits.position / styleobject{ align:'right', verticalAlign:'bottom' }Posicionamento e estilo de créditos.
Mostra a sobreposição de carregamento com chart.showLoading() e a oculta com chart.hideLoading().

Atualizações dinâmicas

Depois de criado, o gráfico expõe uma API imperativa para alterar dados, séries e opções em tempo de execução, sem recriá-lo.

MétodoDescrição
chart.update(options, redraw?)Mescla novas opções e redesenha o gráfico (tipo, títulos, eixos, séries…).
chart.series[i]Acessa as instâncias de série já renderizadas para atualizá-las individualmente.
series.setData(data, redraw?, animation?)Substitui todos os dados de uma série.
series.addPoint(point, redraw?, shift?)Acrescenta um ponto; com shift remove o mais antigo (janela deslizante).
chart.addSeries(options, redraw?)Adiciona uma nova série em tempo de execução.
chart.setTitle(title, subtitle?)Atualiza o texto do título e do subtítulo.
chart.showLoading(text?) / hideLoading()Exibe e oculta a sobreposição de carregamento.
chart.redraw() / reflow()Força um redesenho ou reajusta o gráfico ao contêiner.
chart.destroy()Destrói o gráfico e libera os ouvintes de eventos.

Exemplos ao vivo

Os dois gráficos abaixo usam a API de tempo de execução: um recebe novos pontos continuamente, o outro troca de tipo a cada clique.

Dados em tempo real

Uma janela deslizante de leituras: a cada segundo um valor novo entra, o mais antigo sai e a série é redesenhada com 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);

Trocar de tipo

Os mesmos dados são redesenhados em outro tipo com chart.update, definindo um novo chart.type — sem recriar o 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' } });