Понимание функции 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.

Square plot in R

Изменение внешнего вида графика с помощью функции 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)
Sine wave

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

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

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

Colorful Sinewave

R also allows combining multiple graphs into a single image for our viewing convenience using the par() function. We only need to set the space before calling the plot function in our graph.

#Установите окно для построения с одним рядом и двумя столбцами.
par(mfrow=c(1,2))
plot(x,y,type='l')
plot(x,y,pch=c(4,5,6),col=c('red','blue','violet','green'))
Combining Plots In R

A few more graphs using various options from above are illustrated below.

#Установите пространство для 2 строк и 3 столбцов.
par(mfrow=c(2,3))

#Постройте графики с использованием различных параметров.
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')

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

Multiple Plots In R

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

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

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

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

#Отображение заголовка с цветом
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')
Graph With A Title
#Тот же график с добавленными метками осей X и Y.

> 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")
Graph With Title And Labels

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

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')
Graph With Data Labels

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

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

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

Graph With Legend

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

R also allows two graphs to be displayed on top of each other instead of creating a new window for every graph. This is done by calling a lines() function for the second graph rather than plot() again. These are most useful when performing comparisons of metrics or among different sets of values. Let us look at an example.

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")
Overlaid Graph With Legend

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

Прямые линии могут быть добавлены к существующему графику с использованием простой функции 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)
Graph With Lines

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

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

Source:
https://www.digitalocean.com/community/tutorials/plot-function-in-r