Увеличьте поля в графике png, используя par mar и oma, которые не работают

Я хочу увеличить расстояние между меткой оси Y и номерами осей (в примере: больше места между высотой и 1,5), а также иметь больше места слева от метки оси.

Изменение mar и oma в par ничего не делает. Некоторые похожие вопросы здесь и здесь, но поскольку у них не было воспроизводимого примера, это не решило мою проблему. Я не использую никаких пакетов.

Вот мои коды:

Height = c(3.1, 0.4, 0.9, 2.6, 1.4, 2.1)
Diameter = c(1.0, 0.4, 0.8, 1.1, 0.5, 0.4)
size.data = data.frame(Height, Diameter)

par(mfrow = c(1, 1), mar = c(4, 5, 6, 1), oma = c(0.5, 1, 1, 0.5), mgp = c(2.2, 0.7, 0))
png('Figure.1.png', width = 2800, height = 2400, res = 220)
plot(Height ~ Diameter, data = size.data, xaxs = 'i', yaxs = 'i',
ylim = c(0, 3), xlim = c(0, 1.5), bty = 'n', box = FALSE, 
xlab = 'Diameter', ylab = 'Height', cex = 1.3, cex.axis = 1.3, cex.lab = 1.3, cex.main = 1.3,
pch = 21, bg = 'white', las = 1)
#mtext('Height', side = 2, at = 101, line = 1.1, cex = 1.3)
box(bty = 'L')
dev.off()

par(mfrow = c(1, 1), mar = c(4, 10, 6, 1), oma = c(0.5, 4, 1, 0.5), mgp = c(2.2, 0.7, 0))
png('Figure.2.png', width = 2800, height = 2400, res = 220)
plot(Height ~ Diameter, data = size.data, xaxs = 'i', yaxs = 'i',
ylim = c(0, 3), xlim = c(0, 1.5), bty = 'n', box = FALSE, 
xlab = 'Diameter', ylab = 'Height', cex = 1.3, cex.axis = 1.3, cex.lab = 1.3, cex.main = 1.3,
pch = 21, bg = 'white', las = 1)
#mtext('Height', side = 2, at = 101, line = 1.1, cex = 1.3)
box(bty = 'L')
dev.off()

Изменение mar и oma ничего не делает и генерирует точно такой же график!

Фигура 1

Рис.1

Фигура 2

Рис.2

Я попытался установить метку оси Y отдельно, используя mtext, но из-за недостаточного запаса, который я пытаюсь изменить, он также не отображался. Я не уверен, какую основную вещь мне не хватает, и я ценю любую помощь.


person owl    schedule 16.07.2020    source источник
comment
От par: Каждое устройство [например. png] имеет свой набор графических параметров. Таким образом, png сбрасывает par.   -  person Henrik    schedule 16.07.2020
comment
В этом есть смысл! Спасибо, что добавили это.   -  person owl    schedule 16.07.2020
comment
Люди были укушены раньше: Установить поле графика в устройстве png; )   -  person Henrik    schedule 16.07.2020
comment
Ах, я не видел этот пост, так как мне не приходило в голову, что он связан с png(). Трудно подобрать хорошие ключевые слова для поиска вопросов, связанных с R (и заголовков, когда я публикую вопросы).   -  person owl    schedule 16.07.2020


Ответы (1)


Вы должны звонить par после звонка png.

png('Figure.1.png', width = 2800, height = 2400, res = 220)
par(mfrow = c(1, 1), mar = c(4, 5, 6, 1), oma = c(0.5, 1, 1, 0.5), mgp = c(2.2, 0.7, 0))

А ТАКЖЕ

png('Figure.2.png', width = 2800, height = 2400, res = 220)
par(mfrow = c(1, 1), mar = c(4, 10, 6, 1), oma = c(0.5, 4, 1, 0.5), mgp = c(2.2, 0.7, 0))

Тогда графики выглядят так:

Рисунок 1

Рисунок 2

person G5W    schedule 16.07.2020
comment
Ха! Я знал, что это что-то очень простое, если вы можете понять это. Спасибо, сам бы не разобрался. - person owl; 16.07.2020