2011-11-29 13 views
5

SO,Xuất nhiều ô glm thành PNG?

Tôi đang cố xuất các lô của mô hình tuyến tính của mình. Khi tôi làm như PDF, PDF có bốn trang và bốn biểu đồ khác nhau. Khi tôi xuất dưới dạng PNG, tôi chỉ nhận được biểu đồ đầu tiên. Tôi làm cách nào để xuất tất cả bốn biểu đồ dưới dạng tệp PNG riêng biệt?

gì làm việc với PDF:

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

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

gì đã không làm việc với PNG (và dành hai giờ đào bới xung quanh trên internet và trong tài liệu cốt truyện không có kết quả):

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() 

Làm cách nào để tải hình ảnh của tôi?

Cảm ơn,

-Wm

Trả lời

6

Something như thế này:

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() 
} 

Điều quan trọng là nhận ra rằng plot.lm (đó là phương pháp được sử dụng bởi plot áp dụng cho một đối tượng glm, vì glm là một lớp con của lm và không có phương thức lô cụ thể riêng) hiển thị các ô chẩn đoán dựa trên đối số which và giá trị mặc định trong số which giống với wplot ở trên. Vì vậy, về cơ bản: tìm ra cách tạo ra các ô phụ riêng lẻ.

+0

+1 để biết thông tin về phương thức 'plot.lm' và cách vẽ từng số liệu riêng lẻ thông qua' which'. –

+0

THANK YOU SO MUCH !! – user1017124

+0

@ user1017124 - Trừ khi tôi hiểu sai, bạn có vẻ hài lòng;) Một cách khác để cho thấy đó là 'chấp nhận' một trong hai câu trả lời xuất sắc này, bằng cách nhấp vào dấu kiểm bên cạnh. Nhờ bạn cho câu hỏi của bạn và câu trả lời nó gây ra. –

8

PDF cho phép nhiều tài liệu. Hình ảnh PNG về cơ bản không tương thích với ý tưởng này. Đọc ?png và đánh giá cao sự cần thiết phải xem xét đối số filename sẽ hướng bạn đến ?postscript để biết chi tiết.

Bạn muốn một cái gì đó như:

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

nơi %1d trong tên tập tin là một ký tự đại diện mở rộng thành 1 chữ số giá trị số như vậy mà bạn nhận được bốn nhân vật với tên mà bạn muốn. 4 cuộc gọi của bạn tới png() thiết lập bốn thiết bị riêng biệt, chỉ có thiết bị thứ hai được sử dụng và sau đó đóng, ba thiết bị còn lại vẫn mở.

+0

tốt hơn tôi. –

+0

Xin lưu ý ý kiến ​​của Ben trong câu trả lời của ông về phương pháp thu thập cốt truyện để vẽ các ô riêng lẻ. Câu trả lời của tôi giả định màn hình không được chia thành nhiều bảng - mà nó không phải là trừ khi bạn đã làm bất cứ điều gì để làm cho nó như vậy. –