Научная статья на тему 'МЕТОДЫ ОБРАБОТКИ И ВИЗУАЛИЗАЦИИ ДАННЫХ В ВЕБ-ИНТЕРФЕЙСЕ С ПОМОЩЬЮ БИБЛИОТЕКИ DIMENSIONAL CHARTING'

МЕТОДЫ ОБРАБОТКИ И ВИЗУАЛИЗАЦИИ ДАННЫХ В ВЕБ-ИНТЕРФЕЙСЕ С ПОМОЩЬЮ БИБЛИОТЕКИ DIMENSIONAL CHARTING Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
131
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБРАБОТКА ДАННЫХ / ВИЗУАЛИЗАЦИЯ ДАННЫХ / ФИЛЬТРАЦИЯ / СОРТИРОВКА DIMENSIONAL CHARTING / JAVASCRIPT / JSON / CROSSFILTER / DATA-DRIVEN DOCUMENTS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Балеев И.А., Земцов А.Н., Астахов Д.А.

В данной работе демонстрируется подход по визуализации данных при помощи манипуляций с json-данными. Опираясь на библиотеку Dimensional Charting можно проводить рендеринг графической информации с учетом обработки больших данных, так как интерактивная визуализация данных в веб-интерфейсе находит большое применение при анализе пользовательского трафика в интернете. Dimensional Charting является связующим звеном двух встроенных библиотек. Библиотека Crossfilter ответственна за сортировку, фильтрацию больших данных, а d3.js необходим для отрисовки графического материала на html-страницах. Благодаря новым технологиям можно обрабатывать большие данные, не используя сторонние языки программирования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

METHODS FOR PROCESSING AND VISUALIZING DATA IN THE WEB INTERFACE USING THE DIMENSIONAL CHARTING LIBRARY

This paper demonstrates an approach to data visualization using manipulations with json data. Based on the Dimensional Charting library, you can render graphical information taking into account the processing of big data, since interactive data visualization in the web interface is widely used in analyzing user traffic on the Internet. Dimensional Charting is the link between the two built-in libraries. The Crossfilter library is responsible for sorting, filtering big data, and d3.js it is necessary for drawing graphic material on html pages. Thanks to new technologies, you can process big data without using third-party programming languages.

Текст научной работы на тему «МЕТОДЫ ОБРАБОТКИ И ВИЗУАЛИЗАЦИИ ДАННЫХ В ВЕБ-ИНТЕРФЕЙСЕ С ПОМОЩЬЮ БИБЛИОТЕКИ DIMENSIONAL CHARTING»

Методы обработки и визуализации данных в веб-интерфейсе с помощью

библиотеки Dimensional Charting

И.А. Балеев, А.Н. Земцов, Д.А. Астахов Волгоградский государственный технический университет

Аннотация: В данной работе демонстрируется подход по визуализации данных при помощи манипуляций с json-данными. Опираясь на библиотеку Dimensional Charting, можно проводить рендеринг графической информации с учетом обработки больших данных, так как интерактивная визуализация данных в веб-интерфейсе находит большое применение при анализе пользовательского трафика в интернете. Dimensional Charting является связующим звеном двух встроенных библиотек. Библиотека Crossfilter ответственна за сортировку, фильтрацию больших данных, а d3.js необходим для отрисовки графического материала на html-страницах. Благодаря новым технологиям, можно обрабатывать большие данные, не используя сторонние языки программирования. Ключевые слова: Обработка данных, визуализация данных, фильтрация, сортировка dimensional charting, javascript, json, crossfilter, data-driven documents

Вебсайты, корпоративные интранет и экстранет - порталы, системы электронного документооборота, CRM-веб системы, системы управления базами данных и другие веб-системы за последние 20 лет получили колоссальное развитие. В результате такого роста все больше информации хранится в веб-пространстве, и при увеличении объема такой информации, ценность ее растет [1].

За этот период JavaScript перерос из обычного встраиваемого языка сценариев в мультипарадигменный язык программирования. С появлением новых библиотек, обработка больших данных и отображение результата в виде диаграмм в веб-интерфейсе не составляет труда.

С помощью библиотеки Dimensional Charting (dc.js), можно визуализировать и проводить анализ данных в браузере и на мобильных устройствах. Dc.js включает в себя библиотеку Data-Driven Documents (d3.js), которая используется для визуализации диаграмм в формате SVG. Диаграммы, отображаемые с помощью dc.js, манипулируют данными и реагируют на

