Учебники

24) Гистограмма и гистограмма в R

Гистограмма является отличным способом отображения категориальных переменных на оси X. Этот тип графика обозначает два аспекта на оси Y.

  1. Первый подсчитывает количество вхождений между группами.
  2. Второй показывает итоговую статистику (мин, макс, среднее и т. Д.) Переменной по оси у.

Вы будете использовать набор данных 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")