ECharts: 📊 детальний огляд

ECharts (Enterprise Charts) — це потужна бібліотека для інтерактивної візуалізації даних, створена компанією Baidu. Вона дозволяє будувати складні, динамічні та адаптивні графіки з використанням Canvas API.


🔹 Основні можливості ECharts

  1. Підтримка різних типів графіків
    • Лінійні та стовпчикові графіки
    • Кругові діаграми (Pie charts)
    • Гістограми та розподіли даних
    • Теплові карти (Heatmaps)
    • Карти світу (Geo Maps)
    • Діаграми потоків (Sankey)
    • 3D-візуалізація
    • Графіки на основі графів та деревоподібних структур
  2. Висока продуктивність
    • Оптимізовано для великих обсягів даних.
    • Використання Canvas API робить графіки швидшими, ніж ті, що працюють на SVG (наприклад, D3.js).
  3. Гнучка кастомізація
    • Можна змінювати кольори, анімацію, шрифти, розташування легенд тощо.
  4. Інтерактивність
    • Реагує на події миші та сенсорні жести.
    • Динамічні оновлення та анімація.
  5. Адаптивний дизайн
    • Автоматично підлаштовується під розмір екрана без втрати якості.
  6. Легка інтеграція

🔹 Як встановити та використовувати ECharts

1️⃣ Встановлення

Підключення через CDN:

<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>

Або встановлення через npm:

npm install echarts

2️⃣ Базовий графік

Створимо простий стовпчиковий графік.

🔹 HTML:

<div id="chart" style="width: 600px; height: 400px;"></div>

🔹 JavaScript:

// Отримуємо контейнер для графіка
const chartDom = document.getElementById('chart');
const myChart = echarts.init(chartDom);

// Налаштування графіка
const option = {
    title: {
        text: 'Продажі за місяць'
    },
    tooltip: {},
    xAxis: {
        data: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень']
    },
    yAxis: {},
    series: [{
        name: 'Продажі',
        type: 'bar', // Тип графіка
        data: [5, 20, 36, 10, 10]
    }]
};

// Відображаємо графік
myChart.setOption(option);

📌 Що тут відбувається?

  • echarts.init() створює графік у <div>.
  • option містить налаштування, включаючи заголовок, вісь X/Y, тип графіка та дані.
  • setOption() застосовує ці налаштування.

3️⃣ Створення кругової діаграми (Pie Chart)

const option = {
    title: {
        text: 'Розподіл продажів'
    },
    series: [{
        type: 'pie',
        data: [
            { value: 40, name: 'Продукт A' },
            { value: 20, name: 'Продукт B' },
            { value: 30, name: 'Продукт C' }
        ]
    }]
};

myChart.setOption(option);

📌 Що особливого?

  • Кожен сегмент має свою назву та значення.
  • Автоматична анімація під час рендерингу.

4️⃣ Лінійний графік (Line Chart)

const option = {
    xAxis: {
        type: 'category',
        data: ['Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П’ятниця']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        type: 'line',
        data: [10, 22, 28, 23, 19]
    }]
};

myChart.setOption(option);

📌 Чому це круто?

  • Автоматичне масштабування значень на Y-осі.
  • Лінія має плавну анімацію.

🔹 Чим ECharts кращий за інші бібліотеки?

Бібліотека Переваги
ECharts Оптимізований для великих даних, висока швидкість
Chart.js Легший у використанні, але менш продуктивний
D3.js Максимальна кастомізація, але складний код
Highcharts Візуально привабливий, але комерційна ліцензія

Переваги ECharts

✔️ Продуктивність – ідеальний для великих наборів даних
✔️ Гнучкість – підтримує безліч типів графіків
✔️ Інтерактивність – динамічні оновлення та анімація
✔️ Безкоштовний – повністю open-source
✔️ Підтримка 3D-графіки та карт

Недоліки

Розмір бібліотеки – важча, ніж Chart.js
Менше гнучкості в кастомізації, ніж у D3.js
Вимагає більше коду для налаштування складних графіків


🔹 Висновок

ECharts – чудове рішення для інтерактивної візуалізації великих даних. Якщо вам потрібні швидкість, масштабованість та інтерактивність, ця бібліотека буде ідеальним вибором.

Якщо ж вам потрібно щось просте та легке, варто звернути увагу на Chart.js. Якщо ж вам потрібна повна кастомізація, тоді D3.js – кращий варіант.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *