Перейти к основному содержимому
Модуль 5 · Урок 1 из 29/10 в курсе~12 min
Уроки модуля (1/2)

Грамматика и базовые геометрии

В визуализации данных в R преобладает ggplot2, пакет, основанный на «Грамматике графики». Эта теория разбивает графы на независимые семантические компоненты, такие как данные, эстетические отображения и геометрические элементы.


Структура ggplot2

Каждый график, созданный с помощью ggplot2, начинается с вызова функции ggplot(), где мы предоставляем фрейм данных и определяем, как столбцы сопоставляются с визуальными свойствами, используя функцию aes() (эстетика).

Далее мы добавляем геометрические слои с помощью оператора + (примечание: в ggplot2 мы используем +, а не %>%).

Базовый шаблон:

R
ggplot(data = <DATA_FRAME>, mapping = aes(<AESTHETICS>)) +
  <GEOMETRY>()

Эстетические отображения (aes) и геометрии (geom_*)

Функция aes() определяет, какие переменные в ваших данных управляют визуальными атрибутами графика:

  • x: положение по горизонтальной оси.
  • y: положение по вертикальной оси.
  • color: цвет точек или линий.
  • fill: цвет заливки замкнутых фигур (например, столбцов).
  • size: Размер элементов.

Геометрии (geom_) определяют тип визуального представления:

1. Диаграмма рассеяния (geom_point())

Идеально подходит для отображения связи между двумя числовыми переменными.

R
ggplot(df, aes(x = age, y = income)) +
  geom_point()

2. Линейный график (geom_line())

Обычно используется для временных рядов или линий тренда.

R
ggplot(df, aes(x = year, y = sales)) +
  geom_line()

3. Гистограмма (geom_bar() и geom_col())

По умолчанию geom_bar() подсчитывает частоту категорий, а geom_col() представляет фактические значения, хранящиеся непосредственно в столбце y.

R
# Plots the value of the 'sales' column for each 'category'
ggplot(df, aes(x = category, y = sales)) +
  geom_col()

Попробуйте сами

Упражнение 1. Создайте базовую диаграмму рассеяния

Упражнение#r.m5.l1.e1
Попыток: 0Загрузка…

Создайте точечную диаграмму, используя фрейм данных df. Сопоставьте столбец высоты с осью X, а столбец веса с осью Y. Используйте geom_point().

Загрузка редактора…
Показать подсказку

Использование ggplot(df, aes(x = высота, y = вес)) + geom_point()

Решение доступно после 3 попыток

Упражнение 2. Добавление цвета на основе данных

Упражнение#r.m5.l1.e2
Попыток: 0Загрузка…

Измените предыдущий график, сопоставив свойство цвета со столбцом пола внутри aes(), чтобы раскрасить точки по полу.

Загрузка редактора…
Показать подсказку

Включает цвет = пол во всех внутренних функциях aes(), например: aes(x = рост, y = вес, цвет = пол).

Решение доступно после 3 попыток

Упражнение 3: Линейный график

Упражнение#r.m5.l1.e3
Попыток: 0Загрузка…

Создайте линейный график, используя df. Сопоставьте столбец года с осью X, а столбец продаж с осью Y. Добавьте геометрический слой geom_line().

Загрузка редактора…
Показать подсказку

США ggplot(df, aes(x = год, y = продажи)) + geom_line()

Решение доступно после 3 попыток

Упражнение 4. Гистограмма с geom_col

Упражнение#r.m5.l1.e4
Попыток: 0Загрузка…

Создайте гистограмму для непосредственного отображения значений. Сопоставьте столбец категории с осью X, а столбец значений с осью Y. Используйте геометрию geom_col().

Загрузка редактора…
Показать подсказку

США ggplot(df, aes(x = категория, y = значение)) + geom_col()

Решение доступно после 3 попыток

Упражнение 5. Объединение нескольких геометрий

Упражнение#r.m5.l1.e5
Попыток: 0Загрузка…

В ggplot2 вы можете складывать несколько геометрических слоев. Создайте график, сочетающий в себе функции geom_point() и geom_smooth(), сопоставляющий x_val с осью x и y_val с осью y.

Загрузка редактора…
Показать подсказку

Добавляйте geom_point() и geom_smooth() отдельно от значения '+'.

Решение доступно после 3 попыток