Суббота, 04.04.2026, 13:02Приветствуем вас Гость | RSS
Решение задач в среде R
Главная | Grid в R | Регистрация | Вход
» Меню сайта

» R практикум

» R кодинг

» Rmatem

» Опрос
Сколько вам лет?
Всего ответов: 9

» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Функция 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. Если используемая вами функция построения графиков (например, histboxplot или 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.

» Вход на сайт

» Поиск

» Работа с файлами

» Вся графика

» Гистогра́мма

» Теория вероятности

» Сравнение групп

» Дисперс анализ

» Блог

» Календарь
«  Апрель 2026  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930

» Архив записей


Copyright MyCorp © 2026
uCoz