Тип работы:
Предмет:
Язык работы:


Создание Kotlin API для Grammar of graphics

Работа №142502

Тип работы

Бакалаврская работа

Предмет

прикладная информатика

Объем работы38
Год сдачи2022
Стоимость4650 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
28
Не подходит работа?

Узнай цену на написание


Введение 4
Постановка задачи 5
Обзор литературы 7
1. Визуализация данных. Структура графика 9
1.1. Модель данных 9
1.2. Визуальная структура графика 10
1.2.1 Компоненты графика 10
1.2.2 Визуализация и чтение графика 10
1.3. Процесс визуализации 12
2. Промежуточное представление графика 14
2.1. Данные 14
2.2. Скейлы 14
2.2.1 Гиды 16
2.3. Эстетические атрибуты 16
2.4. Связывание 17
2.5. Слой 18
2.6. Особенности 19
2.7. График 19
2.8. Схема промежуточного представления 19
3. Предметно-ориентированный язык 22
3.1. Контексты 22
3.1.1 Базовый контекст 22
3.1.2 Контекст графика 22
3.1.3 Контекст слоя 23
3.2. Данные 23
3.3. Скейлы 23
3.4. Связывание 25
3.5. Добавление особенностей 26
3.6. Схема предметно-ориентированного языка 26
4. Трансляторы и особенности движков 27
4.1. Lets-Plot 27
4.1.1 Особенности 27
4.1.2 Транслятор 29
4.2. ECharts 29
4.2.1 Особенности 29
4.2.2 Транслятор 31
5. Технические детали и аналоги 32
5.1. Интеграции 32
5.1.1 Kotlin Jupyter Kernel 32
5.1.2 Kotlin Dataframe 32
5.2. Тестирование 33
5.3. Используемые технологии 33
5.4. Сравнение с аналогами 34
Заключение 36
Список литературы 37

Grammar of graphics — это грамматика для задания графиков, описан­ная Леландом Уилкинсоном в одноименной работе [1]. На основе этой работы была создана библиотека ggplot2 [2] [3] для построения графиков на языке программирования R [4]. В ней для описания графиков используется синтак­сис, вдохновленный грамматикой Уилкинсона. На основе библиотеки ggplot2 в компании JetBrains была разработана библиотека Lets-Plot [5] для языка программирования Kotlin [6]. Однако API для построения графика был взят почти напрямую из ggplot2, и унаследовал его существенные недостатки — отсутствие типизации и типа безопасности, проблемы со структурой (такие как отсутствие иерархии элементов графика, разделение взаимосвязанных элементов графика). Он не задействует средства Kotlin для создания идиома­тичного синтаксиса, — например, внешних контекстов с получателями.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе работы была разработаны предметно-ориентированный язык для построения графиков, который эффективно использует средства языка для достижения выразительности, читаемости и удобства. Он разработан таким образом, что в него можно вставлять особенности, зависящие от движка ви­зуализации.
Разработанное промежуточное представление графика позволяет эф­фективно использовать один и тот же код для построения графика для визуа­лизации в различных движках рендеринга. Благодаря простоте и универсаль­ности, трансляции осуществляться во многие движки и несложно реализует­ся.
Реализованные трансляторы позволяют использовать разработанный язык для построения графиков и визуализировать их с помощью движков Lets-Plot и Apache Echarts.
Реализованные интеграции позволяют работать с важнейшими элемен­тами экосистемы Kotlin for Data Science.
В результате работы все поставленные задачи были выполнены.
Разработанная библиотека в ближайшем будущем будет опубликована как часть официальных библиотек для языка Kotlin — kotlinx.
Весь код разработанного программного обеспечения доступен в пуб­личных репозиториях на платформе GitHub:
• https://github.com/AndreiKingsley/ggdsl
• https://github.com/AndreiKingsley/ggdsl-lets-plot
• https://github.com/AndreiKingsley/ggdsl-echarts
• https://github.com/AndreiKingsley/ggdsl-dataframe


[1] L. Wilkinson: The Grammar of Graphics, Springer, 1999. ISBN 0-387-98774­
6.
[2] Документация ggplot2. URL: https://ggplot2.tidyverse.org/
index.html
[3] H. Wickham, D. Navarro, T. L. Pedersen: ggplot2: elegant graphics for data analysis. URL: https://ggplot2-book.org
[4] Язык программирования R. URL: https://www.r-project.org
[5] Библиотека Lets-Plot. URL: https://github.com/JetBrains/lets- plot-kotlin
[6] Язык программирования Kotlin. URL: https://kotlinlang.org
[7] Библиотека Apache ECharts. URL: https://echarts.apache.org/en/ index.html
[8] Язык программирования JavaScript. URL: https://
developer.mozilla.org/en-US/docs/Web/JavaScript
[9] Kotlin Jupyter Kernel. URL: https://github.com/Kotlin/kotlin- jupyter
[10] Jupyter Notebook. URL: https://jupyter.org
[11] Библиотека Kotlin Dataframe. URL: https://github.com/Kotlin/ dataframe
[12] The official U.S. government source for fuel economy information. URL: https://fueleconomy.gov
[13] A. Nozik: An introduction to context-oriented programming in Kotlin. URL: https://proandroiddev.com/an-introduction-context- oriented-programming-in-kotlin-2e79d316b0a2
[14] Система сборки Gradle. URL: https://gradle.org
[15] Библиотека Kotlin Test. URL: https://kotlinlang.org/api/latest/ kotlin.test/
[16] Библиотека kravis. URL: https://github.com/holgerbrandl/kravis
[17] Библиотека plotly.kt. URL: https://github.com/mipt-npm/plotly.kt
[18] Библиотека plotly. URL: https://plotly.com


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