Tôi đang thực hiện phân tích thăm dò dữ liệu của mình và cần vẽ đồ thị bằng nhiều ggplot. Số lượng đồ họa thực sự rất lớn (206 trạm), và tôi muốn vẽ chúng trong 1 cột so với 8 hàng trên mỗi trang trên rất nhiều trang cần thiết. Tôi biết các chức năng như viewport hoặc grid.arrange, nhưng tôi không quản lý để làm cho chúng hoạt động trong trường hợp này. Tôi đã nhận thấy rằng bố trí() cũng không par (mfrow = c (8,1)) không làm việc với ggplot, nhưng tôi gửi một phần của mã nơi tôi bị mắc kẹt dưới đây. Bất kì sự trợ giúp nào đều được đánh giá cao!Nhiều đồ thị trên nhiều trang bằng ggplot
pdf('test.pdf', width=21, height=27)
par(mfrow=c(8,1))
for(i in levels(tab$Station))
{
print(ggplot(tab[tab$Station==i], aes(x=Date)) +
geom_line(aes(y=Tmin), col="blue", size=0.1) +
geom_line(aes(y=Tmax), col="red", size=0.1) +
geom_text(aes(x=as.Date('2010-01-01'), y=45), label=i) +
ylim(0, 45) +
scale_x_date(labels = date_format("%Y")) +
theme_bw() +
theme(
plot.background = element_blank()
,panel.grid.major = element_blank()
,panel.grid.minor = element_blank()
,panel.border = element_rect(color = 'black')
,panel.background = element_blank()
)
)
}
dev.off()
Xin chào Jose, bạn có nghĩ đây là một ví dụ có thể tái tạo không? Điều đó thường có nghĩa là cung cấp dữ liệu đồ chơi để chúng tôi có thể lấy mã và chạy nó. Thông thường, mọi người sử dụng hàm 'data()' để làm điều này. Ví dụ 'dữ liệu (mtcars)' tải rằng 'mtcars' data.frame vào bộ nhớ. – Statwonk
Câu trả lời của @baptiste có hoạt động không? –
Tôi biết đó là một câu hỏi cũ - nhưng hãy thử sử dụng hàm facet_wrap_paginate trong gói ggforce. Xem trợ giúp tại đây https://cran.r-project.org/web/packages/ggforce/ggforce.pdf đó là cách tôi giải quyết vấn đề tương tự của mình. –