Ответ 1
Аргумент panel.first
plot()
может принимать список или вектор функций, чтобы вы могли нанести туда abline()
.
plot(1:4, panel.first =
c(abline(h = 1:4, lty = 2, col = 'grey')
,abline(v = 1:4, lty = 2, col = 'grey')))
Когда я рисую линии сетки на графике с использованием abline()
, линии сетки нарисованы над данными.
Есть ли способ рисовать строки abline()
за данными? Я чувствую, что это будет выглядеть лучше.
Пример:
x <- seq(0, 10)
y <- x
plot(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
Созданный сюжет имеет серые линии сетки, проходящие по данным (красная линия). Я бы хотел, чтобы красная линия была поверх серых линий.
Аргумент panel.first
plot()
может принимать список или вектор функций, чтобы вы могли нанести туда abline()
.
plot(1:4, panel.first =
c(abline(h = 1:4, lty = 2, col = 'grey')
,abline(v = 1:4, lty = 2, col = 'grey')))
Используйте plot()
, чтобы настроить окно построения графика, но используйте type = "n"
, чтобы не создавать никаких данных. Затем выполните ваши вызовы abline()
или используйте grid()
, а затем постройте данные, используя любую низкоуровневую функцию (здесь points()
отлично).
x <- seq(0, 10)
y <- x
plot(x, y, type = "n")
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
points(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
или
## using `grid()`
plot(x, y, type = "n")
grid()
points(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
Подробнее о том, как указать сетку в соответствии с вашей версией abline()
, см. ?grid
.
Сначала создайте график с типом = "n", чтобы установить координаты. Затем поместите в линии сетки, затем зарисуйте снова с вашим обычным типом графика:
plot(x, y, col = 'red', type = 'n', lwd = 3, pch = 15)
abline(h = seq(0, 10, .5), col = 'lightgray', lty = 3)
abline(v = seq(0, 10, .5), col = 'lightgray', lty = 3)
par(new=TRUE)
plot(x, y, col = 'red', type = 'o', lwd = 3, pch = 15)
Я признаю, что я всегда считал, что имя для этого параметра par
было "назад".
Другим способом создания линий сетки является установка tck=1
при построении графика или в функции axis
(вы все равно можете построить точки с помощью points
после создания линий сетки.