Ошибка в frame (): слишком большие поля - PullRequest
7 голосов
/ 28 июня 2011

Я пытаюсь создать матрицу графиков, но хочу, чтобы верхний левый угол был пустым.Поэтому я использую:

frame()

На что R отвечает:

Ошибка в frame(): слишком большое значение поля

I 'm, используя следующие две строки для создания моего макета:

plotIDs <- matrix(c(1:16), 4, 4, byrow = T);
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1));

, и это дает мне следующий макет:

4 by 4 layout with first row and col at half height

Если я затем выдаю frame()Я получаю вышеуказанную ошибку.Что я делаю неправильно?Я не вижу способа указать высоту или ширину для команды frame() (просто псевдоним для plot.new())?

Ответы [ 2 ]

9 голосов
/ 28 июня 2011

Сообщение означает, что поля на рисунке слишком велики и не оставляют достаточно места для графика.

Попробуйте уменьшить маржу:

op <- par(mar = par("mar")/2)
plot.new()  ## this is optional for this example
plot(1:10)
par(op)  ## tidy up to restore the default par setting

Вы можете начать с frame () или plot.new () или просто нанести изображение на первую панель. Обратите внимание, что вам нужно подумать о том, что является подходящим параметром поля для каждой из ваших разных панелей, а также точно настроить размеры этикеток и так далее.

Для полностью пустой панели вы также можете полностью убить поле:

op <- par(mar = rep(0, 4))
plot.new()
par(op)
7 голосов
/ 28 июня 2011

Вы можете оставить панели пустыми, используя макет, имея 0 в матрице, поэтому, если вы используете 0:15 вместо 1:16, то 1-я панель будет пустой без необходимости пропуска.Конечно, вы будете устанавливать поля и cex для остальных панелей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...