Chart.js - это библиотека для создания диаграмм с открытым исходным кодом, которую разработчики и дизайнеры могут использовать для быстрого и гибкого создания диаграмм в своих проектах. В настоящее время они предлагают гистограмму, линию, пузырь, разброс, пончик, круговую диаграмму, полярную область, радар, масштаб и многие другие варианты диаграмм. Вы можете настроить диаграммы, используя разные цвета, метки, масштабирование, всплывающие подсказки и другие предоставленные параметры. Ниже мы рассмотрим некоторые из них более подробно.

Установка

Обычно пользователи должны установить Chart.js в свой корневой каталог проекта с помощью npm. Или, если хотите, есть несколько альтернативных методов, перечисленных на их странице установки (CDNJS, jsDelivr или загрузка репо на Github - не рекомендуется).

npm install chart.js

После установки добавьте его на свою страницу со следующим тегом скрипта:

<script src="https://cdn.jsdelivr.net.npm/chart.js"></chart>

Создание диаграммы

Чтобы создать диаграмму, вам сначала нужно добавить холст. Для большей отзывчивости они рекомендуют вам обернуть диаграмму в отдельный контейнер.

<div>
  <canvas id="sleepChart"></canvas>
</div>

Создав холст, вы можете добавить скрипт для настройки и настройки диаграммы. Массив меток используется для маркировки оси индекса (по умолчанию x, но может быть установлен как ось y).

const labels = [
  'Monday',
  'Tuesday',
  'Wednesday',
  'Thursday',
  'Friday',
  'Saturday',
  'Sunday'
];

И объект данных используется для хранения остальной информации о настройке.

const data = {
  labels: labels,
  datasets: [{
    label: 'Hours of Sleep This Week',
    backgroundColor: ['red', 'orange', 'yellow', 'green', 'blue',    'indigo', 'violet'],
    borderColor: 'black',
    borderWidth: 1,
    data: [6, 8, 5, 7.5, 6, 5.5, 9, 8.5],
  }]
};

Объект данных содержит метки, установленные для массива меток сверху, и массив наборов данных, который содержит объект, устанавливающий некоторую общую информацию о желаемой диаграмме. В этом случае мы установили метку (заголовок диаграммы) на «Часы сна на этой неделе», массив backgroundColor (вы можете просто указать один вместо массива), цвет границы диаграммы, ширину границы, а также установили некоторые данные для включения в нашу диаграмму.

Вам также потребуется включить объект конфигурации.

const configuration = {
  type: 'bar',
  data: data,
  options: {
    scales: {
      y: {
        beginAtZero: true
      }
    }
  }
};

Эта конфигурация устанавливает тип диаграммы, я указал гистограмму, данные, которые определяют объект данных сверху, и параметры. Этот объект параметров включает в себя объект масштабирования, который указывает, что маркировка оси Y должна начинаться с нуля.

После настройки всех ваших предпочтений вы можете объявить новую диаграмму, используя правильный идентификатор и конфигурацию, чтобы добавить ее в документ.

const sleepChart = new Chart(
  document.getElementById('sleepChart'),
  configuration
);

В конце концов, я составил диаграмму, которая могла мне понравиться (и даже это сомнительно), просто чтобы продемонстрировать некоторые из основных вариантов, с которыми вы можете поиграть.

Линейный график

Вот настройка базового линейного графика.

const labels = [
  'A',
  'B',
  'C',
  'D'
];
const data = {
  labels: labels,
  datasets: [{
    label: 'Beginner\'s Line Graph',
    backgroundColor: '#FFF',
    borderColor: '#000',
    data: [1, 3, 4, 2]
  }]
};
const config = {
  type: 'line',
  data: data,
  options: {}
};
const myChart = new Chart(
  document.getElementById('beginnerChart'),
  config
);

И вывод:

Вы можете видеть, что на этой диаграмме не указана ось Y, начинающаяся с 0, поэтому она просто включает значения, указанные в наборе данных.

Другие графики

Вот несколько примеров других параметров диаграммы из документации Chart.js.

Радарная диаграмма

Пончиковая диаграмма

Круговая диаграмма

Диаграмма разброса

Как видите, существует множество вариантов и настроек, позволяющих быстро и легко создавать диаграммы для вашего приложения. По сравнению с другими библиотеками диаграмм, эту очень легко интегрировать в ваше приложение гибким и отзывчивым способом. Удачи в построении графиков!

Ознакомьтесь с документацией Chart.js на сайте chartjs.org.