Чтение онлайн

на главную - закладки

Жанры

Основы статистической обработки педагогической информации
Шрифт:

row.names = c(NA, -22L), class = c("tbl_df", "tbl", "data.frame"))

Представим успеваемость графически:

Насколько похожи эти две иллюстрации?

Оба графика содержат одну и ту же переменную x, один и тот же y, оба визуализируют одни и те же данные.

Но их сюжет не идентичен. Каждая иллюстрация описается на свои визуальные образы для представления данных. В синтаксисе ggplot2 они используют разные геометрические объекты (geom). Geom – это геометрический объект, который применяет графопостроитель для представления данных. Например, линейные диаграммы используют линейные геометрические объекты, прямоугольные диаграммы используют геометрические объекты прямоугольной формы и так далее. Диаграммы рассеяния нарушают этот тренд, они используют точечное представление данных. Как видели выше, можно использовать разные геометрические объекты для визуализации одних и тех же данных. На левом графике используется точечная геометрия, а в правом – гладкая линия, усредняющая данные. Чтобы изменить геометрические примитивы на вашем чертеже, измените функцию geom_, которую добавляете к ggplot . Например, чтобы воспроизвести вышеприведенные рисунки, выполните код:

# левый график

ggplot (data = My_table) +

geom_point (mapping = aes (x = `№№`, y = Тема2))

# правый график

ggplot (data = My_table) +

geom_smooth (mapping = aes (x = `№№`, y = Тема2))

Каждая функция geom в ggplot2 принимает аргумент mapping, однако не каждая настройка эстетики работает с любой функцией geom. Можно было бы установить форму точки, но нельзя установить форму линии. С другой стороны, можно установить параметр linetype, тогда geom_smooth нарисует линии разного типа для каждого уникального значения переменной, которая сопоставлена с типом линии.

Например, функция geom_smooth может разделить обучающихся по классам:

ggplot (data = My_table) +

geom_smooth (mapping = aes (x = `№№`, y = Тема2, linetype = Класс))

Одна линия описывает успехи в освоении Темы2 для всех одноклассников из «7а», а другая из «7б»:

Покажется немного странным, эклектикой, но можно выполнить наложение всех линий поверх необработанных данных с последующим их окрашиванием в соответствии с успеваемостью класса. Заметим, что этот график потребует два вызова geom_ для построения, но как разместить несколько геометрических объектов разного типа на одном и том же графике.

ggplot2 обеспечивает более 40 вариантов функции geom_, пакеты расширений предоставляют ещё больше возможностей. Лучший способ получить исчерпывающий обзор, используйте справку: ?geom_smooth.

Многие варианты функции geom_, такие как geom_smooth, например, используют один геометрический объект для отображения нескольких строк данных. Для этих функций, можно выносить эстетику группы в категориальную переменную для рисования нескольких объектов в едином стиле, так как ggplot2 нарисует отдельный объект для каждого уникального объекта значение группирующей переменной. На практике ggplot2 будет автоматическая группировка данных для этих функций всякий раз, когда сопоставляется эстетика для дискретной переменной (как было в примере с linetype). Удобно использовать эту особенность, потому что в таком случае группа эстетических параметров оказывается самой по себе, она не выносится на поле легенды или в настройки каждого объекта. К слову, показ легенды можно запретить вовсе, установкой значения параметра show.legend = FALSE, как это показано в примере кода ниже:

ggplot (data = My_table) + geom_smooth (mapping = aes (x = `№№`, y = Тема2))

ggplot (data = My_table) +

geom_smooth (mapping = aes (x = `№№`, y = Тема2, group = Класс))

ggplot (data = My_table) +

geom_smooth( mapping = aes(x = `№№`, y =

Тема2, color = Класс),

show.legend = FALSE)

Чтобы изобразить несколько графиков на одном чертеже, добавьте несколько вызовов функции geom к ggplot:

ggplot (data = My_table) +

geom_point (mapping = aes (x = `№№`, y = Тема2)) +

geom_smooth (mapping = aes (x = `№№`, y = Тема2))