запросы, при этом обеспечивают мгновенную обратную связь при взаимодействии с пользователем [2].

Dc.js поддерживает обработку больших многомерных наборов данных, с помощью встроенной поддерживаемой библиотеки crossfilter. Благодаря данной библиотеке, мы можем фильтровать, сортировать, проводить группировку данных, при этом обеспечивая оперативную скорость взаимодействия [3, 4].

Соответственно, библиотека dc.js является связующим звеном crossfilter и d3.js, так как crossfiter способен только манипулировать данными, а d3.js -взаимодействовать с графиками [5, 6].

Для упрощения взаимодействия пользователя с html-страницей используется jQuery. Эта библиотека обеспечивает полное взаимодействие со структурой DOM (Document Object Model), позволяя взаимодействовать со структурой html-документа [7].

Для демонстрации работы возьмем датасет пользовательского трафика на веб-странице. На рисунке 1, можно наблюдать два блока, которые ответственны за количество посещений на веб-сайте. То есть, при начале веб-сеанса происходит запись в базу данных.

"availableresolution": "412x892", "hnoL'Jsernajorversion": 33,

"availableresolution": "360x800", "broL'JsernajorversiorT: 30,

Рис. 1. - Пример набора входных данных.

Запись содержит несколько полей:

1. clientdataid - уникальный номер сеанса; присваивается, когда пользователь заходит на страницу;

2. availableresolution - максимальное разрешение, которое может иметь пользователь на своем устройстве;

3. browser - браузер, с которого был начат сеанс;

4. browsermajorversion - основная версия браузера;

5. colordepth - цветовая глубина устройства.

Набор данных будет содержаться в JSON файле, импортированном в функцию crossfilter().

Данная функция предназначена для последующей группировки и фильтрации входных данных по необходимому ключу. В этом случае необходимым ключом будет являться browser. Для выдачи значений по ключу browser, используется метод crossfilter.dimension(value).

С помощью указанного метода создается новое пространство доступа к значению. Он должен возвращать естественно упорядоченные значения, то есть значения, которые ведут себя правильно по отношению к операторам Javascript <, <=,> = и>. Обычно это означает примитивы: логические значения, числа или строки.

Стоит отметить, что несравнимые значения, такие, как NaN и undefined, не поддерживаются. Также следует соблюдать осторожность при смешивании типов, например, строк и чисел. Если строки и числа смешаны, строки будут принудительно преобразованы в числа, в противном случае появятся неподдерживаемые значения NaN [8].

Так как отрисовка диаграммы будет происходить на html-странице, то сначала необходимо обратиться к id необходимого тега [9]. <div id="pie-chart"></div>

Зная id тега div, можем передать его в качестве аргумента в функцию pieChart(). PieChart - специальная функция, служащая для отрисовки круговой диаграммы [10]. const speed_pie = dc.pieChart("#sample-pie");

В sample_data хранится набор метаданных, которые понадобятся в дальнейшем отображении на диаграммах.

Наложим оболочку на входные данные для дальнейшей фильтрации:

const cfData = crossfilter(sample_data); Поместив json-объект в crossfilter, реализуем функцию обратного вызова, изымая ключ browser.

browserDimension = cfData.dimension((data) => { return data.browser;

})

Далее, создадим группу значений для browser, применив функцию group(). В данную группу будут входить такие подгруппы браузеров, как: chrome, mobile safari, mozilla firefox, opera. const browserGroup = browserDimension.group();

Теперь произведем рендеринг круговой диаграммы, используя функцию ниже:

speed_pie .width (800) .height (300)

.dimension (browserDimension)

.group (browserGroup)

.on ('renderlet', function (chart) {

});

- Width () - ширина круговой диаграммы установлена на 800 пикселей.

- height () - Высота круговой диаграммы установлена на 300 пикселей.

- dimension () - метод, куда необходимо подставить изъятый ранее ключ browser.

- group() - метод, куда подставляются выбранные подгруппы браузеров по ключу browser.

- on() - событийная функция, где передаваемым параметром является 'renderlet'.

Для рендеринга диаграмм используется следующий метод: dc.renderAll();

На рисунке 2 можно наблюдать отрисованную круговую диаграмму на статической html-странице.

^^^^^ Opera

т Chrome

L J

Рис. 2. - Круговая диаграмма с подгруппами браузеров. Далее, следует подсчитать количество браузеров для каждой подгруппы. Подсчет к созданному выше набору данных - browserDimension, осуществляется с помощью функции all (): browserDimension.all ();

