Titles, labels & themes
Configure chart text, value labels and appearance. This feature belongs to @revolist/charts and can be used without Pivot or a grid.
Try it live
Section titled “Try it live”Choose Change settings to change the title, hide value labels and show the dark chart theme. Restore the original settings to compare. The chart also follows the documentation theme when that changes.
Use a plaintext long description for additional chart context. Per-type label support and collision policies still apply.
Loading chart…
Inspect live chart state
The chart uses the native Charts renderer. Buttons outside the plot are example application controls calling the public API.
Complete chart setup with sample data
Install Charts using the installation guide, then run this setup after the host mounts. The data is illustrative. Additional actions for this tool are explained below.
<div id="chart" style="width:100%;height:500px"></div>import { createChartFactory } from '@revolist/charts/core';import { lineChart } from '@revolist/charts/line';import { groupedColumnChart } from '@revolist/charts/grouped-column';import { columnLineChart } from '@revolist/charts/column-line';
const rows = [ { "date": 1767225600000, "month": "Jan", "revenue": 65, "costs": 45 }, { "date": 1769904000000, "month": "Feb", "revenue": 82, "costs": 50 }, { "date": 1772323200000, "month": "Mar", "revenue": 76, "costs": 48 }, { "date": 1775001600000, "month": "Apr", "revenue": 95, "costs": 65 }, { "date": 1777593600000, "month": "May", "revenue": 110, "costs": 72 }, { "date": 1780272000000, "month": "Jun", "revenue": 102, "costs": 68 }, { "date": 1782864000000, "month": "Jul", "revenue": 121, "costs": 80 }, { "date": 1785542400000, "month": "Aug", "revenue": 115, "costs": 76 }, { "date": 1788220800000, "month": "Sep", "revenue": 135, "costs": 89 }, { "date": 1790812800000, "month": "Oct", "revenue": 128, "costs": 85 }, { "date": 1793491200000, "month": "Nov", "revenue": 145, "costs": 92 }, { "date": 1796083200000, "month": "Dec", "revenue": 155, "costs": 100 }];const mapping = { "category": { "field": "date", "label": "month" }, "series": [ { "field": "revenue", "label": "Revenue" }, { "field": "costs", "label": "Costs" } ]};const createChart = createChartFactory([lineChart, groupedColumnChart, columnLineChart]);const container = document.getElementById('chart')!;const chart = await createChart({ container, data: rows, mapping, "chartType": "line", "axes": { "x": { "scale": "time" } }, "presentation": { "title": "Monthly performance", "subtitle": "Illustrative data · 2026", "legendPosition": "bottom", "dataLabels": true, "description": "Revenue and costs over twelve illustrative months." }, "interaction": { "mode": "select", "selectionMode": "multiple" }});
// When the host unmounts:// chart.destroy();API and configuration
Section titled “API and configuration”await chart.update({ presentation: { ...chart.model.presentation, title: 'Forecast review', subtitle: 'Illustrative data', description: 'Revenue and costs over twelve months.', dataLabels: false, legendPosition: 'bottom', }, theme: 'dark',});Support and behavior
Section titled “Support and behavior”Supported themes are light, dark and auto. Auto follows the nearest host data-theme, then the system preference. Data labels require the selected type’s label capability. presentation updates replace that object, so spread retained fields explicitly.
State and cleanup
Section titled “State and cleanup”Authored settings are available through chart.model. Updates replace whole settings objects: spread fields you want to retain, and await the returned promise before reading state or exporting. Destroy the controller when its host unmounts.