Это, однако, вносит некоторое дублирование в код. Представите, что хотите изменить ось y для отображения успеваемости по теме 3 вместо темы 2, нужно будет менять переменную в дух местах, при этом можно забыть про обновление в одном из них.

Дабы избежать подобного сценария, набор значений аргумента mapping передается непосредственно в функцию ggplot. ggplot2 будет рассматривать эти значений как глобальные и применять их к каждой функции вызываемой внутри. Другими словами, следующий код создаёт ту же иллюстрацию, что и предыдущий, но более лаконичен:

ggplot (data = My_table, mapping = aes (x = `№№`, y = Тема2)) +

geom_point + geom_smooth

Если же размещаете параметры mapping внутри каждой функции geom, то ggplot2 будет рассматривать их как локальные настройки для слоя. Будет использоваться параметр mapping для расширения или перезаписи глобальных настроек слоя. Это позволяет настраивать различную эстетику внутри индивидуальных слоёв:

ggplot (data = My_table, mapping = aes (x = `№№`, y = Тема2)) +

geom_point (mapping = aes (color = Класс)) + geom_smooth

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

ggplot (data = My_table, mapping = aes (x = `№№`, y = Тема2)) +

geom_point (mapping = aes (color = Класс)) +

geom_smooth (data = My_table[My_table$Класс == "7а", ], se = FALSE)

В приведенном примере, гладкая линия охватывает только подмножество исходного набора данных. Локальный аргумент в geom_smooth переопределяет глобальный аргумент отбора данных в ggplot.

Разберем как работает фильтрация чуть позже, на данный момент достаточно понять, что эта команда выбирает только учеников 7а класса, а опция se = FALSE отключает подсветку доверительного интервала.

Упражнения

1. Какую функцию из категории geom_ вы бы использовали для построения линейного графика? А для круговой, лепестковой диаграммы, гистограммы?

2. Что меняет опция show.legend = FALSE? Что происходит если её убрать? Как думаете, почему она использовалась ранее в примере?

3. Что делает аргумент se для функции geom_smooth ?

4. Воссоздайте код R, необходимый для создания следующего рисунка и дайте ему соответствующую интерпретацию:

Подробнее остановимся на гистограммах, – так называемых прямоугольных диаграммах. Они кажутся простыми, но интересны тем, что открывают потенциальные закономерности в наблюдаемой статистике. Рассмотрим базовую линейчатую диаграмму, построенную следующим образом с помощью функции geom_bar. Принимая во внимание, как Роберт Грин Ингерсолл (1833-1899) за оффлайн-школой закрепил хлёсткое определение: «Школа – это место, где шлифуют булыжники и губят алмазы», – медленно, но верно приобщаясь к принципиально иной онлайн-школе попробуем всё же научиться правильному обращению с алмазами. На диаграмме ниже будет показано общее количество обработанных алмазов – бриллиантов, хранящихся в предустановленной с пакетом ggplot2 базе данных, сгруппированных по огранке.

Поделиться:
Популярные книги

Удиви меня

Юнина Наталья
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Удиви меня

Live-rpg. эволюция-5

Кронос Александр
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Live-rpg. эволюция-5

Матабар III

Клеванский Кирилл Сергеевич
3. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар III

Сиротка

Первухин Андрей Евгеньевич
1. Сиротка
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Сиротка

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Последний Паладин. Том 5

Саваровский Роман
5. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 5

Аристократ из прошлого тысячелетия

Еслер Андрей
3. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Аристократ из прошлого тысячелетия

Изгой. Трилогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
8.45
рейтинг книги
Изгой. Трилогия

Великий род

Сай Ярослав
3. Медорфенов
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Великий род

Лорд Системы 12

Токсик Саша
12. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 12

Наемный корпус

Вайс Александр
5. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Наемный корпус

Чехов. Книга 3

Гоблин (MeXXanik)
3. Адвокат Чехов
Фантастика:
альтернативная история
5.00
рейтинг книги
Чехов. Книга 3

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Измена. Верну тебя, жена

Дали Мила
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верну тебя, жена