Гистограмма - отличный способ отобразить категориальные переменные на оси x. Этот тип графика обозначает два аспекта по оси ординат.
- Первый подсчитывает количество встреч между группами.
- Второй показывает сводную статистику (минимум, максимум, среднее значение и т. Д.) Переменной по оси ординат.
Вы будете использовать набор данных mtcars со следующими переменными:
- цилиндр: Номер цилиндра в автомобиле. Числовая переменная
- am: Тип трансмиссии. 0 для автоматического и 1 для ручного. Числовая переменная
- миль на галлон: миль на галлон. Числовая переменная
В этом руководстве вы узнаете
- Как создать гистограмму
- Измените цвет полос
- Измените интенсивность
- Цвет по группам
- Добавить группу в бары
- Гистограмма в процентах
- Боковые панели
- Гистограмма
Как создать гистограмму
Чтобы создать график в 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 как факторную переменную (цил)
- Знак + означает, что вы хотите, чтобы 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.
Выход:
Цвет по группам
Вы можете изменить цвет полосок, что означает один разный цвет для каждой группы. Например, переменная cyl имеет три уровня, тогда вы можете построить столбчатую диаграмму с тремя цветами.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Код Пояснение
- Аргумент fill внутри aes () позволяет изменить цвет полосы. Вы можете изменить цвет, установив переменную fill = оси x. В вашем примере переменная оси x - cyl; заполнение = коэффициент (цил.)
Выход:
Добавить группу в бары
Вы можете дополнительно разделить ось Y на основе другого уровня фактора. Например, вы можете подсчитать количество автоматических и механических коробок передач в зависимости от типа цилиндра.
Вы поступите следующим образом:
- Шаг 1. Создайте фрейм данных с набором данных mtcars
- Шаг 2: Обозначьте переменную am с помощью auto для автоматической коробки передач и 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 () есть две переменные. Переменная 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()
Код Пояснение
- Вы можете контролировать ориентацию графика с помощью corre_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 автоматически заботится о цветах на основе уровней переменной цил.
Выход:
Шаг 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 () управляет размером панели. Чем больше значение, тем больше ширина.
- Обратите внимание: вы сохраняете график в переменной graph. Вы делаете это, потому что следующий шаг не изменит код графа переменных. Это улучшает читаемость кода.
Выход:
Шаг 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: установить размер текста.
Выход:
Резюме
Гистограмма полезна, когда ось x является категориальной переменной. Ось 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") |