На рисунке 3 можно наблюдать json массив, где указана подгруппа браузеров с ключом key и количество упоминаний браузеров с ключом value.

'(4) [{...}, {...}, {-}, {...}] »■0: {key: "Chroine", value: ►1: {key: "Mobile Scfari", valje: 11}

► 2: {key: "Nozilla Firefox'', value: B> »■3: {key: "Opera', value: 5>

length: 4

►_prctc_: Array(0)

Рис. 3. - Набор выходных данных по ключу browser.

Опираясь на полученные данные, можно сделать следующие выводы: браузер "Chrome" занимает лидирующую позицию среди других браузеров, и его величина составляет 59% от общего количества. Самым малоиспользуемым браузером является "Opera", его величина составляет 9%. Задействовав библиотеку Dimensional Charting, можно проводить веб-аналитику, не используя сторонние языки программирования. Достаточно иметь подключенный скрипт библиотеки в html-документе. Большое разнообразие передаваемых данных имеет json-формат, это облегчает обработку разного рода информации, полученной во время браузерной сессии.

1. Прощаева А.А., Синелобова С.В. Обзор программного обеспечения для построения распределенных вебсистем // Инженерный вестник Дона, 2017, № 4. URL: ivdon.ru/uploads/article/pdf/ IVD_130_proshchaeva_sinelobova.pdf_75c41b8172.pdf.

2. Dimensional Charting Javascript Library // dc-js.github.io. URL: dc-js.github.io/dc.js/.

3. Crossfilter // crossfilter.github.io. URL: crossfilter.github.io/ crossfilter/.

4. Fast Multidimensional Filtering for Coordinated Views // square.github.io. URL: square.github.io/crossfilter/.

Литература

M Инженерный вестник Дона, №6 (2021) ivdon.ru/ru/magazine/arcliive/n6y2021/7029

5. Crossfilter.js, dc.js и D3.js для визуализации Данных // habr.com habr.com/ru/post/189838/.

6. Data-Driven Documents // d3js.org/. URL: d3js.org.

7. Чекулаев А.А., Глод О.Д. Разработка веб-приложения с использованием Spring Framework и jQuery // Инженерный вестник Дона, 2018, № 4. URL: ivdon.ru/uploads/article/pdf/IVD_305_Glod. pdf_9613ed584d.pdf.

8. API Reference, Crossfilter // github.com. URL: github.com/square/crossfilter/wiki/API-Reference.

9. dc.js getting started and how-to guide // dc-js.github.io URL: dc-js.github.io/dc.js/docs/stock.html dc.js getting started and how-to guide.

10. DC.js - Pie Chart // tutorialspoint.com. URL: tutorialspoint .com/dcjs/dcjs_pie_chart.htm.

References

1. Proshhaeva A.A., Sinelobova S.V. Inzhenernyj vestnik Dona, 2017, № 4. URL: ivdon.ru/uploads/article/pdf/IVD_130_proshchaeva_sinelobova.pdf_75c41b8172.p df.

2. Dimensional Charting Javascript Library. dc-js.github.io. URL: dc-js.github.io/dc.js/.

3. Crossfilter. Crossfilter.github.io. URL: crossfilter.github.io/ crossfilter/.

4. Fast Multidimensional Filtering for Coordinated Views. Square.github.io. URL: square.github.io/crossfilter/.

5. Crossfilter.js, dc.js и D3.js dlja vizualizacii Dannyh. habr.com habr.com/ru/post/189838/.

6. Data-Driven Documents. d3js.org/. URL: d3js.org.

М Инженерный вестник Дона, №6 (2021) ivdon.ru/ru/magazine/arcliive/n6y2021/7029

7. Chekulaev A.A., Glod O.D. Inzhenernyj vestnik Dona, 2018, № 4. URL: ivdon.ru/uploads/article/pdf/IVD_305_Glod. pdf_9613ed584d.pdf.

8. API Reference, Crossfilter. Github.com. URL: github.com/square/crossfilter/wiki/API-Reference.

9. Dc.js getting started and how-to guide. Dc-js.github.io URL: dc-js.github.io/dc.js/docs/stock.html dc.js getting started and how-to guide.

10. DC.js Pie Chart. Tutorialspoint.com. URL: tutorialspoint.com/dcjs/dcjs_pie_chart.htm.

i Надоели баннеры? Вы всегда можете отключить рекламу.