Xuất biểu đồ sang tệp .eps với R


107

Làm cách nào để xuất biểu đồ sang tệp định dạng .eps? Tôi thường xuất biểu đồ của mình sang tệp .pdf (sử dụng hàm 'pdf') và nó hoạt động khá tốt. Tuy nhiên, bây giờ tôi phải xuất sang tệp .eps.


Bạn có thể thử tìm kiếm trong R bằng cách nhập ??eps. Bạn sẽ nhận được postscripttrang hoặc ít nhất ps.options(sẽ dẫn bạn đến postscript).
Roman Luštrik

Xem thêm pdf2ps để chuyển đổi tệp pdf sang ps. Cách sử dụng shell : $ pdf2ps plot.pdf, sẽ tạo plot.ps.
Paul Rougieux

Câu trả lời:


128

Cách dễ nhất mà tôi đã tìm thấy để tạo các mô tả sau là như sau, sử dụng setEPS()lệnh:

setEPS()
postscript("whatever.eps")
plot(rnorm(100), main="Hey Some Data")
dev.off()

3
Thật ngạc nhiên về mức độ hữu ích của điều này và tính năng ẩn của nó.
CompEcon

Vâng, lưu lại cho tôi rất nhiều ảnh chụp màn hình :)
chepukha

Cảm ơn bạn rất nhiều, tôi phải lấy biểu đồ ở dạng * .eps.
lbenitesanchez

50

Nếu bạn đang sử dụng ggplot2để tạo một hình, thì một ggsave(file="name.eps")cũng sẽ hoạt động.


Ah, đây chỉ là những gì tôi cần! Và bạn có thể sửa đổi kích thước như thế này:ggsave("name.eps", width = 20, height = 20, units = "cm")
DirtStats

31

Thiết postscript()bị cho phép tạo EPS, nhưng chỉ khi bạn thay đổi một số giá trị mặc định. Đọc ?postscriptđể biết chi tiết.

Đây là một ví dụ:

postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special")
plot(1:10)
dev.off()

Cảm ơn. Tôi am tryin' để sử dụng nó, nhưng có một lỗi: lề đồ thị quá lớn ...
the_drug

6
làm cho kích thước âm mưu lớn hơn: postscript("foo.eps", horizontal = FALSE, onefile = FALSE, paper = "special", height = 10, width = 10)ví dụ. Đơn vị tính bằng inch. Vấn đề là thiết bị bạn đang vẽ không đủ lớn để chứa lề của vùng âm mưu bạn đang sử dụng.
Gavin Simpson

1
Tôi cần * .eps đã xuất để hoạt động trong Microsoft Powerpoint, điều này không đúng như ban đầu. Sau một số thử nghiệm và gặp lỗi, tôi nhận thấy rằng tôi phải đặt thêm tham số colormodel="rgb"là postscript ().
agoldev

14

Một cách khác là sử dụng Thiết bị đồ họa SVG, PDF và PostScript dựa trên Cairographics. Bằng cách này bạn không cần phảisetEPS()

cairo_ps("image.eps")
plot(1, 10)
dev.off()

Đây là một gợi ý hữu ích. cairo_pskhác postscriptở chỗ nó hỗ trợ nhiều glyphs unicode hơn, nhưng có nhược điểm là tính bán trong suốt được xử lý kém và thường sẽ kích hoạt bitmap hơn là đầu ra vector.
ms609

4

Có, hãy mở một postscript()thiết bị có tên tệp kết thúc bằng .eps, thực hiện (các) âm mưu của bạn và gọi dev.off().

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.