Экспорт нескольких графиков GLM в формате PNG? - PullRequest
5 голосов
/ 30 ноября 2011

ТАК,

Я пытаюсь экспортировать графики моей линейной модели.Когда я делаю это как PDF, PDF имеет четыре страницы и четыре разных графика.Когда я экспортирую в формате PNG, я получаю только первый график.Как экспортировать, чтобы получить все четыре графика в виде отдельных файлов PNG?

Что работало с PDF:

lrfitX11SUMS <- glm(X11SUMS ~ POLITA + CIRCULATION + COMPAPER + TrafficRankUS, data=NewspTest)

    summary(lrfitOTONE)
    pdf("/Users/william/Desktop/output/lmfitOTONE1.pdf")
    plot(lrfitOTONE)
    dev.off()

Что не работало с PNG (и потратил два часа на копаниев интернете и в документации по сюжету безрезультатно):

lrfitX11SUMS <- glm(X11SUMS ~ POLITA + CIRCULATION + COMPAPER + TrafficRankUS, data=NewspTest)

summary(lrfitOTONE)
png("/Users/william/Desktop/output/lmfitOTONE1.png", width=720, height=720, pointsize=16)
png("/Users/william/Desktop/output/lmfitOTONE2.png", width=720, height=720, pointsize=16)
png("/Users/william/Desktop/output/lmfitOTONE3.png", width=720, height=720, pointsize=16)
png("/Users/william/Desktop/output/lmfitOTONE4.png", width=720, height=720, pointsize=16)
plot(lrfitOTONE)
dev.off()

Как мне получить мои изображения?

Спасибо,

-Wm

Ответы [ 2 ]

8 голосов
/ 30 ноября 2011

PDF позволяет многостраничные документы.Изображение PNG принципиально несовместимо с этой идеей.Чтение ?png и понимание необходимости взглянуть на аргумент filename привели бы вас к подробностям ?postscript.

Вы хотите что-то вроде:

png("/Users/william/Desktop/output/lmfitOTONE%1d.png", width=720, 
    height=720, pointsize=16)
plot(lrfitOTONE)
dev.off()

где%1d в имени файла является подстановочным знаком, который расширяется до 1-значного числового значения, так что вы получите четыре цифры с именами, которые вы хотели.Ваши 4 звонка png() настроили четыре отдельных устройства, только последнее из которых использовалось и впоследствии было закрыто, остальные три оставались открытыми.

6 голосов
/ 30 ноября 2011

Примерно так:

setwd("/Users/william/Desktop/output/")
tmpf <- function(i) {
   png(paste("lmfitOTONE",i,".png",sep=""), width=720, height=720, pointsize=16)
}
wplot <- c(1,2,3,5) ## see ?plot.lm for definition of 'which'
for (i in seq_along(wplot)) {
   tmpf(i); plot(lrfitOTONE, which=wplot[i]); dev.off()
}

Ключ понимает, что plot.lm (это метод, используемый plot применительно к объекту glm, потому что glm является подклассомlm и не имеет своего собственного конкретного метода построения) отображает диагностические графики на основе аргумента which, а значение по умолчанию which такое же, как wplot выше.Итак, в основном: выясните, как создавать отдельные вспомогательные участки.

...