Мы будем конструировать графики с помощью ggplot2, добавляя слои. Добавление новых элементов на график поверх имеющихся - это одна из наиболее замечательных возможностей системы ggplot2. Самые сложные графики можно строить по частям, которые вы можете итеративно добавлять или удалять. В качестве примера можно привести этот график, на котором показана зависимость между продолжительностью звука и F1 для 394 токенов лексической единицы "I".
> I_jean <- read.delim("http://bit.ly/avml_ggplot2_data")<- avml_ggplot2_data="" bit.ly="" http:="" read.delim="" span="">->
Этот график состоит из девяти слоев, которые можно поделить на пять типов.
Слой данных
Каждый график ggplot2 имеет слой данных, который определяет данные, на базе которых строится график, и базовые отображения данных на графические элементы. Слой данных создается с помощью функций ggplot() и aes():
ggplot(data, aes(...))
Первый аргумент в ggplot() - это data frame (он должен быть типа data frame), а второй - aes(), который не используется нигде, кроме как внутри функций ggplot2, поэтому более правильно говорить об aes() как о специальном способе задать отображение данных в виде графика.
Для того, чтобы построить приведенный выше график, мы будем использовать данные из data frame I_jean, которые выглядят следующим образом:
> head(I_jean)
Name Age Sex Word FolSegTrans Dur_msec F1 F2 F1.n F2.n
1 Jean 61 f I'M M 130 861.7 1335.8 1.6608625 -0.8855366
2 Jean 61 f I N 140 1010.4 1349.3 2.6882695 -0.8536494
3 Jean 61 f I'LL L 110 670.1 1292.7 0.3370482 -0.9873394
4 Jean 61 f I'M M 180 869.8 1307.0 1.7168275 -0.9535626
5 Jean 61 f I R 80 743.0 1418.7 0.8407333 -0.6897257
6 Jean 61 f I'VE V 120 918.2 1580.8 2.0512357 -0.3068434
Name Age Sex Word FolSegTrans Dur_msec F1 F2 F1.n F2.n
1 Jean 61 f I'M M 130 861.7 1335.8 1.6608625 -0.8855366
2 Jean 61 f I N 140 1010.4 1349.3 2.6882695 -0.8536494
3 Jean 61 f I'LL L 110 670.1 1292.7 0.3370482 -0.9873394
4 Jean 61 f I'M M 180 869.8 1307.0 1.7168275 -0.9535626
5 Jean 61 f I R 80 743.0 1418.7 0.8407333 -0.6897257
6 Jean 61 f I'VE V 120 918.2 1580.8 2.0512357 -0.3068434
Я решил, что интересная зависимость в этих данных - между продолжительностью звука (Dur_msec) и нормализованным F1 звука (F1.n). А именно, Dur_msec отобразим на ось x, а F1.n - на ось y. Код ggplot2:
> p <- ggplot(I_jean, aes(x = Dur_msec, y = F1.n))<- aes="" ggplot="" jean="" x="Dur_msec," y="F1.n))</span">->
Здесь вы сразу можете увидеть отличия ggplot2 от базовых графических функций R. Если раньше вы пользовались только функцией plot(), то вас удивит присваивание вывода ggplot2 объекту, поскольку функция plot() просто создавала график, который не являся объектом. С другой стороны, графики ggplot2 являются объектами, которые вы можете сохранять, обрабатывать и присваивать.
Хотя если вы попробуете прямо сейчас вывести p, то получите сообщение об ошибке. Пока p - это график ggplot2, который содержит все данные, но не содержит графических элементов.
Комментариев нет:
Отправить комментарий