Гистограмма & Гистограмма в R (с примером)

Содержание:

Anonim

Гистограмма - отличный способ отобразить категориальные переменные на оси x. Этот тип графика обозначает два аспекта по оси ординат.

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

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