[МУЗЫКА] [МУЗЫКА]
[МУЗЫКА] Рассмотрим
теперь возможность построения различных графиков для реальных данных.
Для этого мне нужно скачать данные, импортировать их в пакет R.
Мы будем работать с тем же самым файлом, с которым уже работали.
Это информация о школьниках.
Проверим, что сейчас является нашей рабочей директорией.
Для этого используем функцию getwd.
Мне бы хотелось указать путь — там, где хранится мой файл.
А он храниться на диске C в папке R.
Для этого я устанавливаю новую директорию.
На всякий случай проверю, что у меня путь установлен правильно.
Опять использую ту же операцию getwd.
Я вижу, что путь у меня поменялся, и я теперь могу работать со своим файлом.
Импортируем таблицу из текстового файла с помощью функции read.table
У нас в этом файле имеется заголовок столбцов, и данные разделены табуляцией.
Выполняем операцию.
Смотрим, как импортировались наши данные.
Вот она вся наша выборка.
Мы можем с ней работать теперь уже внутри пакета.
Откроем графическое окно и построим график,
который называется диаграммой размаха, роста и веса.
Открыли графическое окно,
и сейчас в этом окне будут размещены точки,
соответствующие каждому наблюдению, где по оси x будет
откладываться рост, а по оси y будет откладываться вес.
Мы с вами столкнулись с проблемой кодировки.
То есть здесь сейчас у меня указан опять английский язык,
а переменные назывались по-русски.
При переносе команды из скрипта эта команда была прочитана неверно.
Для того чтобы избежать этой ошибки, мне достаточно переключить язык на руский.
Я меняю язык и повторяю соответствующую команду.
Как видим, теперь она была прочитана программой совершенно верно,
и мы видим на графике точки, которые взяты из таблицы данных data1
соответственно столбцу значений «Рост» и столбцу значений «Вес».
Аналогичный результат мы могли бы получить, задав команду вот таким
образом: мы бы сначала в формуле указали
только имена необходимых нам переменных, для которых мы будем строить график,
а потом через дополнительный аргумент data указали,
из какого набора данных мы выбираем эти переменные.
Ctrl + R.
Как видите, никаких принципиальных изменений не произошло.
Только теперь у нас немножко иначе подписались оси.
Теперь мы видим только имена переменных,
которые были взяты из соответствующего списка.
С помощью дополнительных параметров мы можем подписать оси,
указав соответствующее значение.
То есть если, например,
вы воспользовались первой функцией и у вас не очень красивые подписи осей,
вы можете задать их с помощью дополнительных параметров xlab и ylab.
Также сейчас пока у нас у графика нет названия.
Мы можем добавить это название с помощью аргумента main.
Выполняем эти действия.
Как видите, сейчас у меня команда написана в две строки.
Соответственно, выполняя первую часть,
программа ждет от меня дальнейших действий.
Мы заканчиваем эту операцию.
Программа выполнена, и теперь у нас на графике появились соответствующие подписи.
Во-первых у нас подписаны оси.
Впрочем, при втором обращении они у нас и так имели такие названия,
но теперь появилось еще и название самого графика.
Также мы можем наш график разукрасить,
то есть можем указать их другим цветом.
Чтобы трижды не обращаться к этой команде, я выделю сразу весь блок и нажму Ctrl + R,
чтобы они у меня выполнились сразу все вместе.
Как видите, теперь эти точки у меня указаны синим цветом.
Помимо цвета мы можем менять и тип символов.
С полным списком вы можете ознакомиться в описании данной функции.
Выполняем эту операцию, и, как видите, что у меня получилось.
Выбранный тип «o» дает мне точки, соединенные линиями.
Но поскольку эти точки шли не по порядку, соответственно,
и соединены они получились вот в такой вот странной последовательности.
Чтобы этого избежать, если я хочу,
чтобы точки соединялись по порядку в соответствии со значениями аргумента x,
мне сначала таблицу нужно отсортировать в соответствии с указанным аргументом.
Для этого, например, мы можем использовать
вот такую операцию, и попробуем теперь еще раз построить
аналогичный график с точками, соединенными линиями.
Как видите, график стал более приятный на вид.
Также мы можем построить диаграмму,
которая называется «диаграмма размаха» или «коробки с усами».
Делается это следующим образом.
Для этого служит операция boxplot.
Мы будем строит два графика для веса в зависимости от пола.
У нас в нашей таблице есть информация для мальчиков и девочек.
Соответственно, на нашей диаграмме размаха будет построено две «коробки с усами»
для каждого пола.
Выполним эту команду, посмотрим, что она нам дает.
Вот у нас первая «коробка с усами».
Вот эта центральная линия соответствует медиане.
Верхняя и нижняя границы ящика определяют 50 % выборки.
То есть нижний край соответствует 25-процентному перцентилю
(или первому квартилю), а верхняя граница соответствует
75-процентному перцентилю (или третьему квартилю).
То есть здесь высота этого ящика получается у нас
равна межквартильному расстоянию.
Далее, границы «усов» соответствуют минимальному и максимальному значению
в выборке, которые были классифицированы как «неявляющиеся выбросами».
И в соответствии с выбранным коэффициентом выброса, который, как правило,
выбирается равным 1,5, за пределами «усов» лежат значения,
которые классифицируются как выбросы,
то есть которые выпадают за полуторное межквартильное расстояние.
Давайте построим такой же график для роста.
При этом предыдущий график у нас был стерт,
и в этом же окне появилась новая информация для роста.
Это не очень удобно,
если бы я хотела включить эти результаты в какой-то учебник, презентацию, статью.
Иногда бывает интересным и более наглядным представление сразу
нескольких графиков на одном рисунке.
Давайте посмотрим, какие возможности есть у языка R,
для того чтобы отразить сразу несколько графиков в одном окне.
Откроем новое графическое окно и
для начала зададим некоторую матричную структуру,
которая будет определять нашу структуру окна.
Допустим, я хочу, чтобы у меня в графическом окне было 6 маленьких окошек,
которые расположены в 3 строки и 2 столбца.
Для этого я сначала создаю матрицу значений от 1 до 6 (3 строки, 2 столбца).
Напоминаю, что если мы не определяем параметр byrow (по умолчанию
он равен FALSE), у нас значения будут идти по столбцам.
В первом столбце будут значения 1, 2, 3, во втором столбце — значения 4, 5, 6.
И вот такую матрицу я буду использовать для слоев своих графиков.
Сначала я определяю эти слои.
Они у меня были созданы, но пока ничего на экран не выводится.
Чтобы посмотреть, что у нас получилось,
мы должны использовать вот такую вот операцию layout.show.
Посмотрите, какая структура у нас получилась.
То есть теперь наше графическое окно разделено на 6 частей.
В каждом окне мы можем построить отдельный график.
Можно создавать и более сложные конструкции.
Допустим, мы сначала создадим матрицу из элементов 1,
1, 2, и второй столбец — 3, 4, 4.
Создаем эту матрицу.
Посмотрим, что она собой представляет.
Вот такая вот матрица у нас получилась,
и теперь ее мы будем использовать для создания наших графических слоев.
Обратите внимание, что у нас первые два номера совпадают.
Соответственно, вот эти два окошка будут объединены в одно.
Дальше у нас будет в первом столбце идти небольшое второе окно.
Далее во втором столбце — небольшое третье.
А потом опять вот такое вот объединенное четвертое окно.
Создадим эти слои и посмотрим, что у нас получилось.
Посмотрите, какая теперь у нас имеется интересная структура,
в которую мы можем ввести 4 различных графика.
Вернемся к том, что мы уже делали.
Мы строили диаграммы размаха, или «коробки с усами», для веса и для роста.
Теперь я хочу построить один общий график,
в котором будут выведены диаграммы размаха и для веса, и для роста.
Для этого я хочу создать два небольших окна в одном общем графическом окне.
Построю новую матрицу.
Вот эта матрица такого вида.
То есть у меня будет два окошка, первое и второе, расположенные по горизонтали.
Эту матрицу я использую для создания графических слоев.
Посмотрим, какие слои у нас получились.
Вот у меня две заготовки для построения двух графиков.
То есть теперь, если я буду обращаться к каким-то графическим операциям,
они будут последовательно выводиться в фрагменты этого окна.
Ну, например, первый график для веса я рисую автоматически в первое окно.
Вот посмотрите, он у нас здесь появился.
А теперь второе обращение к аналогичной функции boxplot построит
мне график для роста, который будет расположен во втором окне.
Вот такую красивую картину мы с вами получили.
Ее можно вставить в какую-то презентацию, статью,
график, если есть такая необходимость.
[МУЗЫКА] [МУЗЫКА]