Установка размера холста в ggsave на фиксированную ширину при сохранении соотношения сторон графиков - PullRequest
0 голосов
/ 26 февраля 2019

Короче говоря, я делаю видео на YouTube для своих учеников и создаю много графики.До сих пор я импортировал изображения в премьеру, изменил их размер, а затем поместил отдельное белое фоновое изображение за графикой ggplot.Это немного утомительно, и я хотел бы иметь возможность экспортировать напрямую из R в соответствующий размер (1920x1080 p), поэтому мне не нужно изменять размер и добавлять фоновое изображение.

Мне удалось изменить размер изображения, но теперь оно растягивается:

enter image description here

Я хочу, чтобы оно выглядело так (япоместите рамку вокруг изображения и холста, чтобы было понятнее, где заканчивается сюжет и начинается фоновый холст):

enter image description here

Я знаю, что могу указатьвнешние поля (см. Как я могу контролировать размер холста в ggplot? ), но для этого потребуется установить внешние поля для каждого графика;Иногда у меня есть графики, которые шире, чем они высокие, а иногда у меня есть графики, которые выше, чем они широки.ggsave, похоже, уважает соотношение сторон и максимизирует одно или другое измерение.

Так как мне установить внешние поля при сохранении правильного соотношения сторон?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы можете установить размер панели на определенное значение,

library(egg)
library(ggplot2)
library(grid)

p <- ggplot() + labs(x = 'x title', y = 'y title')

ggsave('notset.png', p, width = 6.4, height = 3.6, units = 'in', dpi = 300)

ggsave('set.png', egg::set_panel_size(p, width=unit(4, "in"), height=unit(3, "in")), 
       width = 6.4, height = 3.6, units = 'in', dpi = 300)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...