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(), за да създадете квадратна графика

Изход:

Basic Box парцел

Променете страната на графиката

Можете да обърнете страната на графиката.

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 Парцел с точки

Контрол Естетика на Box парцел

Променете цвета на кутията

Можете да промените цветовете на групата.

ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
    geom_boxplot() +
    theme_classic()

Обяснение на кода

  • Цветовете на групите се контролират в картографирането на aes(). Можете да използвате color= Month, за да промените цвета на полето и диаграмата на мустаците според месеците

Изход:

Промяна на цвета на Box

Box парцел с множество групи

Също така е възможно да добавите множество групи. Можете да визуализирате разликата в качеството на въздуха според деня на измерването.

ggplot(data_air_nona, aes(Month, Ozone)) +
    geom_boxplot(aes(fill = day_cat)) +
    theme_classic()

Обяснение на кода

  • Aes() картографирането на геометричния обект контролира групите за показване (тази променлива трябва да бъде фактор)
  • aes(fill= day_cat) позволява създаване на три полета за всеки месец по оста x

Изход:

Box Парцел с множество групи

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 Графиране с трептящи точки

Можете да видите разликата между първата графика с метода на трептене и втората с точковия метод.

box_plot +
    geom_boxplot() +
    geom_point(shape = 5,
        color = "steelblue") +
    theme_classic()

Box Графиране с трептящи точки

назъбен Box парцел

Интересна характеристика на geom_boxplot() е функцията boxplot с вдлъбнатини в R. Графиката с вдлъбнатини стеснява полето около медианата. Основната цел на диаграмата с назъбена кутия е да се сравни значимостта на медианата между групите. Има убедителни доказателства, че две групи имат различни медиани, когато прорезите не се припокриват. Прорезът се изчислява, както следва:

назъбен Box парцел

с е интерквартилът и броят на наблюденията.

box_plot +
    geom_boxplot(notch = TRUE) +
    theme_classic()

Обяснение на кода

  • geom_boxplot(notch=TRUE): Създайте назъбена хоризонтална кутия R

Изход:

назъбен Box парцел

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

Обобщете тази публикация с: