Радарная диаграмма представляет собой визуализацию многомерных данных, в которой каждая переменная отображается на отдельной оси, исходящей из центра. Все оси имеют общий нулевой центр, а значения откладываются радиально. Итоговая форма соединяет точки значений и образует многоугольник, позволяя быстро оценивать баланс характеристик.
Chart.js реализует радарные диаграммы через тип графика
radar, поддерживающий наборы данных, настройку шкал,
стилизацию линий, точек и заполнения области.
Минимальная конфигурация включает:
radarconst config = {
type: 'radar',
data: {
labels: ['Сила', 'Выносливость', 'Скорость', 'Интеллект', 'Ловкость'],
datasets: [{
label: 'Персонаж A',
data: [80, 65, 90, 70, 85]
}]
}
};
Отрисовка выполняется через Chart:
const ctx = document.getElementById('chart').getContext('2d');
new Chart(ctx, config);
Каждое значение в массиве data соответствует одной метке
из labels. Порядок строго синхронизирован:
labels[0] → data[0]labels[1] → data[1]Несоответствие длины массивов приводит к некорректному отображению или игнорированию лишних значений.
Радарная диаграмма поддерживает наложение нескольких наборов данных, что позволяет сравнивать объекты по одинаковым параметрам.
datasets: [
{
label: 'Персонаж A',
data: [80, 65, 90, 70, 85]
},
{
label: 'Персонаж B',
data: [60, 75, 70, 85, 60]
}
]
Каждый набор данных формирует отдельный многоугольник.
Основные параметры визуализации:
borderColor — цвет контураbackgroundColor — заливка областиpointBackgroundColor — цвет точекpointBorderColor — обводка точекdatasets: [{
label: 'Персонаж A',
data: [80, 65, 90, 70, 85],
borderColor: 'rgb(54, 162, 235)',
backgroundColor: 'rgba(54, 162, 235, 0.2)',
pointBackgroundColor: 'rgb(54, 162, 235)'
}]
borderWidth: 2,
pointRadius: 4,
pointHoverRadius: 6
borderWidth влияет на визуальную плотность контураpointRadius управляет размером узловpointHoverRadius увеличивает точки при наведенииРадарная диаграмма использует радиальную шкалу (r-axis),
которая по умолчанию автоматически подстраивается под диапазон
данных.
options: {
scales: {
r: {
min: 0,
max: 100,
ticks: {
stepSize: 20
}
}
}
}
Фиксированный диапазон важен при сравнении разных наборов данных, чтобы избежать визуальных искажений.
ticks: {
display: true,
backdropColor: 'transparent',
color: '#666'
}
pointLabels: {
color: '#333',
font: {
size: 12
}
}
Эти подписи располагаются вокруг диаграммы и соответствуют каждой оси.
Радиальная сетка формируется концентрическими окружностями и лучами.
grid: {
circular: true,
color: 'rgba(0,0,0,0.1)'
}
circular: true делает сетку круговойcolor управляет визуальной плотностью структурыChart.js позволяет изменять стартовый угол и направление построения:
options: {
scales: {
r: {
angleLines: {
display: true
},
beginAtZero: true
}
}
}
Также возможно управление направлением вращения через глобальные параметры.
Радарная диаграмма поддерживает анимацию построения многоугольника.
options: {
animation: {
duration: 1000,
easing: 'easeOutQuart'
}
}
Анимация применяется как к линиям, так и к заполнению области.
Подсказки отображают значение конкретной оси при наведении:
options: {
plugins: {
tooltip: {
enabled: true
}
}
}
Дополнительно возможно кастомизировать отображение:
callbacks: {
label: function(context) {
return `${context.dataset.label}: ${context.raw}`;
}
}
При наложении нескольких наборов данных важны:
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)'
Для второго набора:
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)'
Радарные диаграммы адаптивны и пересчитывают геометрию при изменении размеров контейнера. Важно учитывать:
responsive: trueoptions: {
responsive: true,
maintainAspectRatio: false
}
Радарные диаграммы используются для анализа многокритериальных данных:
Каждая ось представляет отдельную метрику, что делает структуру особенно полезной для сравнений без линейной зависимости между параметрами.
Форма многоугольника отражает распределение значений:
Искажение восприятия возникает при неправильном выборе диапазона шкалы, что делает нормализацию данных критически важной.
Радарная диаграмма имеет ряд структурных ограничений:
При увеличении количества параметров свыше 8–10 осей снижается визуальная различимость формы.