Круговая диаграмма: пропорциональное распределение и сегментирование

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

Механика круговых диаграмм

В отличие от декартовых диаграмм, использующих горизонтальные и вертикальные оси, круговые диаграммы напрямую отображают категориальные данные на радиальные углы в полярной системе координат. В Apache ECharts круговая диаграмма создается путем установки серии type на 'pie' и передачи массива объектов, где каждый элемент содержит числовое значение value и описательное name.

1. Основная настройка

Чтобы создать базовую круговую диаграмму, определите одну серию с type: 'pie' и передайте структурированный набор данных в массиве data массив:

option = {
    tooltip: {
        trigger: 'item',
        formatter: '{a} 
{b}: {c} ({d}%)'
    },
    legend: {
        orient: 'vertical',
        left: 'left'
    },
    series: [
        {
            name: 'Источник доступа',
            type: 'pie',
            radius: '60%',
            data: [
                { value: 1048, name: 'Поисковые системы' },
                { value: 735, name: 'Прямой' },
                { value: 580, name: 'Почта' },
                { value: 484, name: 'Объединенные рекламные баннеры' },
                { value: 300, name: 'Видеореклама' }
            ],
            emphasis: {
                itemStyle: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

 

Расширенные структурные техники

Круговые диаграммы можно настроить в виде колец (диаметральные диаграммы) или стилизовать с помощью пользовательских радиусов для акцентирования основных сегментов данных.

1. Вариант диаграммы-пончика

Установка радиус свойство в виде массива из двух значений (например, ['40%', '70%']) вырезает центр, чтобы создать чистую диаграмму с круглым отверстием. Это оставляет место в центре для пользовательских меток резюме:

option = {
    tooltip: {
        trigger: 'item'
    },
    legend: {
        top: '5%',
        left: 'center'
    },
    series: [
        {
            name: 'Тип устройства',
            type: 'pie',
            radius: ['40%', '70%'],
            avoidLabelOverlap: true,
            itemStyle: {
                borderRadius: 8,
                borderColor: '#fff',
                borderWidth: 2
            },
            label: {
                show: false,
                position: 'center'
            },
            emphasis: {
                label: {
                    show: true,
                    fontSize: 20,
                    fontWeight: 'bold'
                }
            },
            data: [
                { value: 1048, name: 'ПК' },
                { value: 735, name: 'Мобильные' },
                { value: 580, name: 'Планшеты' },
                { value: 484, name: 'Другое' }
            ]
        }
    ]
};

 

Тонкая настройка макета и стилей

Управление линиями вызова меток и границами сегментов позволяет сохранить читаемость круговых диаграмм даже при работе с небольшими значениями данных.

1. Настройка расстояния между сегментами и вызов меток

Применение ширины границ элементов и настройка внешних направляющих линий предотвращает наложение текста на соседние сегменты:

option = {
    series: [
        {
            name: 'Доля рынка',
            type: 'pie',
            radius: '65%',
            center: ['50%', '50%'],
            selectedMode: 'single',
            data: [
                { value: 40, name: 'Бренд A' },
                { value: 30, name: 'Бренд B' },
                { value: 15, name: 'Бренд C' },
                { value: 10, name: 'Бренд D' },
                { value: 5, name: 'Другие' }
            ],
            label: {
                formatter: '{b}: {d}%'
            },
            labelLine: {
                smooth: 0.2,
                length: 10,
                length2: 20
            },
            itemStyle: {
                borderColor: '#ffffff',
                borderWidth: 2
            }
        }
    ]
};

 

Стратегические лучшие практики

  • Ограничьте количество сегментов пятью или шестью:Слишком много маленьких сегментов делает круговую диаграмму трудной для чтения. Объедините незначительные значения в категорию «Другое», чтобы сохранить четкость фокуса.
  • Сортируйте сегменты по размеру: Разместите самый большой сегмент, начиная с 12 часов, и расположите остальные сегменты последовательно по часовой стрелке, чтобы облегчить быстрый просмотр.
  • Показывайте проценты непосредственно в подсказках или метках: Всегда включайте {d}% в форматтерах меток или подсказок, чтобы зрители сразу видели соотношения частей, не прибегая к умственным вычислениям.
Прокрутить вверх