Создание окна графика определенного размера

Как я могу создать новое экранное окно графика R с определенной шириной и высотой (в пикселях и т. Д.)?


person Ryan R. Rosario    schedule 25.01.2010    source источник


Ответы (4)


Используйте 1_. (См. этот связанный вопрос.)

plot(1:10)
dev.new(width=5, height=4)
plot(1:20)

Чтобы быть более конкретным, какие единицы используются:

dev.new(width=5, height=4, unit="in")
plot(1:20)
dev.new(width = 550, height = 330, unit = "px")
plot(1:15)

edit дополнительный аргумент для Rstudio (май 2020 г.), (спасибо пользователю Soren Havelund Welling)

Для Rstudio добавьте dev.new(width=5,height=4,noRStudioGD = TRUE)

person Shane    schedule 25.01.2010
comment
Я думаю, что единицы измерения отличные от пикселей. Я попробовал этот пример, и он заморозил мою систему на 5 минут. В результате окно графика было огромным, как и все, что в нем отображалось. Это могут быть дюймы или что-то в этом роде ?? - person Ryan R. Rosario; 25.01.2010
comment
Я бы посоветовал взглянуть на ?Devices, потому что он будет зависеть от того, какое устройство вы используете. Но да, я думаю, что по умолчанию это дюймы. - person Shane; 25.01.2010
comment
Единицами измерения являются дюймы для экранного дисплея (например, windows или x11) и устройств векторного рисования (например, pdf, postscript) и в пикселях для устройств рисования растровых изображений (например, png, jpeg). Муинторы обычно отображают 72 или 96 пикселей на дюйм, печать на бумаге варьируется от 150 до 1200 пикселей на дюйм. - person Richie Cotton; 25.01.2010
comment
Спасибо за это объяснение. Интересно, а почему там несоответствие? Было бы более наглядно, если бы все было в пикселях. - person Shane; 25.01.2010
comment
если в Rstudio нет результата, попробуйте: dev.new (width = 5, height = 4, noRStudioGD = TRUE) - person Soren Havelund Welling; 08.12.2015
comment
Я люблю вас. Целый день искал это решение. - person Boromir; 26.01.2020
comment
Есть ли причина, по которой для этого нужен вызов dev.new, а не par? Аргументы din, fin и pin par выглядят уместными. - person J. Mini; 10.07.2021

Это будет зависеть от используемого вами устройства. Если вы используете устройство pdf, вы можете сделать это:

pdf( "mygraph.pdf", width = 11, height = 8 )
plot( x, y )

Затем вы можете разделить пространство в pdf, используя параметр mfrow следующим образом:

par( mfrow = c(2,2) )

Это делает PDF-файл с четырьмя панелями доступным для печати. К сожалению, некоторые устройства используют другие единицы измерения. Например, я думаю, что X11 использует пиксели, а я уверен, что pdf использует дюймы. Если вы просто хотите создать несколько устройств и построить для них разные схемы, вы можете использовать dev.new (), dev.list () и dev.next ().

Другие устройства, которые могут быть полезны, включают:

здесь .

person James Thompson    schedule 25.01.2010

Для сохранения графиков удобна функция ggsave(), которая может автоматически угадывать тип устройства на основе расширение файла и сглаживает различия между устройствами. Вы экономите с определенным размером и такими единицами:

ggsave("mtcars.png", width = 20, height = 20, units = "cm")

В R markdown размер рисунка можно указать по фрагменту:

```{r, fig.width=6, fig.height=4}  
plot(1:5)
```
person qwr    schedule 07.12.2018

Поскольку принятое решение @Shane не поддерживается в RStudio (см. здесь) на данный момент (сентябрь 2015 г.) я хотел бы добавить совет к ответу @James Thompson относительно рабочего процесса:

Если вы используете SumatraPDF в качестве средства просмотра, вам не нужно закрывать файл PDF перед созданием изменения к нему. Sumatra не помещает открытый файл в режим только для чтения и, таким образом, не предотвращает его перезапись. Следовательно, как только вы открыли свой PDF-файл с помощью Sumatra, изменения из RStudio (или любой другой R IDE) немедленно отображаются на Sumatra.

person ToJo    schedule 07.09.2015
comment
работал у меня либо в Rstudio, пока для noRStudioGD не было установлено значение TRUE, dev.new (width = 5, noRStudioGD = TRUE) - person Soren Havelund Welling; 08.12.2015
comment
Есть ли эквивалентная программа просмотра, которая работает для Mac таким образом? - person WetlabStudent; 08.01.2018