Функция grid в R
Функция grid в R предназначена для добавления сетки к существующему графику.
Она позволяет изменять количество разделов, в которых должна быть разделена каждая ось, с помощью аргументов nx и ny. Например, nx = 2 создаст только вертикальную линию.
Также можно изменить цвет, ширину и тип линий с помощью аргументов col, lwd и lty соответственно.
Вариант 1. Добавьте сетку по осям X и Y.
# Data
set.seed(132)
x <- rnorm(500)
plot(x, pch = 19, col = 4)
grid(nx = NULL, ny = NULL,
lty = 2, # Grid line type
col = "gray", # Grid line color
lwd = 2) # Grid line width
Вариант 2. Добавьте сетку только по оси Y.
# Data
set.seed(132)
x <- rnorm(500)
plot(x, pch = 19, col = 4)
grid(nx = NA,
ny = NULL,
lty = 2, col = "gray", lwd = 2)
Вариант 3. Добавьте сетку только по оси X.
# Data
set.seed(132)
x <- rnorm(500)
plot(x, pch = 19, col = 4)
grid(nx = NULL,
ny = NA,
lty = 2, col = "gray", lwd = 2)
Вариант 4. Настройте количество разделов с помощью аргументов nx и ny.
# Data
set.seed(132)
x <- rnorm(500)
plot(x, pch = 19, col = 4)
grid(nx = 2, # X-axis divided in two sections
ny = 3, # Y-axis divided in three sections
lty = 2, col = "gray", lwd = 2)
График поверх сетки
Возможно, вы заметили, что сетка накладывается поверх графика. Если вы хотите, чтобы сетка располагалась под графиком, вам нужно наложить график поверх сетки.
Вариант 1. Вы можете использовать plot.new() и par(new = TRUE). Однако сетка не будет соответствовать делениям оси.
# Data
set.seed(132)
x <- rnorm(500)
plot.new()
grid(nx = NULL, ny = NULL,
lty = 2, col = "gray", lwd = 2)
par(new = TRUE)
plot(x, pch = 19, col = 4)
Вариант 2. Вместо использования plot.new() вы можете построить график с помощью функции построения графиков:
# Data
set.seed(132)
x <- rnorm(500)
plot(x)
grid(nx = NULL, ny = NULL,
lty = 2, col = "gray", lwd = 2)
par(new = TRUE)
plot(x, pch = 19, col = 4)
Вариант 3. Если используемая вами функция построения графиков (например, hist, boxplot или barplot) поддерживает аргумент add, установите add = TRUE вместо par(new = TRUE) .
# Data
set.seed(132)
x <- rnorm(500)
hist(x)
grid(nx = NA, ny = NULL,
lty = 1, col = "gray", lwd = 1)
hist(x, col = 4,
add = TRUE)
Обратите внимание, что вы можете одновременно добавить цвет фона и сетку следующим образом:
# Data
set.seed(132)
x <- rnorm(500)
boxplot(x)
# Light gray background
rect(par("usr")[1], par("usr")[3],
par("usr")[2], par("usr")[4],
col = "grey")
# Add white grid
grid(nx = NULL, ny = NULL,
col = "#ebebeb", lwd = 2)
# Boxplot
boxplot(x, col = 4, add = TRUE)
Добавление сетки с помощью функции axis
Функция axis позволяет настраивать оси графиков. Однако если вы установите tck = 1 метки осей, они будут создавать сетку.
# Data
set.seed(132)
x <- rnorm(500)
plot(x, pch = 19, col = 4)
# Vertical grid
axis(1, tck = 1, lty = 2, col = "gray")
# Horizontal grid
axis(2, tck = 1, lty = 2, col = "gray")
# Grid below plot
par(new = TRUE)
plot(x, pch = 19, col = 4)
# Box of the plot
box()
Сетка с abline функцией
Как и axis , abline позволяет добавлять линии сетки для некоторых значений. Основное преимущество этого подхода в том, что он не перекрывает линию оси, поэтому вам не нужно использовать функцию box для её решения.
# Data
set.seed(132)
x <- rnorm(500)
plot(x)
# Vertical grid
abline(v = seq(0, 500, 100),
lty = 2, col = "gray")
# Horizontal grid
abline(h = seq(-3, 3, 1),
lty = 2, col = "gray")
# Grid below points
points(x, pch = 19, col = 4)
Выровнять сетку по отметкам
Если метки на графике отличаются от стандартных, вы можете выровнять их с помощью функций axis или abline на случай, если указание аргументов nx или ny функции grid не выровняет их.
# Data
set.seed(132)
x <- rnorm(500)
plot(x,
xaxp = c(100, 400, 10),
yaxp = c(-2, 2, 5))
# Vertical grid
axis(1,
at = seq(100, 400, by = 20),
tck = 1, lty = 2, col = "gray")
# Horizontal grid
axis(2,
at = seq(-2, 2, by = 0.8),
tck = 1, lty = 2, col = "gray")
# Box of the plot
box()
# Grid below points
points(x, pch = 19, col = 4)
То же результат можно получить , используя abline вместо axis.








