boxplot() в R: как сделать BoxГрафики в RStudio [Примеры]
boxplot() в R
boxplot() в R помогает визуализировать распределение данных по квартилям и обнаружить наличие выбросов. Вы можете использовать геометрический объект geom_boxplot() из библиотеки ggplot2, чтобы нарисовать boxplot() в R.
Мы будем использовать набор данных о качестве воздуха, чтобы представить boxplot() в R с помощью ggplot. Этот набор данных измеряет качество воздуха в Нью-Йорке с мая по сентябрь 1973 года. Набор данных содержит 154 наблюдения. Мы будем использовать следующие переменные:
- Озон: числовая переменная
- Ветер: числовая переменная
- Месяц: с мая по сентябрь. Числовая переменная
Создавай Box Участок
Прежде чем вы начнете создавать свой первый boxplot() в R, вам необходимо манипулировать данными следующим образом:
- Шаг 1. Импортируйте данные
- Шаг 2. Удалите ненужные переменные
- Шаг 3. Преобразование месяца на уровне фактора
- Шаг 4. Создайте новую категориальную переменную, разделяющую месяц на три уровня: начало, середину и конец.
- Шаг 5. Удалите недостающие наблюдения
Все эти шаги выполняются с помощью dplyr и оператора конвейера %>%.
library(dplyr)
library(ggplot2)
# Step 1
data_air <- airquality % > %
#Step 2
select(-c(Solar.R, Temp)) % > %
#Step 3
mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")),
#Step 4
day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Хорошей практикой является проверка структуры данных с помощью функции проблеск().
glimpse(data_air)
Вывод:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
В наборе данных есть NA. Удалить их разумно.
# Step 5 data_air_nona <-data_air %>% na.omit()
Базовый сюжет
Давайте построим базовую диаграмму R boxplot() с распределением озона по месяцам.
# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
geom_boxplot()
Код Пояснение
- Сохраните график для дальнейшего использования
- box_plot: вы сохраняете график в переменной box_plot. Это полезно для дальнейшего использования или позволяет избежать слишком сложной строки кода.
- Добавьте геометрический объект R boxplot().
- Вы передаете набор данных data_air_nona в ggplot boxplot.
- Внутри аргумента aes() вы добавляете оси X и Y.
- Знак + означает, что вы хотите, чтобы R продолжал читать код. Это делает код более читабельным, если его взломать.
- Используйте geom_boxplot() для создания коробчатой диаграммы.
Вывод:
Изменить сторону графика
Вы можете перевернуть сторону графика.
box_plot + geom_boxplot()+ coord_flip()
Код Пояснение
- box_plot: вы используете сохраненный график. Это позволяет избежать переписывания всех кодов каждый раз, когда вы добавляете новую информацию в график.
- geom_boxplot(): создание коробчатых диаграмм() в R
- coord_flip(): перевернуть сторону графика.
Вывод:
Изменить цвет выброса
Вы можете изменить цвет, форму и размер выбросов.
box_plot +
geom_boxplot(outlier.colour = "red",
outlier.shape = 2,
outlier.size = 3) +
theme_classic()
Код Пояснение
- outlier.colour="red": Управляет цветом выбросов.
- outlier.shape=2: изменить форму выброса. 2 относится к треугольнику
- outlier.size=3: изменить размер треугольника. Размер пропорционален количеству.
Вывод:
Добавить сводную статистику
Вы можете добавить сводную статистику в R boxplot().
box_plot +
geom_boxplot() +
stat_summary(fun.y = mean,
geom = "point",
size = 3,
color = "steelblue") +
theme_classic()
Код Пояснение
- stat_summary() позволяет добавлять сводку к горизонтальной диаграмме R.
- Аргумент fun.y управляет возвращаемой статистикой. Вы будете использовать среднее значение
- Примечание. Доступны и другие статистические данные, такие как минимум и максимум. На одном графике может отображаться более одной статистики.
- geom = «точка»: постройте среднее значение с точкой.
- size=3: Размер точки
- color =”steelblue”: Цвет точек.
Вывод:
Box График с точками
На следующей горизонтальной диаграмме R вы добавляете слои точечной диаграммы. Каждая точка представляет наблюдение.
box_plot +
geom_boxplot() +
geom_dotplot(binaxis = 'y',
dotsize = 1,
stackdir = 'center') +
theme_classic()
Код Пояснение
- geom_dotplot() позволяет добавлять точки к ширине ячейки.
- binaxis='y': Измените положение точек вдоль оси Y. По умолчанию ось X
- dotsize=1: Размер точек.
- stackdir='center': Способ расположения точек: Четыре значения:
- «вверх» (по умолчанию),
- "вниз"
- "центр"
- «центральное целое»
Вывод:
Контролируйте эстетику Box Участок
Изменить цвет коробки
Вы можете изменить цвета группы.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
geom_boxplot() +
theme_classic()
Код Пояснение
- Цвета групп управляются сопоставлением aes(). Вы можете использовать color= Month, чтобы изменить цвет прямоугольника и графика в зависимости от месяца.
Вывод:
Box сюжет с несколькими группами
Также возможно добавить несколько групп. Вы можете визуализировать разницу в качестве воздуха в зависимости от дня измерения.
ggplot(data_air_nona, aes(Month, Ozone)) +
geom_boxplot(aes(fill = day_cat)) +
theme_classic()
Код Пояснение
- Отображение aes() геометрического объекта управляет отображаемыми группами (эта переменная должна быть фактором)
- aes(fill= day_cat) позволяет создать три поля для каждого месяца по оси X.
Вывод:
Box График с дрожащими точками
Другой способ показать точку — это дрожание точек. Это удобный способ визуализации точек с помощью коробчатой диаграммы для категориальных данных в переменной R.
Этот метод позволяет избежать перекрытия дискретных данных.
box_plot +
geom_boxplot() +
geom_jitter(shape = 15,
color = "steelblue",
position = position_jitter(width = 0.21)) +
theme_classic()
Код Пояснение
- geom_jitter() добавляет небольшое затухание к каждой точке.
- shape=15 изменяет форму точек. 15 представляет квадраты
- color = «steelblue»: изменить цвет точки.
- Position=position_jitter(width = 0.21): Способ размещения перекрывающихся точек. Position_jitter(width = 0.21) означает, что вы перемещаете точки на 20 процентов от оси X. По умолчанию 40 процентов.
Вывод:
Вы можете увидеть разницу между первым графиком с методом джиттера и вторым с точечным методом.
box_plot +
geom_boxplot() +
geom_point(shape = 5,
color = "steelblue") +
theme_classic()
зазубренный Box Участок
Интересной особенностью geom_boxplot() является функция коробчатой диаграммы с надрезом в R. График с надрезом сужает рамку вокруг медианы. Основная цель диаграммы с надрезом — сравнить значимость медианы между группами. Имеются убедительные доказательства того, что две группы имеют разные медианы, когда отметки не перекрываются. Вырез рассчитывается следующим образом:
с – интерквартиль и количество наблюдений.
box_plot +
geom_boxplot(notch = TRUE) +
theme_classic()
Код Пояснение
- geom_boxplot(notch=TRUE): создать горизонтальную коробчатую диаграмму с надрезом R.
Вывод:
Резюме
Мы можем суммировать различные типы горизонтальной коробчатой диаграммы R в таблице ниже:
| Цель | Code |
|---|---|
| Базовый сюжет |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
| перевернуть сторону |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
| Сюжет с надрезом |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
| Box сюжет с трясущимися точками |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
Также проверьте: - Учебное пособие по R для начинающих: изучение языка программирования R











