Визуализация данных с помощью R и ggplot2
Пакет ggplot2 на языке программирования R, также называемый Grammar of Graphics , представляет собой бесплатный и простой в использовании пакет визуализации с открытым исходным кодом, широко используемый в R. Это самый мощный пакет визуализации, написанный Хэдли Уикхэмом.
Он включает в себя несколько слоев, на которых он регулируется. Слои следующие:
Строительные блоки слоев с грамматикой графики
- Данные: элемент представляет собой сам набор данных.
- Эстетика: данные должны сопоставляться с атрибутами эстетики, такими как ось X, ось Y, цвет, заливка, размер, метки, альфа, форма, ширина линии, тип линии.
- Геометрия: как наши данные отображаются с использованием точек, линий, гистограмм, столбцов, коробчатых диаграмм.
- Фасеты: отображает подмножество данных с использованием столбцов и строк.
- Статистика: биннинг, сглаживание, описательная, промежуточная
- Координаты: расстояние между данными и отображением с использованием декартовых, фиксированных, полярных, пределов
- Темы: Без ссылки на данные

Используемый набор данных
mtcars (дорожное испытание автомобиля Motor Trend) включает в себя расход топлива и 10 аспектов автомобильного дизайна и производительности для 32 автомобилей и поставляется с предустановленным пакетом dplyr в R.
R
# Installing the packageinstall.packages("dplyr") # Loading packagelibrary(dplyr) # Summary of dataset in packagesummary(mtcars) |
Выход:
mpg cyl disp hp
Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
Median :19.20 Median :6.000 Median :196.3 Median :123.0
Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
drat wt qsec vs
Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
Median :3.695 Median :3.325 Median :17.71 Median :0.0000
Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
am gear carb
Min. :0.0000 Min. :3.000 Min. :1.000
1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
Median :0.0000 Median :4.000 Median :2.000
Mean :0.4062 Mean :3.688 Mean :2.812
3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
Max. :1.0000 Max. :5.000 Max. :8.000 Пример пакета ggplot2 в программировании на R
Мы разрабатываем визуализацию набора данных mtcars , который включает 32 марки автомобилей и 11 атрибутов, используя слои ggplot2 .
Уровень данных:
На уровне данных мы определяем источник информации для визуализации, давайте использовать набор данных mtcars в пакете ggplot2.
R
# Loading packageslibrary(ggplot2)library(dplyr) # Data Layerggplot(data = mtcars) |
Выход:

Эстетический слой:
Здесь мы будем отображать и сопоставлять набор данных с определенной эстетикой.
R
# Aesthetic Layerggplot(data = mtcars, aes(x = hp, y = mpg, col = disp)) |
Выход:

Геометрический слой:
В геометрическом слое управляйте основными элементами, смотрите, как наши данные отображаются с помощью точки, линии, гистограммы, столбца, ящичной диаграммы.
R
# Geometric layerggplot(data = mtcars, aes(x = hp, y = mpg, col = disp)) + geom_point() |
Выход:

Геометрический слой: добавление размера, цвета и формы, а затем построение графика гистограммы
R
# Adding sizeggplot(data = mtcars, aes(x = hp, y = mpg, size = disp)) + geom_point() # Adding color and shapeggplot(data = mtcars, aes(x = hp, y = mpg, col = factor(cyl), shape = factor(am))) +geom_point() # Histogram plotggplot(data = mtcars, aes(x = hp)) + geom_histogram(binwidth = 5) |
Выход:



Фасетный слой:
Он используется для разделения данных на подмножества всего набора данных и позволяет визуализировать подмножества на одном графике. Здесь мы разделяем строки по типу трансмиссии и разделяем столбцы по цилиндрам.
R
# Facet Layerp <- ggplot(data = mtcars, aes(x = hp, y = mpg, shape = factor(cyl))) + geom_point() # Separate rows according to transmission typep + facet_grid(am ~ .) # Separate columns according to cylindersp + facet_grid(. ~ cyl) |
Выход:


Слой статистики
На этом уровне мы преобразуем наши данные, используя биннинг, сглаживание, описательный, промежуточный
R
# Statistics layerggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + stat_smooth(method = lm, col = "red") |
Выход:

Слой координат:
В этих слоях координаты данных сопоставляются вместе с упомянутой плоскостью графика, и мы корректируем ось и изменяем расстояние между отображаемыми данными с помощью контрольных размеров графика.
R
# Coordinates layer: Control plot dimensionsggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point() + stat_smooth(method = lm, col = "red") + scale_y_continuous("mpg", limits = c(2, 35), expand = c(0, 0)) + scale_x_continuous("wt", limits = c(0, 25), expand = c(0, 0)) + coord_equal() |
Выход:

Coord_cartesian() для правильного увеличения:
R
# Add coord_cartesian() to proper zoom inggplot(data = mtcars, aes(x = wt, y = hp, col = am)) + geom_point() + geom_smooth() + coord_cartesian(xlim = c(3, 6)) |
Выход:

Слой темы:
Этот слой управляет более тонкими элементами отображения, такими как размер шрифта и свойства цвета фона.
Пример 1: Тематический слой — функция element_rect()
R
# Theme layerggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + facet_grid(. ~ cyl) + theme(plot.background = element_rect( fill = "black", colour = "gray")) |
Выход:

Пример 2:
R
ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + facet_grid(am ~ cyl) + theme_gray() |
Выход:

ggplot2 предоставляет различные типы визуализации. В пакете можно использовать больше параметров, поскольку пакет дает больший контроль над визуализацией данных. Многие пакеты можно интегрировать с пакетом ggplot2, чтобы сделать визуализации интерактивными и анимированными.