Гистограмма является отличным способом отображения категориальных переменных на оси X. Этот тип графика обозначает два аспекта на оси Y.
- Первый подсчитывает количество вхождений между группами.
- Второй показывает итоговую статистику (мин, макс, среднее и т. Д.) Переменной по оси у.
Вы будете использовать набор данных mtcars со следующими переменными:
- цил: номер цилиндра в машине. Числовая переменная
- утра: тип трансмиссии. 0 для автоматического и 1 для ручного. Числовая переменная
- миль на галлон: миль на галлон. Числовая переменная
В этом уроке вы узнаете
- Как создать гистограмму
- Изменить цвет баров
- Изменить интенсивность
- Цвет по группам
- Добавить группу в барах
- Гистограмма в процентах
- Бок о бок
- Гистограмма
Как создать гистограмму
Чтобы создать график в 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()
Код Объяснение
- Заполнение аргумента внутри aes () позволяет изменить цвет бара. Вы меняете цвет, устанавливая переменную fill = x-axis. В вашем примере, переменная оси X является цил; заполнить = коэффициент (цил)
Вывод:
Добавить группу в барах
Вы можете дополнительно разделить ось 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()
Код Объяснение
- Ggpplot () содержит данные набора данных и aes ().
- В aes () вы включаете переменную x-axis и какую переменную требуется заполнить бар (т.е. 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()
Код Объяснение
- Вы можете контролировать ориентацию графа с помощьюordin_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()
Код Объяснение
- Аргумент width внутри geom_bar () управляет размером бара. Большее значение увеличивает ширину.
- Обратите внимание, вы храните график в переменной graph. Вы делаете это, потому что следующий шаг не изменит код переменной 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") |