R Language
Основание
Поиск…
параметры
параметр | подробности |
---|---|
x | переменная оси x. Может поставлять либо data$variablex либо data[,x] |
y | переменная оси y. Может предоставлять data$variabley или data[,y] |
main | Основное название участка |
sub | Дополнительный субтитр графика |
xlab | Ярлык для оси x |
ylab | Обозначение для оси y |
pch | Целочисленный символ или символ, обозначающий символ построения |
col | Целое или строковое обозначение цвета |
type | Тип участка. "p" для точек, "l" для строк, "b" для обоих, "c" для одной только линии "b" , "o" как для «overplotted», "h" для «гистограммы» (например, или «высокая плотность») вертикальные линии, "s" для ступеней лестницы, "S" для других шагов, "n" для без заграждения |
замечания
Элементы, перечисленные в разделе «Параметры», представляют собой небольшую часть hte возможных параметров, которые могут быть изменены или заданы с помощью par
функции. См par
для более полного списка. Кроме того, все графические устройства, включая системные интерактивные графические устройства, будут иметь набор параметров, которые могут настраивать вывод.
Основной участок
Основной сюжет создается вызовом plot()
. Здесь мы используем встроенный кадр данных о cars
который содержит скорость автомобилей и расстояния, снятые для остановки в 1920-х годах. (Чтобы узнать больше о наборе данных, используйте справку (автомобили)).
plot(x = cars$speed, y = cars$dist, pch = 1, col = 1,
main = "Distance vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
Мы можем использовать многие другие варианты кода, чтобы получить тот же результат. Мы также можем изменить параметры для получения разных результатов.
with(cars, plot(dist~speed, pch = 2, col = 3,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance"))
Дополнительные возможности могут быть добавлены к этому графику, вызывая points()
, text()
, mtext()
, lines()
, grid()
и т. Д.
plot(dist~speed, pch = "*", col = "magenta", data=cars,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")
Matplot
matplot
полезен для быстрой matplot
нескольких наборов наблюдений от одного и того же объекта, особенно из матрицы, на том же графике.
Вот пример матрицы, содержащей четыре набора случайных ничьих, каждая из которых имеет другое среднее значение.
xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
# [,1] [,2] [,3] [,4]
# [1,] -3.072793 -2.53111494 0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126 1.9586467 5.268474
# [4,] -3.431133 -2.02626870 1.1153643 3.170689
# [5,] -4.532925 0.02164187 0.9783948 3.162121
# [6,] -2.169391 -1.42699116 0.3214854 4.480305
Один из способов построения всех этих наблюдений на одном и том же графике состоит в том, чтобы сделать один вызов plot
за которым следуют еще три points
или lines
.
plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')
Однако это и утомительно, и вызывает проблемы, потому что, между прочим, по умолчанию пределы оси фиксируются plot
чтобы соответствовать только первому столбцу.
Гораздо удобнее в этой ситуации использовать функцию matplot
, которая требует только одного вызова и автоматически заботится о границах оси и изменяет эстетику для каждого столбца, чтобы сделать их различимыми.
matplot(xmat, type = 'l')
Обратите внимание, что по умолчанию matplot
варьируется как цвет ( col
), так и lty
линии ( lty
), потому что это увеличивает количество возможных комбинаций до их повторения. Однако любая (или обе) из этих эстетик могут быть привязаны к одному значению ...
matplot(xmat, type = 'l', col = 'black')
... или пользовательский вектор (который будет перерабатываться в число столбцов, следуя стандартным правилам утилизации векторных векторов).
matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))
Стандартные графические параметры, включая main
, xlab
, xmin
, работают точно так же, как и для plot
. Подробнее об этом см. ?par
Подобно plot
, если задан только один объект, matplot
предполагает, что он является переменной y
и использует индексы для x
. Однако x
и y
могут быть указаны явно.
matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')
Фактически, и x
и y
могут быть матрицами.
xes <- cbind(seq(0, 10, length.out = 100),
seq(2.5, 12.5, length.out = 100),
seq(5, 15, length.out = 100),
seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')
Гистограммы
Гистограммы позволяют использовать псевдо-график лежащего в основе распределения данных.
hist(ldeaths)
hist(ldeaths, breaks = 20, freq = F, col = 3)
Объединение сюжетов
Часто полезно комбинировать несколько типов графиков в одном графике (например, Barplot рядом с Scatterplot.) R делает это легко с помощью функций par()
и layout()
.
par()
par
использует аргументы mfrow
или mfcol
для создания матрицы nrows и ncols c(nrows, ncols)
которая будет служить сеткой для ваших графиков. В следующем примере показано, как объединить четыре графика в одном графике:
par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
layout()
layout()
более гибкий и позволяет указать местоположение и размер каждого графика в конечном комбинированном графике. Эта функция ожидает матричный объект как вход:
layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
Плотность
Очень полезным и логичным продолжением гистограмм было бы построение сглаженной функции плотности случайной величины. Основной сюжет, созданный командой
plot(density(rnorm(100)),main="Normal density",xlab="x")
будет выглядеть
Вы можете наложить гистограмму и кривую плотности с помощью
x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")
который дает
Эмпирическая функция кумулятивного распределения
Очень полезным и логичным продолжением гистограмм и графиков плотности будет Эмпирическая функция кумулятивного распределения. Для этой цели мы можем использовать функцию ecdf()
. Основной сюжет, созданный командой
plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")
Начало работы с R_Plots
- разброс точек
У вас есть два вектора, и вы хотите их построить.
x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)
Если вы хотите создать график, который имеет y_values
по вертикальной оси и x_values
по горизонтальной оси, вы можете использовать следующие команды:
plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot
Вы можете набрать « ?plot()
в консоли, чтобы узнать о дополнительных параметрах.
- Boxplot
У вас есть некоторые переменные, и вы хотите изучить их распределения
#boxplot is an easy way to see if we have some outliers in the data.
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers
boxplot(z) # the two points are the outliers of variable z.
- Гистограммы
Легкий способ рисования гистограмм
hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
- Круговые диаграммы
Если вы хотите визуализировать частоты переменной, просто нарисуйте пирог
Сначала мы должны генерировать данные с частотами, например:
P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above