Как изменить размер и сохранить графики в формате png?

#r #plot

#r #график

Вопрос:

Я хотел бы отобразить результаты квантильной регрессии, но не могу:

  1. управляйте размерами графиков и
  2. сохраните графики в формате png.

Вот мой код:

 require(quantreg)
data(engel)
attach(engel)
xx <- income - mean(income)
zz <- c(120, diff(income))
fit1 <- summary(rq(foodexp~xx zz, tau=2:98/100))
  

Затем:

 png('res.png')
plot(fit1, mfrow=c(1,2))
  

В файле res.png сохраняется только график zz.. Есть ли какой-либо способ сохранить графики в отдельных файлах (два и один)?
и как мне контролировать ширину / высоту графиков? Мне нравится, чтобы все отдельные графики имели ширину = высоту (квадрат), когда я сохраняю их в файле .png?

Комментарии:

1. Почему понижение? Это кажется разумным вопросом новичка…

2. Я изменил заголовок, чтобы отразить реальный вопрос. Это должно помочь в будущем поиске по этой теме.

3. Возможно, хотя, похоже, что это, по крайней мере, такой же вопрос о манипулировании выводом plot.summary.rqs , как и об изменении размера графиков PNG в целом ….

Ответ №1:

Вы можете управлять размерами изображения с помощью png аргумента.

 png("image.png", width = 800, height = 600)
plot(...)
dev.off()
  

Чтобы «закончить» изображение, используйте dev.off .

Ответ №2:

Для разделения графиков:

 plot(fit1,parm=1:2)
plot(fit1,parm=3)
  

Обратите внимание, что вы могли бы найти ответ, внимательно прочитав ?plot.summary.rqs , но это, возможно, было неочевидно: чтобы знать, где искать, вам нужно было бы сделать class(fit1) , чтобы выяснить, какой plot метод использовался.

Ответ Романа учитывает размер изображения.

Комментарии:

1. спасибо. Пытаюсь использовать layout (matrix (c (1,2,3,0), 2, 2, byrow = TRUE)), а затем plot (fit1, parm = 1), plot (fit1, parm = 1), plot (fit1, parm = 2) и plot (fit1, parm = 3), но у меня не работает. Кроме того, есть ли способ сделать последний график «центрированным»?

2. Ваша проблема в том, что plot.summary.rqs внутреннее использование par(mfrow=...) , с которым не очень хорошо сочетается layout . Чего вы хотите достичь? Вы можете приблизиться к plot(fit1,mfrow=c(2,2)) , но если вы хотите получить эффект layout(mat=matrix(c(1,1,2,2,0,3,3,0),byrow=TRUE,nrow=2)); layout.show(3) , это будет сложнее… Хотя мне обычно нравится делать как можно больше в R, возможно, будет проще выводить графики отдельно, а затем упорядочивать их в любом конечном формате презентации (HTML, Word, LaTeX, что угодно …)