Визуализация данных с помощью R и ggplot2
Пакет ggplot2 на языке программирования R, также называемый Grammar of Graphics , представляет собой бесплатный и простой в использовании пакет визуализации с открытым исходным кодом, широко используемый в R. Это самый мощный пакет визуализации, написанный Хэдли Уикхэмом.
Он включает в себя несколько слоев, на которых он регулируется. Слои следующие:
Строительные блоки слоев с грамматикой графики
- Данные: элемент представляет собой сам набор данных.
- Эстетика: данные должны сопоставляться с атрибутами эстетики, такими как ось X, ось Y, цвет, заливка, размер, метки, альфа, форма, ширина линии, тип линии.
- Геометрия: как наши данные отображаются с использованием точек, линий, гистограмм, столбцов, коробчатых диаграмм.
- Фасеты: отображает подмножество данных с использованием столбцов и строк.
- Статистика: биннинг, сглаживание, описательная, промежуточная
- Координаты: расстояние между данными и отображением с использованием декартовых, фиксированных, полярных, пределов
- Темы: Без ссылки на данные
Используемый набор данных
mtcars (дорожное испытание автомобиля Motor Trend) включает в себя расход топлива и 10 аспектов автомобильного дизайна и производительности для 32 автомобилей и поставляется с предустановленным пакетом dplyr в R.
R
# Installing the package install.packages ( "dplyr" ) # Loading package library (dplyr) # Summary of dataset in package summary (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 packages library (ggplot2) library (dplyr) # Data Layer ggplot (data = mtcars) |
Выход:
Эстетический слой:
Здесь мы будем отображать и сопоставлять набор данных с определенной эстетикой.
R
# Aesthetic Layer ggplot (data = mtcars, aes (x = hp, y = mpg, col = disp)) |
Выход:
Геометрический слой:
В геометрическом слое управляйте основными элементами, смотрите, как наши данные отображаются с помощью точки, линии, гистограммы, столбца, ящичной диаграммы.
R
# Geometric layer ggplot (data = mtcars, aes (x = hp, y = mpg, col = disp)) + geom_point () |
Выход:
Геометрический слой: добавление размера, цвета и формы, а затем построение графика гистограммы
R
# Adding size ggplot (data = mtcars, aes (x = hp, y = mpg, size = disp)) + geom_point () # Adding color and shape ggplot (data = mtcars, aes (x = hp, y = mpg, col = factor (cyl), shape = factor (am))) + geom_point () # Histogram plot ggplot (data = mtcars, aes (x = hp)) + geom_histogram (binwidth = 5) |
Выход:
Фасетный слой:
Он используется для разделения данных на подмножества всего набора данных и позволяет визуализировать подмножества на одном графике. Здесь мы разделяем строки по типу трансмиссии и разделяем столбцы по цилиндрам.
R
# Facet Layer p <- ggplot (data = mtcars, aes (x = hp, y = mpg, shape = factor (cyl))) + geom_point () # Separate rows according to transmission type p + facet_grid (am ~ .) # Separate columns according to cylinders p + facet_grid (. ~ cyl) |
Выход:
Слой статистики
На этом уровне мы преобразуем наши данные, используя биннинг, сглаживание, описательный, промежуточный
R
# Statistics layer ggplot (data = mtcars, aes (x = hp, y = mpg)) + geom_point () + stat_smooth (method = lm, col = "red" ) |
Выход:
Слой координат:
В этих слоях координаты данных сопоставляются вместе с упомянутой плоскостью графика, и мы корректируем ось и изменяем расстояние между отображаемыми данными с помощью контрольных размеров графика.
R
# Coordinates layer: Control plot dimensions ggplot (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 in ggplot (data = mtcars, aes (x = wt, y = hp, col = am)) + geom_point () + geom_smooth () + coord_cartesian (xlim = c (3, 6)) |
Выход:
Слой темы:
Этот слой управляет более тонкими элементами отображения, такими как размер шрифта и свойства цвета фона.
Пример 1: Тематический слой — функция element_rect()
R
# Theme layer ggplot (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, чтобы сделать визуализации интерактивными и анимированными.