ЛР / ЛР№2_Хакова_Ю_М_ИСТ_223
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Лабораторная работа № 2
«Визуализация данных. Разведочный анализ данных»
Выполнил: ст. гр. ИСТ- 223, Хакова Ю. М.
Проверил: к.т.н., доцент Лабковская Р.Я.
Санкт-Петербург
2024
Цель работы: научиться использовать визуализации для формулирования исследовательских гипотез, проверки предположений относительно распределения данных и зависимостей между показателями.
Формируемые знания, умения и навыки: знать основные визуализации для количественных и категориальных данных, уметь использовать для построения визуализаций функции языка R. Уметь анализировать построенные визуализации для описания распределения данных, которое они графически представляют.
Ход работы:
Загрузить набор данных в рабочую директорию.
Считать данные, определить тип данных. (рис. 1), (рис. 2)
Описать данные набора: какие переменные в нем присутствуют, какой тип данных у этих переменных.
Провести построение графиков на языке R.
Рис. 1. Результат выполнения программы.
Листинг кода:
library(ggplot2)
data <- read.csv("/Users/ulahakova/Downloads/Spotify Most Streamed Songs.csv", stringsAsFactors = FALSE)
str(data)
summary(data)
data$streams <- as.numeric(gsub(",", "", data$streams))
data$in_deezer_playlists <- as.numeric(gsub(",", "", data$in_deezer_playlists))
data$in_shazam_charts <- as.numeric(gsub(",", "", data$in_shazam_charts))
str(data)
ggplot(data, aes(x = streams)) +
geom_histogram(binwidth = 50000000, fill = "blue", color = "black") +
labs(title = "Распределение количества стримов", x = "Количество стримов", y = "Частота")
ggplot(data, aes(x = factor(released_year))) +
geom_bar(fill = "green") +
labs(title = "Количество песен по годам", x = "Год выпуска", y = "Количество песен")
top_10_songs <- data[order(-data$streams), ][1:10, ]
ggplot(top_10_songs, aes(x = reorder(track_name, streams), y = streams)) +
geom_bar(stat = "identity", fill = "purple") +
coord_flip() + # Перевернем оси для удобства
labs(title = "Топ-10 песен по количеству стримов", x = "Песня", y = "Количество стримов")
Контрольные вопросы и задания
1. Какие визуализации построены для количественных переменных? Какие
функции на языке R и с какими входными параметрами при этом
использовались? Какие особенности распределения данных они позволяют
наблюдать?
Визуализации для количественных переменных:
Гистограмма для распределения количества стримов (streams):
Функции: geom_histogram()` из библиотеки ggplot2.
Входные параметры:
aes(x = streams): определяет, что по оси X будут значения переменной streams.
binwidth = 50000000: определяет ширину столбцов, чтобы cгруппировать количество стримов по диапазонам в 50 млн.
fill = "blue", color = "black": цвет заполнения столбцов.
Гистограмма позволяет увидеть, как распределены данные. Можно заметить, если распределение данных сильно скошено, что может указывать на наличие "хитов" с очень большим количеством стримов.
Столбчатая диаграмма для отображения количества песен по годам:
Функция: geom_bar() из библиотеки ggplot2.
Входные параметры:
aes(x = factor(released_year)): определяет, что по оси X будут годы выпуска, представленные как факторы.
fill = "green"`: задает цвет столбцов.
Столбчатая диаграмма позволяет увидеть тенденцию выпуска песен по годам. Можно заметить всплески в определенные годы.
Столбчатая диаграмма для топ-10 песен по количеству стримов:
Функция: geom_bar(stat = "identity") из библиотеки ggplot2.
Входные параметры:
aes(x = reorder(track_name, streams), y = streams): определяет, что столбцы по оси X будут представлять названия песен, отсортированные по количеству стримов.
stat = "identity": указывает, что высота столбцов будет пропорциональна количеству стримов.
coord_flip(): поворачивает оси для удобства отображения длинных названий песен.
fill = "purple": Цвет столбцов.
Столбчатая диаграмма позволяет сравнивать песни по количеству стримов. Можно легко увидеть, какие треки являются самыми популярными.
Используемые функции и параметры:
Функции:
ggplot(): функция для создания графиков с использованием системы грамматики графиков в R.
geom_histogram(): функция для построения гистограммы.
geom_bar(): функция для построения столбчатой диаграммы.
Входные параметры:
aes(): определяет, какие переменные использовать на осях графика и как данные будут визуализироваться.
binwidth: определяет ширину интервалов.
fill, color: определяют цвета заполнения и границ столбцов.
stat: определяет, как рассчитывается высота столбцов.
fill: определяет цвет столбцов.
coord_flip(): поворачивает оси графика.
Особенности распределения данных:
Гистограмма может показать, что большинство песен имеют относительно небольшое количество стримов, а некоторые песни имеют большое количество прослушиваний.
Столбчатая диаграмма может показать тренды в музыке. Например, можно заметить, что за определенные годы было выпущено больше популярных песен.
Столбчатая диаграмма для топ-10 песен показывает, какие треки лидируют по числу стримов, и насколько они опережают другие по популярности.
Вывод: в ходе выполнения лабораторной работы было освоено использование базовых графических функций в языке R, что позволило эффективно визуализировать данные и проводить их предварительный анализ. Были изучены основные типы графиков, такие как точечные диаграммы, гистограммы и линейные графики, а также получены навыки настройки параметров графиков для улучшения их информативности и читабельности. Были созданы и настроены различные типы графиков для визуализации распределения и взаимосвязей между данными, освоены методы управления элементами графического отображения, такими как цвета, легенды, оси и заголовки.
