2016-08-11 25 views
12

Tôi đang tạo một phân tán bằng cách sử dụng ggplot trong R (phiên bản R 3.2.1). Tôi muốn lưu biểu đồ dưới dạng hình ảnh tiff trong 300 DPI để xuất bản nó trong một tạp chí. Tuy nhiên, mã của tôi bằng cách sử dụng ggsave hoặc tiff() với dev.off dường như không hoạt động và chỉ lưu nó trong 96 DPI. Mọi sự trợ giúp sẽ rất được trân trọng!! Dưới đây là mẫu mã của tôi sử dụng cả hai phương pháp:Lưu hình ảnh có độ phân giải cao trong R

library(ggplot2) 

x <- 1:100 
y <- 1:100 

ddata <- data.frame(x,y) 

library(ggplot2) 

#using ggsave 
ggplot(aes(x, y), data = ddata) + 
    geom_point() + 
    geom_smooth(method=lm, fill = NA, fullrange=TRUE, color = "black") 

ggsave("test.tiff", units="in", width=5, height=4, dpi=300, compression = 'lzw') 

#using tiff() and dev.off 
tiff('test.tiff', units="in", width=5, height=4, res=300, compression = 'lzw') 

ggplot(aes(x, y), data = ddata) + 
    geom_point() + 
    geom_smooth(method=lm, fill = NA, fullrange=TRUE, color = "black") 

dev.off() 

Đầu ra là 96 DPI có chiều rộng 1500 pixel và chiều cao 1200 pixel.

+0

Bạn có thể cần đặt chiều cao và chiều rộng (và đơn vị) –

+1

Mã hoạt động với dữ liệu mô phỏng! Vấn đề nên ở cốt truyện của bạn, vì vậy một ví dụ tái sản xuất là cần thiết – Robert

+0

Đồng ý. Hoạt động tốt cho tôi - kích thước pixel của đầu ra của bạn là gì và ggplot nói gì khi bạn gọi 'ggsave()'? –

Trả lời

11

Bạn có thể sử dụng tính năng này. Thêm mã ggplot của bạn sau dòng mã đầu tiên và kết thúc bằng dev.off().

tiff('test.tiff', units="in", width=5, height=5, res=300) 
#insert ggplot code 
dev.off() 

res=300 chỉ định rằng bạn cần một con số có độ phân giải 300 dpi. Tệp hình có tên 'test.tiff' được lưu trong thư mục làm việc của bạn.

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