Объект Chart.defaults в библиотеке Chart.js представляет
собой глобальное хранилище настроек по умолчанию. Через него
определяется базовое поведение всех графиков, создаваемых в
приложении.
Любая диаграмма, созданная после изменения
Chart.defaults, автоматически наследует эти параметры, если
локальная конфигурация графика не переопределяет их.
Базовая структура:
Chart.defaults
Пример изменения глобального шрифта:
Chart.defaults.font.family = 'Arial';
Chart.defaults.font.size = 14;
Chart.defaults.color = '#333';
После этого все новые графики будут использовать указанные настройки текста.
В системе конфигурации Chart.js действует принцип приоритетов:
Chart.defaultsПример:
Chart.defaults.color = 'blue';
const chart = new Chart(ctx, {
type: 'bar',
data,
options: {
color: 'red'
}
});
В данном случае цвет текста будет красным, так как локальная конфигурация имеет более высокий приоритет.
Chart.defaults.color = '#222';
Параметр влияет на:
Глобальная настройка шрифтов:
Chart.defaults.font.family = 'Verdana';
Chart.defaults.font.size = 16;
Chart.defaults.font.weight = 'bold';
Chart.defaults.font.lineHeight = 1.4;
Доступные свойства:
| Свойство | Назначение |
|---|---|
family |
Семейство шрифта |
size |
Размер |
style |
Стиль |
weight |
Толщина |
lineHeight |
Межстрочный интервал |
Настройки анимации применяются ко всем графикам:
Chart.defaults.animation.duration = 2000;
Chart.defaults.animation.easing = 'easeOutBounce';
Отключение анимации:
Chart.defaults.animation = false;
Chart.defaults.responsive = true;
Chart.defaults.maintainAspectRatio = false;
Описание:
| Параметр | Назначение |
|---|---|
responsive |
Автоматическое изменение размеров |
maintainAspectRatio |
Сохранение пропорций |
Chart.defaults.elementsСекция elements управляет внешним видом графических
примитивов.
Chart.defaults.elements.line.borderWidth = 3;
Chart.defaults.elements.line.tension = 0.4;
Chart.defaults.elements.line.borderColor = 'blue';
Свойства:
| Свойство | Назначение |
|---|---|
borderWidth |
Толщина линии |
tension |
Степень сглаживания |
borderColor |
Цвет линии |
fill |
Заполнение области |
Chart.defaults.elements.point.radius = 5;
Chart.defaults.elements.point.hoverRadius = 8;
Chart.defaults.elements.point.backgroundColor = 'red';
Chart.defaults.elements.bar.borderWidth = 2;
Chart.defaults.elements.bar.borderRadius = 6;
Используются в круговых диаграммах:
Chart.defaults.elements.arc.borderWidth = 1;
Chart.defaults.elements.arc.borderColor = '#fff';
Chart.defaults.pluginsПлагины в Chart.js также поддерживают глобальные настройки.
Chart.defaults.plugins.legend.position = 'bottom';
Chart.defaults.plugins.legend.labels.color = '#000';
Chart.defaults.plugins.legend.labels.font.size = 14;
Позиции легенды:
topleftbottomrightChart.defaults.plugins.tooltip.backgroundColor = '#222';
Chart.defaults.plugins.tooltip.titleColor = '#fff';
Chart.defaults.plugins.tooltip.bodyColor = '#ddd';
Chart.defaults.plugins.tooltip.padding = 12;
Chart.defaults.plugins.title.display = true;
Chart.defaults.plugins.title.font.size = 20;
Chart.defaults.plugins.title.color = 'darkblue';
Глобальная конфигурация шкал:
Chart.defaults.scales.linear.beginAtZero = true;
Настройка сетки:
Chart.defaults.scales.linear.grid.color = '#ddd';
Chart.defaults.scales.linear.grid.lineWidth = 1;
Настройка подписей:
Chart.defaults.scales.linear.ticks.color = '#000';
Chart.defaults.scales.linear.ticks.font.size = 12;
Кроме общих настроек, доступны параметры по типам диаграмм.
Структура:
Chart.overrides[type]
Пример для круговой диаграммы:
Chart.overrides.pie.plugins.legend.position = 'left';
Пример для bar chart:
Chart.overrides.bar.scales.x.grid.display = false;
Chart.defaults и Chart.overrides| Объект | Назначение |
|---|---|
Chart.defaults |
Общие глобальные настройки |
Chart.overrides |
Настройки конкретного типа диаграммы |
Часто Chart.defaults используется для построения единой
темы интерфейса.
Пример тёмной темы:
Chart.defaults.color = '#eee';
Chart.defaults.borderColor = '#444';
Chart.defaults.backgroundColor = '#222';
Chart.defaults.plugins.legend.labels.color = '#fff';
Chart.defaults.scales.linear.grid.color = '#555';
Chart.defaults.scales.linear.ticks.color = '#ddd';
Изменение Chart.defaults влияет только на новые
графики.
Пример:
Chart.defaults.color = 'red';
new Chart(ctx1, config1);
Chart.defaults.color = 'blue';
new Chart(ctx2, config2);
Первый график останется красным, второй получит синий цвет.
Для обновления существующей диаграммы используется:
chart.update();
Но если настройки были уже скопированы в объект графика, может потребоваться прямое изменение параметров экземпляра.
Полный сброс вручную:
Chart.defaults.font.size = 12;
Chart.defaults.color = '#666';
В библиотеке отсутствует универсальный метод полного восстановления стандартных параметров.
Поэтому в крупных проектах часто создаётся собственный объект темы:
const defaultTheme = {
color: '#222',
fontSize: 14
};
В больших приложениях глобальные настройки обычно выносятся в отдельный файл.
Пример:
// chart-theme.js
Chart.defaults.color = '#333';
Chart.defaults.font.family = 'Roboto';
Chart.defaults.plugins.legend.position = 'bottom';
Chart.defaults.elements.line.borderWidth = 2;
Подключение:
import './chart-theme.js';
Такой подход:
При работе с ES Modules настройки часто применяются сразу после импорта библиотеки:
import {
Chart,
LineController,
LineElement,
PointElement,
LinearScale
} from 'chart.js';
Chart.register(
LineController,
LineElement,
PointElement,
LinearScale
);
Chart.defaults.color = '#111';
Чрезмерное количество локальных настроек увеличивает размер конфигурации каждого графика.
Использование Chart.defaults позволяет:
options;Особенно заметна польза при генерации большого количества диаграмм.
Неверно:
const chart = new Chart(ctx, config);
Chart.defaults.color = 'red';
Существующий график не обновится автоматически.
Неверно:
Chart.defaults.legend.position = 'bottom';
Правильно:
Chart.defaults.plugins.legend.position = 'bottom';
defaults и overridesНеверно:
Chart.defaults.pie.legend.position = 'left';
Правильно:
Chart.overrides.pie.plugins.legend.position = 'left';
Объект Chart.defaults имеет древовидную структуру:
Chart.defaults = {
responsive,
maintainAspectRatio,
color,
font,
animation,
plugins,
scales,
elements
}
Каждая секция может содержать вложенные объекты.
Глобальные параметры задают основу:
Chart.defaults.font.family = 'Tahoma';
Chart.defaults.color = '#444';
Локальные — уточняют поведение:
const chart = new Chart(ctx, {
type: 'line',
data,
options: {
plugins: {
legend: {
position: 'right'
}
}
}
});
Такой подход считается оптимальным для крупных интерфейсов.
Chart.defaults.responsive = true;
Chart.defaults.maintainAspectRatio = false;
Chart.defaults.color = '#222';
Chart.defaults.font.family = 'Inter';
Chart.defaults.font.size = 14;
Chart.defaults.animation.duration = 1000;
Chart.defaults.elements.line.borderWidth = 2;
Chart.defaults.elements.point.radius = 4;
Chart.defaults.plugins.legend.position = 'bottom';
Chart.defaults.plugins.tooltip.backgroundColor = '#111';
Chart.defaults.scales.linear.beginAtZero = true;
Chart.defaults.scales.linear.grid.color = '#ddd';
Chart.defaultsОбъект Chart.defaults выполняет функцию
централизованного слоя конфигурации. Через него реализуются:
В крупных системах Chart.defaults становится основой
всей визуальной инфраструктуры диаграмм.