Поиск по сайту:

Понимание функции plot() в R — основы построения графиков


В этом руководстве давайте сначала разберемся с основами использования функции plot() в R. Язык R хорошо известен своей красивой графикой с богатым набором функций для построения и форматирования любых графиков и plot(). Семейство функций, которое помогает нам создавать их.

Функция plot() в R — это не одна определенная функция, а заполнитель для семейства связанных функций. Точная вызываемая функция будет зависеть от используемых параметров. В самом простом случае функция plot() просто строит два вектора относительно друг друга.

plot(c(1,2,3,4,5),c(1,4,9,16,25))

Это дает простой график для y=x ^2.

Изменение внешнего вида графика с помощью функции plot() в R

Как мы увидим, функцию plot() в R можно настроить несколькими способами для создания более сложных и привлекательных графиков.

  1. Форма маркеров. Маркеры графика по умолчанию представляют собой маленькие пустые круги. Они также известны как сюжетные персонажи - обозначаются pch. Вы можете изменить их, добавив новое значение pch в функцию plot. Значения Pch от 0 до 25 действительны и дают несколько различных символов на графике. Pch 0 соответствует квадрату, 1 – кругу, 3 – треугольнику, 4 – кресту и т. д.
  2. Размер маркеров графика: этим аспектом графика можно управлять с помощью параметра cex. Для параметра cex можно задать значение 0,5, если вы хотите, чтобы маркеры были на 50 % меньше, и 1,5, если вы хотите, чтобы они были на 50 % больше.
  3. Цвет маркеров графика. Символам можно назначить один или несколько цветов. Эти цвета можно выбрать из списка, предоставленного R с помощью функции colors().
  4. Соединение точек линиями. Много раз необходимо соединить отображаемые точки линиями разного типа. Это можно сделать с помощью атрибута type функции plot. Атрибут type со значением «p» относится только к точкам, а «l» — только к линии. Точно так же значения «b» и «o» относятся к линиям, соединяющим точки и точки наложения соответственно. Чтобы получить гистограмму, похожую на отображение, используется параметр «h», а параметр «s» используется для параметра шага.
  5. Изменение линий. Тип линии можно указать с помощью параметра lty (диапазон от 0 до 6), а ширина линии задается с помощью параметра lwd.

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

Мы начнем с создания графика синусоиды. Пусть x будет вектором последовательности значений от -pi до pi с интервалом 0,1, а y содержит соответствующие значения синуса x. Теперь попробуйте построить график y против x.

x=seq(-pi,pi,0.1)
y=sin(x)
plot(x,y)

Давайте теперь попробуем изменить символы и цвета.

plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))

Теперь мы позволяем компилятору выбирать из 3 разных символов и 4 разных цветов для маркировки графика. Давайте посмотрим, как это получилось.

R также позволяет объединять несколько графиков в одно изображение для удобства просмотра с помощью функции par(). Нам нужно только установить пробел перед вызовом функции построения графика на нашем графике.

#Set a plotting window with one row and two columns.
par(mfrow=c(1,2))
plot(x,y,type='l')
plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))

Ниже проиллюстрировано еще несколько графиков с использованием различных вариантов из приведенного выше.

#Set space for 2 rows and 3 columns.
par(mfrow=c(2,3))

#Plot out the graphs using various options.
plot(x,cos(x),col=c('blue','orange'),type='o',pch=19,lwd=2,cex=1.5)

plot(x,x*2,col='red',type='l')

plot(x,x^2/3+4.2, col='violet',type='o',lwd=2,lty=1)

plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3,col='pink',lwd=4)

plot(x<-seq(1,10,0.5),50*x/(x+2),col=c('green','dark green'),type='h')

plot(x,log(x),col='orange',type='s')

Результирующий график выглядит следующим образом.

Добавление дополнительной информации к графикам с помощью функции plot() в R

Графики выглядят более полными, когда есть примечания и поясняющая их информация. К ним относятся заголовок диаграммы и осей, легенда графика. Иногда потребуется даже пометить точки данных. Давайте посмотрим, как мы добавляем их к графикам в R.

  1. Основной заголовок добавляется с помощью основного параметра в функции сюжета. Шрифт, цвет и размер можно настроить с помощью файлов font.main, col.main и cex.main соответственно.
  2. Названия осей предоставляются с использованием атрибутов xlab и ylab. Их можно настроить с помощью файлов font.lab, col.lab и cex.lab, как указано выше.
  3. Вы также можете добавить дополнительный текст внутрь графика с помощью атрибута text, указав используемый текст и отображаемые координаты.
  4. Текстовый атрибут также можно использовать для маркировки точек данных. Текст в этом случае представляет собой вектор меток, а не строку.
  5. Легенду можно добавить к диаграмме с помощью функции R legend(). Легенда принимает в качестве входных данных координаты, текст и интерпретируемые символы.

Рассмотрим примеры, иллюстрирующие это.

#Displaying the title with color
plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lty=3, col='pink',lwd=4,main="This is a graph",col.main='blue')
#Same graph with xlabel and ylabel added.

> plot(c(1,3,5,7,9,11),c(2,7,5,10,8,10),type='o',lt=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")

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

labelset <-c('one','three','five','seven','nine','eleven')
x1<- c(1,3,5,7,9,11)
y1 <- c(2,7,5,10,8,10)
plot(x1,y1,type='o',lty=3,col='pink',lwd=4,main="This is a graph",col.main='blue',xlab="Time",ylab="Performance")
text(x1+0.5,y1,labelset,col='red')

Наконец, давайте добавим легенду к приведенному выше графику, используя функцию legend().

> legend('topleft',inset=0.05,"Performace",lty=3,col='pink',lwd=4)

Позиция может быть указана либо координатами x и y, либо с помощью позиции, такой как «вверху слева» или «внизу справа». Вставка означает перемещение поля легенды немного внутрь графика. Получившийся график теперь имеет легенду.

Наложение графиков

R также позволяет отображать два графика друг над другом вместо создания нового окна для каждого графика. Это делается путем повторного вызова функции lines() для второго графика, а не plot(). Они наиболее полезны при сравнении метрик или различных наборов значений. Давайте посмотрим на пример.

x=seq(2,10,0.1)
y1=x^2
y2=x^3
plot(x,y1,type='l',col='red')
lines(x,y2,col='green')
legend('bottomright',inset=0.05,c("Squares","Cubes"),lty=1,col=c("red","green"),title="Graph type")

Добавление линий к графику

Прямые линии можно добавить к существующему графику с помощью простой функции abline(). Функция abline() принимает 4 аргумента: a, b, h и v. Переменные a и b представляют наклон и точку пересечения. H представляет точки y для горизонтальных линий, а v представляет точки x для вертикальных линий.

Давайте рассмотрим пример, чтобы прояснить это. Попробуйте выполнить эти три оператора после построения приведенного выше графика для квадратов и кубов.

abline(a=4,b=5,col='blue')
abline(h=c(4,6,8),col="dark green",lty=2)
abline(v=c(4,6,8),col="dark green",lty=2)

Первая синяя линия строится с заданным наклоном и точкой пересечения. Следующие наборы из трех горизонтальных и вертикальных линий рисуются с указанными значениями x и y в стиле пунктирной линии, как указано lty=2.

Это охватывает основы функции построения графика в R. В сочетании с другими пакетами, такими как ggplot2, R создает наиболее презентабельную и динамичную графику, как мы увидим в следующих руководствах.