Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР / ЛР№2_Хакова_Ю_М_ИСТ_223

.docx
Скачиваний:
0
Добавлен:
07.06.2026
Размер:
905.54 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Лабораторная работа № 2

«Визуализация данных. Разведочный анализ данных»

Выполнил: ст. гр. ИСТ- 223, Хакова Ю. М.

Проверил: к.т.н., доцент Лабковская Р.Я.

Санкт-Петербург

2024

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

Формируемые знания, умения и навыки: знать основные визуализации для количественных и категориальных данных, уметь использовать для построения визуализаций функции языка R. Уметь анализировать построенные визуализации для описания распределения данных, которое они графически представляют.

Ход работы:

  1. Загрузить набор данных в рабочую директорию.

  2. Считать данные, определить тип данных. (рис. 1), (рис. 2)

  3. Описать данные набора: какие переменные в нем присутствуют, какой тип данных у этих переменных.

  4. Провести построение графиков на языке 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 и с какими входными параметрами при этом

использовались? Какие особенности распределения данных они позволяют

наблюдать?

Визуализации для количественных переменных:

  1. Гистограмма для распределения количества стримов (streams):

Функции: geom_histogram()` из библиотеки ggplot2.

Входные параметры:

aes(x = streams): определяет, что по оси X будут значения переменной streams.

binwidth = 50000000: определяет ширину столбцов, чтобы cгруппировать количество стримов по диапазонам в 50 млн.

fill = "blue", color = "black": цвет заполнения столбцов.

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

  1. Столбчатая диаграмма для отображения количества песен по годам:

Функция: geom_bar() из библиотеки ggplot2.

Входные параметры:

aes(x = factor(released_year)): определяет, что по оси X будут годы выпуска, представленные как факторы.

fill = "green"`: задает цвет столбцов.

Столбчатая диаграмма позволяет увидеть тенденцию выпуска песен по годам. Можно заметить всплески в определенные годы.

  1. Столбчатая диаграмма для топ-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, что позволило эффективно визуализировать данные и проводить их предварительный анализ. Были изучены основные типы графиков, такие как точечные диаграммы, гистограммы и линейные графики, а также получены навыки настройки параметров графиков для улучшения их информативности и читабельности. Были созданы и настроены различные типы графиков для визуализации распределения и взаимосвязей между данными, освоены методы управления элементами графического отображения, такими как цвета, легенды, оси и заголовки.