Удаление всех полей в графическом устройстве R

Итак, у меня проблемы с избавлением от всего поля графического устройства. Я установил марш на 0, но все еще есть некоторое постоянное пространство вокруг края. Например:

plot.new()
par(mar=c(0,0,0,0))
plot.window(c(0,1),c(0,1))
points(c(1,1,0,0),c(1,0,1,0))

enter image description here

Я хотел бы, чтобы точки были центрированы на крайних краях сюжета. Есть ли par, который мне не хватает?

Ответ 1

Это управляется аргументами до? par xaxs и yaxs. Они передаются аргументом... plot.window и другими функциями графика.

plot.window(c(0,1),c(0,1), xaxs = "i", yaxs = "i")

На странице справки для? par значение по умолчанию "r" расширяет диапазон данных на 4 процента, а "i" точно использует диапазон данных:

Стиль "r" (обычный) сначала расширяет диапазон данных на 4 процентов на каждом конце, а затем находит ось с красивыми метками который вписывается в расширенный диапазон. Стиль "i" (внутренний) просто находит ось с красивыми метками который соответствует исходному диапазону данных.

Ответ 2

Как побочный комментарий: чтобы избавиться от пробелов в барплоте, вам нужно использовать ylim вместо yaxs, чтобы полностью избавиться от поля:

par(mar=c(0, 0, 0, 0)); barplot(1:10, xaxs="i", ylim=c(0,10), space=0)