Tôi đang cố gắng sử dụng ggplot để vẽ biểu đồ so sánh giá trị tuyệt đối của hai biến và cũng hiển thị tỷ lệ giữa chúng. Vì tỷ lệ này là đơn vị và các giá trị không phải là, tôi không thể hiển thị chúng trên cùng trục y, vì vậy tôi muốn ngăn xếp theo chiều dọc dưới dạng hai biểu đồ riêng biệt với các trục x được căn chỉnh.Căn chỉnh nhiều biểu đồ ggplot có và không có chú thích
Đây là những gì tôi đã có cho đến nay:
library(ggplot2)
library(dplyr)
library(gridExtra)
# Prepare some sample data.
results <- data.frame(index=(1:20))
results$control <- 50 * results$index
results$value <- results$index * 50 + 2.5*results$index^2 - results$index^3/8
results$ratio <- results$value/results$control
# Plot absolute values
plot_values <- ggplot(results, aes(x=index)) +
geom_point(aes(y=value, color="value")) +
geom_point(aes(y=control, color="control"))
# Plot ratios between values
plot_ratios <- ggplot(results, aes(x=index, y=ratio)) +
geom_point()
# Arrange the two plots above each other
grid.arrange(plot_values, plot_ratios, ncol=1, nrow=2)
Vấn đề lớn là truyền thuyết về quyền của cốt truyện đầu tiên làm cho nó một kích thước khác nhau. Một vấn đề nhỏ là tôi không muốn hiển thị tên trục x và đánh dấu trên ô trên cùng, để tránh lộn xộn và làm cho nó rõ ràng rằng họ chia sẻ cùng một trục.
tôi đã xem xét câu hỏi này và câu trả lời của mình:
Thật không may, không phải câu trả lời có hoạt động tốt đối với tôi. Faceting có vẻ không phù hợp, vì tôi muốn có vảy y hoàn toàn khác nhau cho hai đồ thị của tôi. Thao tác với các tham số được trả về bởi ggplot_gtable có vẻ hứa hẹn hơn, nhưng tôi không biết làm thế nào để có được xung quanh thực tế là hai đồ thị có số lượng ô khác nhau. Naively sao chép mã đó dường như không thay đổi kích thước biểu đồ kết quả cho trường hợp của tôi.
Đây là một câu hỏi tương tự:
The perils of aligning plots in ggplot
Câu hỏi bản thân dường như cho thấy một lựa chọn tốt, nhưng rbind.gtable phàn nàn nếu các bảng có số lượng khác nhau của cột, đó là trường hợp ở đây do sự huyền thoại. Có lẽ có một cách để xếp vào một cột trống trong bảng thứ hai? Hoặc một cách để ngăn chặn truyền thuyết trong đồ thị đầu tiên và sau đó thêm nó vào đồ thị kết hợp?
tôi muốn sử dụng phương pháp rbind_gtable, nhưng khi bạn lưu ý, bạn cần tạo gtables có cùng số lượng cols. Đó là [dễ dàng đủ mặc dù] (http://stackoverflow.com/questions/21529926/arrange-ggplots-together-in-custom-ratios-and-spacing/21531303#21531303), với gtable_add_cols – baptiste
[xem cái này quá] (http://stackoverflow.com/questions/25893673/how-to-arrange-plots-with-shared-axes/25923349#25923349) – baptiste
Tại sao không chỉ loại bỏ các tiêu đề khía cạnh khi tạo một âm mưu mặt? Xem câu trả lời của tôi cho một ví dụ. – Jaap