Ответ 1
Одна проблема принципиально не получается, что делает plt
. Из ?par
имеем:
‘plt’ A vector of the form ‘c(x1, x2, y1, y2)’ giving the
coordinates of the plot region as fractions of the current
figure region.
Итак, ваша область сюжета имеет нулевой размер, если вы делаете par(plt=c(1, 1, 1, 1))
, так что, похоже, это не путь. Это связано с тем, что область фигуры содержит область сюжета.
Этот сюжет, кажется, охватывает весь регион, без полей:
op <- par(mar = rep(0, 4))
plot(1:10)
par(op)
он так хорошо ее охватывает, что вы не можете видеть оси или поле:
Это предполагает значение по умолчанию для 0 внешнего поля (oma
). Это то, что вы искали?
Мы видим, что только корректировка полей графика, как и выше, мы также изменяем параметр plt
как побочный эффект:
> par("plt")
[1] 0.1173174 0.9399106 0.1457273 0.8828467
> op <- par(mar = rep(0, 4))
> par("plt")
[1] 0 1 0 1
> par(op)
> par("plt")
[1] 0.1173174 0.9399106 0.1457273 0.8828467
указывая на то, что просто установить поля графика достаточно, чтобы получить область графика/фигуры, охватывающую все устройство.
Конечно, по-прежнему имеется немного внутренней прокладки, которая обеспечивает, чтобы диапазоны осей были немного большими, чем диапазон данных в координатах x
и y
. Но вы можете контролировать это с помощью xaxs
и yaxs
--- см. ?par
Обновление:. Когда OP показал вид, который они пытаются создать без полей, я могу предоставить воспроизводимый пример:
set.seed(1)
dat <- matrix(rnorm(100*100), ncol = 100, nrow = 100)
layout(matrix(1:2, ncol = 2))
image(dat)
op <- par(mar = rep(0, 4))
image(dat)
par(op)
layout(1)
что дает для сравнения:
и показывает только область полного графика: