Стълбовидната диаграма е чудесен начин за показване на категорични променливи в оста x. Този тип графика обозначава два аспекта в оста y.
- Първият отчита броя на възникванията между групите.
- Вторият показва обобщена статистика (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") |