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().
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(): Създайте boxplots() в 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() позволява добавяне на обобщение към хоризонталния boxplot R
- Аргументът fun.y контролира върнатите статистики. Ще използвате средно
- Забележка: Налични са други статистически данни като мин. и макс. В една и съща графика могат да бъдат показани повече от една статистика
- geom = „точка“: Начертайте средната стойност с точка
- size=3: Размер на точката
- color =”steelblue”: Цвят на точките
Изход:
Box Парцел с точки
В следващия хоризонтален boxplot 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 Графиране с трептящи точки
Друг начин за показване на точката е с трептящи точки. Това е удобен начин за визуализиране на точки с boxplot за категорични данни в 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() е функцията boxplot с вдлъбнатини в R. Графиката с вдлъбнатини стеснява полето около медианата. Основната цел на диаграмата с назъбена кутия е да се сравни значимостта на медианата между групите. Има убедителни доказателства, че две групи имат различни медиани, когато прорезите не се припокриват. Прорезът се изчислява, както следва:
с е интерквартилът и броят на наблюденията.
box_plot +
geom_boxplot(notch = TRUE) +
theme_classic()
Обяснение на кода
- geom_boxplot(notch=TRUE): Създайте назъбена хоризонтална кутия R
Изход:
Oбобщение
Можем да обобщим различните типове хоризонтален boxplot R в таблицата по-долу:
| Цел | код |
|---|---|
| Основна кутия |
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











