Гістограма є чудовим способом відображення категоріальних змінних по осі х. Цей тип графіків позначає два аспекти на осі y.
- Перший підраховує кількість випадків між групами.
- Другий показує зведену статистику (хв, макс, середнє і так далі) змінної на осі y.
Ви будете використовувати набір даних mtcars із такими змінними:
- cyl: номер циліндра в машині. Числова змінна
- am: Тип передачі. 0 для автоматичного та 1 для ручного. Числова змінна
- mpg: миль на галон. Числова змінна
У цьому підручнику ви дізнаєтесь
- Як створити гістограму
- Змініть колір брусків
- Змініть інтенсивність
- Колір за групами
- Додайте групу в барах
- Гістограма у відсотках
- Поруч з бічними гратами
- Гістограма
Як створити гістограму
Щоб створити графік у R, ви можете використовувати бібліотеку ggplot, яка створює готові до публікації графіки. Основним синтаксисом цієї бібліотеки є:
ggplot(data, mapping = aes()) +geometric objectarguments:data: dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
У цьому посібнику вас цікавить геометричний об’єкт geom_bar (), який створює гістограму.
Гістограма: кол
Ваш перший графік показує частоту циліндра з geom_bar (). Наведений нижче код є найпростішим синтаксисом.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Пояснення коду
- Ви передаєте набір даних mtcars ggplot.
- Усередині аргументу aes () ви додаєте вісь x як факторну змінну (cyl)
- Знак + означає, що ви хочете, щоб R продовжував читати код. Це робить код більш читабельним, розбиваючи його.
- Використовуйте geom_bar () для геометричного об'єкта.
Вихід:
Примітка : обов’язково перетворіть змінні у коефіцієнт, інакше R обробляє змінні як числові. Дивіться приклад нижче.
Налаштуйте графік
Для налаштування графіка можна передати чотири аргументи:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar
Змініть колір брусків
Ви можете змінити колір брусків. Зауважте, що кольори смужок однакові.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Пояснення коду
- Кольори смуг контролюються відображенням aes () всередині геометричного об'єкта (тобто не в ggplot ()). Ви можете змінити колір за допомогою аргументів заливки. Тут ви вибираєте кораловий колір.
Вихід:
Ви можете використовувати цей код:
grDevices::colors()
щоб побачити всі кольори, доступні в R. Існує близько 650 кольорів.
Змініть інтенсивність
Ви можете збільшити або зменшити інтенсивність кольору смужок
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Пояснення коду
- Щоб збільшити / зменшити інтенсивність смуги, ви можете змінити значення альфа. Великий альфа збільшує інтенсивність, а низький альфа зменшує інтенсивність. альфа коливається від 0 до 1. Якщо 1, то колір такий самий, як і палітра. Якщо 0, колір білий. Ви вибираєте альфа = 0,1.
Вихід:
Колір за групами
Ви можете змінити кольори смужок, тобто для кожної групи один колір. Наприклад, циліндрична змінна має три рівні, тоді ви можете побудувати гістограму з трьома кольорами.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Пояснення коду
- Аргумент заливки всередині aes () дозволяє змінювати колір смуги. Ви змінюєте колір, встановлюючи змінну fill = ось x. У вашому прикладі змінна осі х є cyl; заповнення = коефіцієнт (циліндр)
Вихід:
Додайте групу в барах
Ви можете далі розділити вісь y на основі іншого рівня фактора. Наприклад, ви можете підрахувати кількість автоматичної та ручної передач залежно від типу циліндра.
Ви будете діяти наступним чином:
- Крок 1: Створіть фрейм даних за допомогою набору даних mtcars
- Крок 2: Позначте змінну am автоматичною для автоматичної коробки передач та man для ручної коробки передач. Перетворіть am і cyl як коефіцієнт, щоб вам не потрібно було використовувати factor () у функції ggplot ().
- Крок 3: Побудуйте графік гістограми, щоб підрахувати кількість передач за циліндром
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
У вас є готовий набір даних, ви можете побудувати графік;
# Крок 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Пояснення коду
- Ggpplot () містить дані набору даних та aes ().
- В aes () ви включаєте змінну вісь x і яку змінну потрібно заповнити стовпчик (тобто am)
- geom_bar (): Створення гістограми
Вихід:
Зіставлення заповнить панель двома кольорами, по одному для кожного рівня. Змінити групу легко, вибравши інші змінні фактору в наборі даних.
Гістограма у відсотках
Ви можете візуалізувати смужку у відсотках замість кількості необроблених матеріалів.
# Гістограма у відсотках
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Пояснення коду
- Використовуйте position = "fill" в аргументі geom_bar (), щоб створити графіку із відсотком на осі y.
Вихід:
Поруч з бічними гратами
Легко побудувати гістограму зі змінною групи поруч.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Пояснення коду
- position = position_dodge (): Явно розповідає, як розташувати смуги
Вихід:
Гістограма
У другій частині підручника з гістограмою ви можете представити групу змінних зі значеннями на осі y.
Ваша мета - створити графік із середньою милею на галон для кожного типу циліндрів. Щоб намалювати інформативний графік, виконайте такі дії:
- Крок 1: Створіть нову змінну із середньою милею на галон за циліндром
- Крок 2: Створіть базову гістограму
- Крок 3: Змініть орієнтацію
- Крок 4: Змініть колір
- Крок 5: Змініть розмір
- Крок 6: Додайте мітки на графік
Крок 1) Створіть нову змінну
Ви створюєте фрейм даних з назвою data_histogram, який просто повертає середню кількість миль на галон за кількістю циліндрів у машині. Ви викликаєте цю нову змінну mean_mpg і округляєте середнє значення двома десятковими числами.
# Крок 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Крок 2) Створіть базову гістограму
Ви можете побудувати гістограму. Він не готовий до спілкування, щоб бути доставленим клієнту, але дає нам інтуїцію щодо тенденції.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Пояснення коду
- Тепер aes () має дві змінні. Змінна "циліндр" відноситься до осі x, а середнє_mpg - осі y.
- Вам потрібно передати аргумент stat = "identity", щоб вказати змінну на осі y як числове значення. geom_bar використовує stat = "bin" як значення за замовчуванням.
Вихід:
Крок 3) Змініть орієнтацію
Ви змінюєте орієнтацію графіку з вертикальної на горизонтальну.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Пояснення коду
- Ви можете керувати орієнтацією графіку за допомогоюordord_flip ().
Вихід:
Крок 4) Змініть колір
Ви можете диференціювати кольори смуг відповідно до рівня фактора змінної осі х.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Пояснення коду
- Ви можете побудувати графік по групах із відображенням fill = cyl. R автоматично дбає про кольори на основі рівнів циліндричної змінної
Вихід:
Крок 5) Змініть розмір
Щоб графік виглядав красивішим, ви зменшуєте ширину смуги.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Пояснення коду
- Аргумент width всередині geom_bar () контролює розмір смуги. Більше значення збільшує ширину.
- Зверніть увагу, ви зберігаєте графік у графі змінних. Ви робите це, оскільки наступний крок не змінить код графіку змінних. Це покращує читабельність коду.
Вихід:
Крок 6) Додайте мітки до графіка
Останній крок полягає у додаванні значення змінної mean_mpg у мітку.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Пояснення коду
- Функція geom_text () корисна для управління естетикою тексту.
- label =: Додайте мітку всередину смужок
- mean_mpg: Використовуйте змінну mean_mpg для мітки
- hjust контролює розташування ярлика. Значення, закриті до 1, відображають мітку у верхній частині панелі, а більші значення підносять мітку до нижньої частини. Якщо орієнтація графіка вертикальна, змініть hjust на vjust.
- color = "white": зміна кольору тексту. Тут ви використовуєте білий колір.
- size = 3: Встановіть розмір тексту.
Вихід:
Резюме
Гістограма є корисною, коли вісь х є категоріальною змінною. Вісь y може бути або підрахунком, або зведеною статистикою. У наведеній нижче таблиці викладено, як керувати гістограмою за допомогою ggplot2:
Об’єктивна |
код |
---|---|
Рахувати |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Граф із різним кольором заливки |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Рахувати групами, складеними |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Рахувати групами, поруч |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Підрахувати за групами, складеними у% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Цінності |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |