2012-05-08 23 views
16

Tôi đang tạo ra toàn bộ các biểu đồ và muốn xuất các biểu đồ được tạo dưới dạng PDF. Có thể nhấp vào 'xuất' trong tab Lô trong rstudio và chọn thủ công "lưu âm mưu dưới dạng PDF", tất nhiên, và tôi không muốn bao bọc từng phần riêng lẻ trong các phần của tôi trong pdf()/dev.off().Có lệnh nào để xuất lô đất hiện tại không?

Lý tưởng nhất là tôi muốn một hàm có thể lấy lô được hiển thị hiện tại trong RStudio và lưu nó với các tham số tôi muốn (định dạng/tên tệp/chiều rộng/chiều cao).

Suy nghĩ?

Cập nhật

Theo đề nghị của @ naught101 của - một 5x7 (inch) tập tin pdf mà là một kích thước thuận tiện để được dán vào một tài liệu A4 Word, các công việc sau tốt:

dev.copy2pdf(file="example.pdf", width = 7, height = 5) 

Hơn thế nữa, như một chức năng một cách dễ dàng gọi với kích thước mặc định:

dopdf <- function(filename = "dopdf.pdf", pdf.width = 7, pdf.height = 5) { 
dev.copy2pdf(file=filename, width = pdf.width, height = pdf.height) 
} 

Trong khi sử dụng ggplot2 sẽ cho phép tôi tiết kiệm bằng cách sử dụng chức năng ggsave, dev.copy2pdf là một giải pháp chung tốt (trả lời câu hỏi ban đầu của tôi).

+0

Cung cấp ví dụ có thể tái sản xuất. Tại sao không có một pdf() ở đầu tập lệnh của bạn và một dev.off() ở cuối tập lệnh của bạn? Tất cả các ô được tạo sẽ được đặt vào một bản pdf đơn giản? –

+0

Kịch bản lệnh R mà tôi đang làm việc với việc tạo ra hơn 15 ô được nhúng vào một tài liệu Word; kích thước của chúng thay đổi (do đó một PDF duy nhất sẽ không giúp ích gì) và tôi muốn liên kết các tệp PDF cốt truyện khi được nhúng trong tài liệu để chúng cập nhật khi tôi thay đổi tệp PDF (vì vậy cần tệp riêng lẻ). Thêm vào đó, điều này có rất nhiều việc phải làm với quy trình làm việc - tôi tinh chỉnh rất nhiều trong khi khám phá dữ liệu (trực tiếp từ biểu mẫu GDocs) và muốn có thể sử dụng phiên bản cuối cùng mà tôi tìm thấy trước mặt mình. Ví dụ, bất kỳ lô đất nào sẽ làm ... – Simbamangu

+0

tại sao bạn không sử dụng khối png() & dev.off() trước mỗi ô? Tôi nghĩ bạn cần phải nêu rõ câu hỏi của bạn tốt hơn. – nav

Trả lời

10

Tôi nghĩ bạn đang tìm kiếm dev.copy2pdf. Điều này cho phép bạn sao chép thiết bị hiện tại sang pdf, sử dụng cùng các đối số như pdf(). Hoạt động tốt cho các chức năng vẽ sơ đồ cơ sở như đối với ggplot2, (và bất kỳ thư viện âm mưu nào khác sử dụng các thiết bị vẽ sơ đồ grDevice tiêu chuẩn, theo giao diện của nó).

+0

Hoàn hảo! Chính xác những gì tôi đã sau. – Simbamangu

7

Nếu bạn sử dụng ggplot2, bạn có thể sử dụng chức năng ggsave để lưu lô hiện tại. Chức năng này cho phép bạn chọn chiều rộng, heigth vv của cốt truyện (PDF, png, hoặc khác). Khi không sử dụng ggplot2, chức năng savePlot có thể được sử dụng để có chức năng tương tự, mặc dù trang hướng dẫn cho biết nó chỉ hoạt động trên các thiết bị cairo X11.

+0

'savePlot' dường như không hoạt động trong trường hợp này (RStudio trên OSX 10.7), thật không may; trông giống như hàm ggsave sẽ hoạt động tốt nếu tôi đã làm tất cả mọi thứ trong ggplot2 (mà bây giờ tôi đang đọc lên). – Simbamangu

Các vấn đề liên quan