Графики являются третьей частью процесса анализа данных. Первая часть о извлечении данных , вторая часть касается очистки и манипулирования данными . Наконец, ученый, возможно, должен сообщить свои результаты графически .
Работа ученого данных может быть рассмотрена в следующей картине
- Первая задача исследователя данных — определить вопрос исследования. Этот вопрос исследования зависит от целей и задач проекта.
- После этого одной из самых важных задач является разработка функций. Специалист по данным должен собирать, манипулировать и очищать данные
- Когда этот шаг завершен, он может начать исследовать набор данных. Иногда необходимо уточнить и изменить исходную гипотезу из-за нового открытия.
- Когда проводится объяснительный анализ, ученый, работающий с данными, должен учитывать способность читателя понимать основные концепции и модели .
- Его результаты должны быть представлены в формате, понятном для всех заинтересованных сторон. Один из лучших способов сообщить о результатах через график .
- Графики являются невероятным инструментом для упрощения сложного анализа.
В этом уроке вы узнаете
- пакет ggplot2
- разброс точек
- Изменить ось
- Диаграмма рассеяния с подобранными значениями
- Добавить информацию на график
- Переименовать ось X и Y
- Контролировать весы
- тема
- Сохранить участки
пакет ggplot2
Эта часть руководства посвящена тому, как создавать графики / диаграммы с помощью R.
В этом уроке вы собираетесь использовать пакет ggplot2. Этот пакет построен на непротиворечивой основе книги «Грамматика графики», написанной Уилкинсоном, 2005. ggplot2 очень гибок, включает в себя множество тем и спецификацию сюжетов на высоком уровне абстракции. С ggplot2 вы не можете создавать трехмерную графику и создавать интерактивную графику.
В ggplot2 граф состоит из следующих аргументов:
- данные
- эстетическое картографирование
- геометрический объект
- статистические преобразования
- Весы
- система координат
- корректировки положения
- огранка
Вы узнаете, как управлять этими аргументами в руководстве.
Основной синтаксис ggplot2:
ggplot(data, mapping=aes()) + geometric object arguments: data: Dataset used to plot the graph mapping: Control the x and y-axis geometric object: The type of plot you want to show. The most common object are: - Point: `geom_point()` - Bar: `geom_bar()` - Line: `geom_line()` - Histogram: `geom_histogram()`
разброс точек
Давайте посмотрим, как ggplot работает с набором данных mtcars. Вы начинаете с построения диаграммы рассеяния переменной mpg и переменной drat.
Основной точечный график
library(ggplot2) ggplot(mtcars, aes(x = drat, y = mpg)) + geom_point()
Код Объяснение
- Сначала вы передаете набор данных mtcars в ggplot.
- Внутри аргумента aes () вы добавляете оси X и Y.
- Знак + означает, что вы хотите, чтобы R продолжал читать код. Это делает код более читабельным, разбивая его.
- Используйте geom_point () для геометрического объекта.
Вывод:
Разброс сюжета с группами
Иногда может быть интересно различать значения по группе данных (т.е. данные уровня фактора).
ggplot(mtcars, aes(x = mpg, y = drat)) + geom_point(aes(color = factor(gear)))
Код Объяснение
- Aes () внутри geom_point () контролирует цвет группы. Группа должна быть фактор-переменной. Таким образом, вы конвертируете переменную передачу в коэффициент.
- В целом у вас есть код aes (color = factor (gear)), который меняет цвет точек.
Вывод:
Изменить ось
Масштабирование данных — большая часть работы исследователя данных. В редких случаях данные поступают в форме колокольчиков. Одним из решений, которое сделает ваши данные менее чувствительными к выбросам, является их масштабирование.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear)))
Код Объяснение
- Вы преобразуете переменные x и y в log () непосредственно внутри отображения aes ().
Обратите внимание, что может быть применено любое другое преобразование, такое как стандартизация или нормализация.
Вывод:
Диаграмма рассеяния с подобранными значениями
Вы можете добавить другой уровень информации на график. Вы можете построить подходящее значение линейной регрессии.
my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) + geom_point(aes(color = factor(gear))) + stat_smooth(method = "lm", col = "#C42126", se = FALSE, size = 1) my_graph
Код Объяснение
- график: вы сохраняете свой график в переменной графа. Это полезно для дальнейшего использования или избегать слишком сложной строки кодов
- Аргумент stat_smooth () управляет методом сглаживания
- method = «lm»: линейная регрессия
- col = «# C42126»: код для красного цвета линии
- se = FALSE: не отображать стандартную ошибку
- размер = 1: размер строки 1
Вывод:
Обратите внимание, что доступны другие методы сглаживания
- GLM
- лечь в дрейф
- loess: значение по умолчанию
- ободок
Добавить информацию на график
Пока что мы не добавили информацию в графики. Графики должны быть информативными. Читатель должен увидеть историю анализа данных, просто взглянув на график, не обращаясь к дополнительной документации. Следовательно, для графиков нужны хорошие метки. Вы можете добавить метки с помощью функции labs ().
Основной синтаксис для lab ():
lab(title = "Hello Guru99") argument: - title: Control the title. It is possible to change or add title with: - subtitle: Add subtitle below title - caption: Add caption below the graph - x: rename x-axis - y: rename y-axis Example:lab(title = "Hello Guru99", subtitle = "My first plot")
Добавить заголовок
Одна обязательная информация для добавления — это, очевидно, заголовок.
my_graph + labs( title = "Plot Mile per hours and drat, in log" )
Код Объяснение
- my_graph: вы используете график, который вы сохранили. Это позволяет избежать переписывания всех кодов каждый раз, когда вы добавляете новую информацию в график.
- Вы оборачиваете заголовок внутри лаборатории ().
- Код для красного цвета линии
- se = FALSE: не отображать стандартную ошибку
- размер = 1: размер строки 1
Вывод:
Добавить заголовок с динамическим именем
Динамический заголовок полезен для добавления более точной информации в заголовок.
Вы можете использовать функцию paste () для печати статического и динамического текста. Основной синтаксис paste ():
paste("This is a text", A) arguments - " ": Text inside the quotation marks are the static text - A: Display the variable stored in A - Note you can add as much static text and variable as you want. You need to separate them with a comma
Пример:
A <-2010 paste("The first year is", A)
Вывод:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Вывод:
## [1] "The first year is 2010 and the last year is 2018"
Вы можете добавить динамическое имя к нашему графику, а именно среднее значение mpg.
mean_mpg <- mean(mtcars$mpg) my_graph + labs( title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg) )
Код Объяснение
- Вы создаете среднее значение mpg со средним значением (mtcars $ mpg), хранящимся в переменной mean_mpg
- Вы используете paste () с mean_mpg для создания динамического заголовка, возвращающего среднее значение mpg
Вывод:
Добавить субтитр
Две дополнительные детали могут сделать ваш график более явным. Вы говорите о субтитрах и подписи. Подзаголовок идет прямо под заголовком. Заголовок может сообщить о том, кто сделал вычисления и источник данных.
my_graph + labs( title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Код Объяснение
- Внутри лаборатории () вы добавили:
- title = «Отношение между милей в часах и драхтой»: Добавить заголовок
- subtitle = «Разбивка отношений по классам снастей»: Добавить субтитры
- caption = «Авторы собственных вычислений: добавить заголовок
- Вы разделяете каждую новую информацию запятой,
- Обратите внимание, что вы разбиваете строки кода. Это не обязательно, и это только помогает читать код легче
Вывод:
Переименовать ось X и Y
Сама переменная в наборе данных может не всегда быть явной, или по соглашению использовать _, когда есть несколько слов (например, GDP_CAP). Вы не хотите, чтобы такое имя появилось на вашем графике. Важно изменить имя или добавить больше деталей, например, единиц измерения.
my_graph + labs( x = "Drat definition", y = "Mile per hours", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Код Объяснение
- Внутри лаборатории () вы добавили:
- x = «Определение чертежа»: изменить имя оси X
- y = «миля в часах»: изменить имя оси y
Вывод:
Контролировать весы
Вы можете контролировать масштаб оси.
Функция seq () удобна, когда вам нужно создать последовательность чисел. Основной синтаксис:
seq(begin, last, by = x) arguments: - begin: First number of the sequence - last: Last number of the sequence - by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`
Например, если вы хотите создать диапазон от 0 до 12 с шагом 3, у вас будет четыре числа, 0 4 8 12
seq(0, 12,4)
Вывод:
## [1] 0 4 8 12
Вы можете контролировать масштаб оси X и Y, как показано ниже
my_graph + scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) + scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) + labs( x = "Drat definition", y = "Mile per hours", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Код Объяснение
- Функция scale_y_continuous () управляет осью Y
- Функция scale_x_continuous () контролирует ось х .
- Параметр breaks управляет разбиением оси. Вы можете вручную добавить последовательность чисел или использовать функцию seq ():
- seq (1, 3.6, by = 0.2): создайте шесть чисел от 2.4 до 3.4 с шагом 3
- seq (1, 1.6, by = 0.1): создайте семь чисел от 1 до 1.6 с шагом 1
Вывод:
тема
Наконец, R позволяет нам настроить сюжет с различными темами. Библиотека ggplot2 включает в себя восемь тем:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- theme_minimal ()
- theme_gray ()
- theme_void ()
my_graph + theme_dark() + labs( x = "Drat definition, in log", y = "Mile per hours, in log", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Вывод:
Сохранить участки
После всех этих шагов пришло время сохранить и поделиться своим графиком. Вы добавляете ggsave («ИМЯ ФАЙЛА») сразу после построения графика, и он будет сохранен на жестком диске.
График сохраняется в рабочем каталоге. Чтобы проверить рабочий каталог, вы можете запустить этот код:
directory <-getwd() directory
Давайте построим ваш фантастический график, сохраним его и проверим местоположение
my_graph + theme_dark() + labs( x = "Drat definition, in log", y = "Mile per hours, in log", color = "Gear", title = "Relation between Mile per hours and drat", subtitle = "Relationship break down by gear class", caption = "Authors own computation" )
Вывод:
ggsave("my_fantastic_plot.png")
Вывод:
## Saving 5 x 4 in image
Примечание : только для педагогических целей мы создали функцию open_folder (), чтобы открыть папку каталога для вас. Вам просто нужно запустить код ниже и посмотреть, где хранится картинка. Вы должны увидеть имена файлов my_fantastic_plot.png.
# Run this code to create the function open_folder <- function(dir) { if (.Platform['OS.type'] == "windows") { shell.exec(dir) } else { system(paste(Sys.getenv("R_BROWSER"), dir)) } } # Call the function to open the folder open_folder(directory)
Резюме
Вы можете суммировать аргументы для создания точечной диаграммы в таблице ниже:
Задача |
Код |
---|---|
Основной точечный график |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Точечный график с цветовой группой |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Добавить подходящие значения |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Добавить заголовок |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Добавить субтитры |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
Переименовать х |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Переименовать у |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Контролировать весы |
ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1) |
Создать журналы |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
тема |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Сохранить |
ggsave("my_fantastic_plot.png") |