Минимальная конфигурация Chart.js представляет собой набор
обязательных элементов, необходимых для отображения графика: подключение
библиотеки, HTML-элемент <canvas>, контекст
рендеринга и объект конфигурации диаграммы. Любое сокращение ниже этого
набора приводит к невозможности построения графика.
Chart.js может быть подключён двумя основными способами: через CDN или через пакетный менеджер.
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
После подключения библиотека становится доступной через глобальный
объект Chart.
npm install chart.js
Использование в модульной системе:
import Chart from 'chart.js/auto';
Модуль chart.js/auto автоматически регистрирует все
необходимые компоненты (контроллеры, элементы, шкалы и плагины), что
упрощает минимальную конфигурацию.
Для отображения графика требуется элемент
<canvas>, который служит поверхностью для
отрисовки.
<canvas id="myChart"></canvas>
Canvas должен существовать в DOM до инициализации диаграммы, иначе получение контекста будет невозможным.
Chart.js работает через 2D-контекст canvas:
const ctx = document.getElementById('myChart').getContext('2d');
Именно объект ctx передаётся в конструктор
диаграммы.
Базовая структура создания графика включает три обязательных элемента:
type)data)options)new Chart(ctx, {
type: 'bar',
data: {
labels: ['A', 'B', 'C'],
datasets: [{
data: [10, 20, 30]
}]
}
});
Даже в минимальном варианте Chart.js требует наличие
labels и datasets, поскольку они определяют
структуру визуализации.
Объект data является ядром конфигурации и включает два
ключевых поля:
Массив меток по оси X:
labels: ['Январь', 'Февраль', 'Март']
Массив наборов данных. Каждый набор представляет отдельную линию, столбцы или другую визуальную сущность.
datasets: [{
data: [5, 15, 25]
}]
Минимально допустимая конфигурация допускает отсутствие стилизации, так как Chart.js применяет значения по умолчанию.
Наиболее компактная рабочая форма включает только обязательные поля:
const ctx = document.getElementById('myChart').getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: ['1', '2', '3'],
datasets: [{
data: [3, 7, 4]
}]
}
});
Даже без указания цветов, осей и легенды график будет построен с дефолтными стилями.
new Chart(ctx, {
type: 'line',
data: {
labels: ['A', 'B', 'C', 'D'],
datasets: [{
data: [2, 9, 5, 12]
}]
}
});
Линейный график требует только числовых значений, которые соединяются линией автоматически.
new Chart(ctx, {
type: 'bar',
data: {
labels: ['Q1', 'Q2', 'Q3'],
datasets: [{
data: [11, 8, 14]
}]
}
});
Каждое значение массива отображается как отдельный столбец, соответствующий метке.
При минимальной конфигурации Chart.js автоматически применяет:
Отсутствие явной конфигурации не приводит к ошибкам, если сохранена корректная структура данных.
Система Chart.js требует соблюдения нескольких строгих условий:
ctx должен быть валидным 2D-контекстом canvastype должен быть строкой с зарегистрированным типом
диаграммыdata.datasets[0].data должен быть массивом чиселlabels должна соответствовать логике отображаемых
данных (не строго обязательна, но влияет на читаемость)document.getElementById('myChart') // null
В этом случае получение контекста приводит к ошибке выполнения.
datasets: [10, 20, 30]
Chart.js требует объектной структуры:
datasets: [{ data: [10, 20, 30] }]
new Chart(ctx, {
type: 'bar'
});
Без объекта data построение диаграммы невозможно.
Chart.js допускает несколько datasets даже в базовой форме:
new Chart(ctx, {
type: 'line',
data: {
labels: ['1', '2', '3'],
datasets: [
{ data: [1, 2, 3] },
{ data: [3, 2, 1] }
]
}
});
Каждый dataset отображается как отдельная линия с автоматически назначенными стилями.