Я думаю, что у многих разработчиков бывали моменты, когда они бесились от диаграмм: они находились под большим бизнес-давлением, хотели быстро загрузить диаграмму, и после долгого метания она получалась, но она была уродлива и не могла быть демонстрация выглядела очень красиво, но она сразу же изменилась, когда ее заменили реальными данными. Станьте шоу для покупателей... Долгое время эти проблемы преследовали и интерфейс Ant. Почему так сложно написать облегченную схему?
Чтобы сделать процесс разработки диаграмм проще и приятнее, команда Ant Financial Visualization Team извлекла набор общих статистических данных, основанных на бизнес-сценариях и требованиях к диаграммам, извлеченным из более чем 20 000 бизнес-систем внутри и за пределами экономики Али, а также среднесуточных данных. из десятков миллионов УФ продуктов.Библиотека карт —G2Plot.
При этом повседневная жизнь интерфейса Ant Financial с использованием графиков выглядит следующим образом:
Front-end little K получил сегодня относительно жесткое бизнес-требование — быстро построить в системе панель для отображения продаж определенного товара с диаграммой. Xiao K и PD через некоторое время решили использоватьG2PlotСравните классические области, гистограмму и кольцевую диаграмму.
Красивая и интуитивно понятная диаграмма с областями
Диаграмма с областями — это первая диаграмма, которую К. составит и будет использовать.Диаграмма с областями с накоплениемчтобы показать временной тренд нескольких индикаторов.
Step1: ввести тип диаграммы
import { StackArea } from '@antv/g2plot';
Step2: подготовить данные
Формат источника данных G2Plot — массив JSON, а каждый элемент массива — стандартный объект JSON.
Данные ниже описывают квартальные продажи для каждого региона с 2016 по 2018 год. Пространство дисплея ограничено, и только одна четверть используется в качестве примера для отображения образцов данных.
const data = [
{ time: '2018季1', area: '东北', value: 190567 },
{ time: '2018季1', area: '华北', value: 80122 },
{ time: '2018季1', area: '华东', value: 223720 },
{ time: '2018季1', area: '西北', value: 157845 },
{ time: '2018季1', area: '中南', value: 60343 },
{ time: '2018季1', area: '西南', value: 98810 },
];
Step3: генерировать графикиПодключите источник данных, используйте поле «время» в данных в качестве оси X, поле «значение» в качестве оси Y, а также сгруппируйте и сложите данные по полю «площадь».
const area = new StackArea(
document.getElementById('area-container'), // 获取图表容器
{
data,
xField: 'time',
yField: 'value',
stackField: 'area'
} // 图表配置项
);
area.render();
Done! Всего 7 строк кода! Благодаря мощной системе проектирования AntV вы можете видеть, что качество отображаемых диаграмм по умолчанию довольно высокое.
Однако Xiao K — фронтенд, стремящийся к совершенству, и ему приходится дополнительно оптимизировать некоторые детали графика:
Шаг 4: добавьте заголовок
добавить в диаграммуназвание и описаниеЭто может помочь пользователям получить информацию о предмете, которая будет выражена диаграммой более интуитивно.
const area = new StackArea(document.getElementById('area-container'), {
title: {
visible: true,
text: '地区销售趋势',
},
data,
xField: 'time',
yField: 'value',
stackField: 'area'
});
area.render();
step5: Оптимизация оси координат
Когда работа была завершена, PD и дизайнер вместе сказали, что им еще есть что сказать. Оба они посчитали, что ось Y графика имеет место для оптимизации: дизайнер посчитал, что шкалы оси Y слишком плотные, а четыре шкалы визуально красивее, а PD посчитал, что метки оси Y -ось отображались в тысячных долях стандарта. Столкнувшись с этими требованиями, Сяо Кей сказал, что он эмоционально стабилен.
const area = new StackArea(document.getElementById('area-container'), {
title: {
visible: true,
text: '地区销售趋势',
},
data,
xField: 'time',
yField: 'value',
stackField: 'area',
yAxis: {
tickCount: 4,
label: {
formatter: (v) => {
return Math.floor(v / 1000) + 'k';
},
},
},
});
area.render();
Готово, для простого создания диаграмм с областями с накоплением требуется менее 20 строк кода.
Краткая гистограмма
Вторая диаграмма, которую нужно сделать следующей, этоСтолбчатая диаграмма с накоплением, который будет использоваться для сравнения продаж каждой категории продуктов в разных регионах. Предварительные шаги для создания диаграмм такие же, как и для диаграмм с областями с накоплением. Давайте перейдем непосредственно к основной ссылке:
Введите тип диаграммы:
import { StackBar } from '@antv/g2plot';
Создать диаграмму: смонтируйте источник данных, настройте заголовок, укажите поле «количество» в данных в качестве оси X, поле «площадь» в качестве оси Y и поле «кат» для стека. Некоторые мелкие детали, которые влияют на работу, были сделаны по умолчанию: автоматическое скрытие графической метки, когда места на дисплее недостаточно, автоматическая настройка цвета шрифта в соответствии с цветом фона для обеспечения удобочитаемости и т. д.
const bar = new StackBar(document.getElementById('bar-container'), {
data,
xField: 'count',
yField: 'area',
stackField: 'cat',
});
bar.render();
Изменить образцы:
Дизайнер считает, что эта диаграмма сравнивает данные категории, а не данные региона, поэтому она не должна использовать ту же цветовую палитру, что и диаграмма с накоплением областей. Нет проблем, менять образцы тоже легко:
color: ['#945fb9', '#1e9493', '#ff9845']
Гибкая и яркая кольцевая диаграмма
Кольцевая диаграммаНа этот раз это последний график, созданный Сяо К. Его преимуществами являются полая часть в центре и карта-индикатор, которая может взаимодействовать с графикой.
Введите тип диаграммы:
import { Ring } from '@antv/g2plot';
Создайте график:Поле «счет» в указанных данных определяет размер среза кольцевого графика, а поле «площадь» определяет цвет срезов.
const ring = new Ring(document.getElementById('ring-container'), {
data,
angleField: 'bill',
colorField: 'area',
});
Добавьте индикаторную карту в центр кольцевой диаграммы:
Элемент конфигурации triggerOn определяет, как карточка индикатора связана с графиком.
statistic:{
visible: true,
triggerOn:'mouseenter'
}
});
На этом панель диаграммы Xiao K завершена, используйтеG2Plotтолько что использовалМенее 50 строк кода. Разве не было бы неплохо сэкономить время, чтобы чему-то научиться, поиграть в игру и потискать кошку?
G2PlotОн постоянно совершенствуется с открытым исходным кодом.Помимо обслуживания многих предприятий Ant Financial, я надеюсь, что эта библиотека диаграмм, которая была отшлифована и улучшена сценариями корпоративного уровня, может помочь большему количеству людей решить болевые точки создания графики.
наконец
оG2PlotДля получения более подробной технической информации и подробного прогресса, пожалуйста, следите за нами по следующим каналам👇. Вы также можете дать небольшую звезду, чтобы больше людей могли увидеть этот проект с открытым исходным кодом:
- Гитхаб:GitHub.com/ant vis/ 2 комментария…
- Официальный сайт:antv-g2plot.gitee.io/zh