png, pdf, ограничения полей tiff - PullRequest
0 голосов
/ 11 апреля 2020

Чтобы получить место для специального текста ylab, я использую mar=c(5,7,4,2). Это дает мне 7 строк для ylab. На устройстве (экране) по умолчанию все работает так, как ожидалось. Однако я не могу получить этот вывод на любое другое устройство, кроме экрана.

par(mar=c(5,7,4,2))
png(file="a.png", width=500, height=500)
plot(1,1,ylab="A very very long axis title\nthat need special care",xlab="",type="n")

Я проверил то же поведение с png, tiff, pdf. Кажется, что максимальный размер для печати в этих устройствах составляет 4. Все, что выходит за рамки этого числа, обрезается. То же самое происходит при построении xlabs, например, используя mgp=c(5,1,0). mgp=c(4,1,0) (строка 4) - это максимальная печатаемая строка на любом другом устройстве, кроме экрана.

Даже после обновления до последней версии R это поведение не изменяется, и оно одинаково на Windows и Ubuntu. .

Любой совет по поводу root причины такого поведения приветствуется.

1 Ответ

0 голосов
/ 11 апреля 2020

Проблема в порядке ваших высказываний. Вызов par() применяется к текущему устройству. Поскольку после этого вы открываете устройство png(), оно не имеет никакого эффекта. Просто поместите вещи в таком порядке, и они будут в порядке:

png(file="a.png", width=500, height=500)
par(mar=c(5,7,4,2))
plot(1,1,ylab="A very very long axis title\nthat need special care",xlab="",type="n")
dev.off()

Это дает это изображение в файле:

screen shot of a.png

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