ggplot2 — пакет для статистического языка программирования R, реализующий концепцию «грамматики графики» (Grammar of Graphics). Он предоставляет декларативный подход к созданию визуализаций: графика строится как композиция данных, эстетических отображений, геометрических объектов (геомов), статистических преобразований, шкал и фасетов. Такой подход позволяет отделить логику представления данных от низкоуровневых деталей рендеринга и способствует воспроизводимости и гибкости при построении качественных графиков.
Изначально разработанный для среды R, ggplot2 стал одним из наиболее широко используемых инструментов визуализации в аналитике и научных исследованиях благодаря выразительной семантике, расширяемой архитектуре и обширному набору предустановленных геомов и тем. Пакет поддерживает создание широкого спектра графиков — от простых диаграмм рассеяния и гистограмм до сложных многослойных визуализаций с фасетированием, наложением статистических суммарных отображений и пользовательскими шкалами.
- Декларативная модель: график задаётся как объект, полученный в результате комбинирования данных, эстетик и геомов с помощью оператора добавления, что упрощает модульное построение визуализаций.
 - Геомы (geom_*): набор предопределённых геометрических объектов для представления данных, включая точки, линии, столбцы, области и текст.
 - Эстетики (aes): отображение переменных данных на визуальные свойства элементов — координаты, цвет, размер, форма, прозрачность и др.
 - Статистические слои (stat_*): встроенные преобразования и агрегирования данных, такие как сглаживание, подсчёт плотности или суммарные показатели, применяемые как слой над данными.
 - Шкалы и легенды: гибкое управление отображением цветовых палитр, границ осей, форматов меток и легенд для улучшения интерпретируемости графиков.
 - Координатные системы: поддержка различных систем координат (обычная декартова, полярная и др.) и возможность их комбинирования с геомами.
 - Фасетирование: механизм разбивки данных на подграфики по значениям одной или нескольких переменных для компактного сравнения групп.
 - Темы оформления (theme): настройка элементов оформления — шрифтов, фона, сетки и отступов — с возможностью создания собственных тем для единообразного стиля.
 - Расширяемость: архитектура пакета позволяет добавлять пользовательские геомы, статистики и расширения, интегрируемые с существующим API.
 - Интеграция с экосистемой R: совместимость с типичными форматами данных в R, возможностями пакетного оформления и экспортом графики в разнообразные форматы для публикации.