Bạn có thể thay đổi tùy chọn bố cục của từng ggplot bằng cách sử dụng ggplot_gtable
, sau đó hiển thị tất cả các ô bằng cách sử dụng grid.arrange
.
library(ggplot2)
library(gridExtra)
## create a dummy ggplot
(g1 <- ggplot(mtcars, aes(wt, mpg)) +
geom_text(aes(label=rownames(mtcars)), size=6, angle=45) +
theme(plot.margin = unit(rep(1, 4), "cm")))
Rõ ràng là nhãn văn bản không mở rộng ra ngoài khu vực ô. Nhưng đoạn mã sau cho phép chỉ là:
gg_table <- ggplot_gtable(ggplot_build(g1))
gg_table$layout$clip[gg_table$layout$name=="panel"] <- "off"
grid.draw(gg_table)
Tạo một gg_table cho mỗi bảng, sau đó sử dụng grid.arrange
để hiển thị tất cả:
grid.arrange(gg_table, gg_table, gg_table, gg_table, ncol=2)
Tôi biết điều này là nhiều lao động, nhưng bạn có thể viết một hàm để tạo nhiều ggplots và gg_tables để tiết kiệm thời gian.
Nguồn
2014-07-22 13:42:07
Bạn có thể thử đối số 'expand' thành' scale_x_discrete' và/hoặc 'scale_y_continuous'. Phải mất một vector số chiều dài 2, đầu tiên là một yếu tố để mở rộng và thứ hai là một mở rộng phụ gia. Hãy thử các giá trị khác nhau để xem những gì hoạt động tốt. –
Tôi muốn wordcloud của Fellow tương thích với ggplot2 như là phiên bản cập nhật của anh ấy cụ thể với điều này: http://blog.fellstat.com/?p=248 –
@BrianDiggs Cảm ơn lời khuyên đó. 'expand' dường như làm thủ thuật, mặc dù tôi nghĩ rằng một số chỉnh sửa phong cách sau đó được yêu cầu như là kết quả ... Tôi đang cố gắng' theme_bw() 'để bắt đầu với ... – psychemedia