Гістограма та гістограма в R (з прикладом)
Гістограма — чудовий спосіб відображення категоріальних змінних на осі абсцис. Цей тип графіка позначає два аспекти на осі y.
- Перший підраховує кількість випадків між групами.
- Другий показує підсумкову статистику (мін., макс., середнє тощо) змінної на осі y.
Ви використовуватимете набір даних mtcars із такими змінними:
- cyl: номер циліндра в автомобілі. Числова змінна
- am: Тип трансмісії. 0 для автоматичного і 1 для ручного. Числова змінна
- mpg: Милі на галон. Числова змінна
Як створити гістограму
Щоб створити графік у R, ви можете використовувати бібліотеку ggplot, яка створює готові до публікації графіки. Основний синтаксис цієї бібліотеки:
ggplot(data, mapping = aes()) + geometric object arguments: data: dataset used to plot the graph mapping: Control the x and y-axis geometric 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 chart ggplot(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 bars ggplot(mtcars, aes(x = factor(cyl))) + geom_bar(fill = "coral") + theme_classic()
Пояснення коду
- Кольори смужок контролюються відображенням aes() всередині геометричного об’єкта (тобто не в ggplot()). Ви можете змінити колір за допомогою аргументів заповнення. Тут ви вибираєте кораловий колір.
вихід:
Ви можете використовувати цей код:
grDevices::colors()
щоб побачити всі кольори, доступні в R. Існує близько 650 кольорів.
Змініть інтенсивність
Ви можете збільшити або зменшити інтенсивність кольору смуг
# Change intensity ggplot(mtcars, aes(factor(cyl))) + geom_bar(fill = "coral", alpha = 0.5) + theme_classic()
Пояснення коду
- Щоб збільшити/зменшити інтенсивність смуги, ви можете змінити значення альфа. Велика альфа збільшує інтенсивність, а низька альфа зменшує інтенсивність. альфа коливається від 0 до 1. Якщо 1, то колір збігається з палітрою. Якщо 0, колір білий. Ви обираєте альфа = 0.1.
вихід:
Розфарбуй по групах
Ви можете змінювати кольори смужок, тобто один інший колір для кожної групи. Наприклад, змінна cyl має три рівні, тоді ви можете побудувати гістограму трьома кольорами.
# Color by group ggplot(mtcars, aes(factor(cyl), fill = factor(cyl))) + geom_bar()
Пояснення коду
- Аргумент fill всередині aes() дозволяє змінювати колір панелі. Ви змінюєте колір, встановлюючи fill = x-axis variable. У вашому прикладі змінна осі x є циліндром; fill = фактор (cyl)
вихід:
Додайте групу в барах
Ви можете додатково розділити вісь y на основі іншого рівня факторів. Наприклад, ви можете порахувати кількість автоматичних і механічних коробок передач залежно від типу циліндра.
Ви будете діяти наступним чином:
- Крок 1: Створіть фрейм даних із набором даних mtcars
- Крок 2. Позначте змінну am auto для автоматичної трансмісії та man для ручної трансмісії. Перетворіть am і cyl як коефіцієнт, щоб вам не потрібно було використовувати factor() у функції ggplot().
- Крок 3: побудуйте гістограму, щоб підрахувати кількість передач циліндрами
library(dplyr) # Step 1 data <- mtcars % > % #Step 2 mutate(am = factor(am, labels = c("auto", "man")), cyl = factor(cyl))
У вас готовий набір даних, ви можете побудувати графік;
# Крок 3
ggplot(data, aes(x = cyl, fill = am)) + geom_bar() + theme_classic()
Пояснення коду
- Gggplot() містить дані набору даних і 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 side ggplot(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() має дві змінні. Змінна cyl відноситься до осі x, а mean_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()
Пояснення коду
- Ви можете контролювати орієнтацію графіка за допомогою coord_flip().
вихід:
Крок 4) Змінити колір
Ви можете диференціювати кольори смужок відповідно до рівня фактора змінної осі X.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity") + coord_flip() + theme_classic()
Пояснення коду
- Ви можете побудувати графік за групами за допомогою відображення fill=cyl. R автоматично піклується про кольори на основі рівнів змінної cyl
вихід:
Крок 5) Змінити розмір
Щоб графік виглядав красивіше, ви зменшуєте ширину стовпчика.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) + geom_bar(stat = "identity", width = 0.5) + coord_flip() + theme_classic()
Пояснення коду
- Аргумент ширини в 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") |