Линейна диаграма & Хистограма в R (с пример)

Съдържание:

Anonim

Стълбовидната диаграма е чудесен начин за показване на категорични променливи в оста x. Този тип графика обозначава два аспекта в оста y.

  1. Първият отчита броя на възникванията между групите.
  2. Вторият показва обобщена статистика (min, max, средно и т.н.) на променлива в оста y.

Ще използвате mtcars набора от данни със следните променливи:

  • цилиндър: Номер на цилиндъра в автомобила. Числова променлива
  • am: Тип на предаване. 0 за автоматично и 1 за ръчно. Числова променлива
  • mpg: мили на галон. Числова променлива

В този урок ще научите

  • Как да създадете диаграма
  • Променете цвета на лентите
  • Променете интензивността
  • Цвят по групи
  • Добавете група в лентите
  • Стълбовидна диаграма в проценти
  • Рамо до рамо
  • Хистограма

Как да създадете диаграма

За да създадете графика в 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 като факторна променлива (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 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()

Обяснение на кода

  • Аргументът запълване вътре в aes () позволява промяна на цвета на лентата. Можете да промените цвета, като зададете променлива за запълване = х-ос. Във вашия пример променливата на оста x е cyl; запълване = коефициент (цилиндър)

Изход:

Добавете група в лентите

Можете допълнително да разделите оста y на базата на друго ниво на фактор. Например можете да преброите броя на автоматичната и ръчната трансмисия в зависимост от типа на цилиндъра.

Ще продължите по следния начин:

  • Стъпка 1: Създайте рамката за данни с mtcars набор от данни
  • Стъпка 2: Обозначете променливата am с автоматично за автоматична скоростна кутия и човек за ръчна скоростна кутия. Преобразувайте am и cyl като фактор, така че да не се налага да използвате фактор () във функцията 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, а средната_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()

Обяснение на кода

  • Можете да контролирате ориентацията на графиката сord_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 () контролира размера на лентата. По-голямата стойност увеличава ширината.
  • Обърнете внимание, че съхранявате графиката в променливата графика. Правите това, защото следващата стъпка няма да промени кода на променливата графика. Подобрява четливостта на кода.

Изход:

Стъпка 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": Променете цвета на текста. Тук използвате белия цвят.
  • размер = 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")