2012-04-17 25 views
5

Xây dựng trên previous question Tôi muốn thêm nhãn trục thứ hai ở phía đối diện của ô.Làm cách nào để thêm nhãn trục thứ hai trong ggplot2?

Khung dữ liệu trông giống như:

test <- structure(list(characteristic = structure(c(1L, 2L, 3L, 1L, 2L 
), .Label = c("Factor1", "Factor2", "Factor3"), class = "factor"), 
    es = c(1.2, 1.4, 1.6, 1.3, 1.5), ci_low = c(1.1, 1.3, 1.5, 
    1.2, 1.4), ci_upp = c(1.3, 1.5, 1.7, 1.4, 1.6), label = structure(c(1L, 
    3L, 5L, 2L, 4L), .Label = c("1.2 (1.1, 1.3)", "1.3 (1.2, 1.4)", 
    "1.4 (1.3, 1.5)", "1.5 (1.4, 1.6)", "1.6 (1.5, 1.7)"), class = "factor"), 
    set = structure(c(1L, 1L, 1L, 2L, 2L), .Label = c("H", "S" 
    ), class = "factor")), .Names = c("characteristic", "es", 
"ci_low", "ci_upp", "label", "set"), class = "data.frame", row.names = c(NA, 
-5L)) 

Sử dụng Tyler's solution, một đồ thị của nó trông giống như thế vào lúc này:

enter image description here

Trong một cách tương tự như một lô rừng tôi d muốn thêm một bộ nhãn thứ hai (label biến trong khung dữ liệu của tôi) đại diện cho các giá trị được vẽ đồ thị, tốt nhất là ở phía bên phải của các bảng. Vì vậy mà tất cả lô rừng bắt chước tương tự như ví dụ sau:

enter image description here

Tôi biết rằng trục thứ hai seems to be frowned upon. Tuy nhiên đây chỉ là một tập hợp các nhãn .. kiến ​​nó có vẻ là một tùy chỉnh giữa các lô rừng.

Tôi có thể làm điều đó như thế nào trong ggplot?

+1

câu trả lời ở đây có lẽ sẽ cung cấp cho bạn một điểm khởi đầu: http://stackoverflow.com/questions/4867597/can-you-easily- plot-rugs-axes-on-the-top-right-in-ggplot2/4868130 # 4868130 – Chase

+0

@Chase: Cảm ơn vì điều đó. Thực tế rất dễ dàng hackable bằng cách sử dụng 'cốt truyện'. Vẫn còn tự hỏi liệu một người có thể làm điều đó trong ggplot2? – radek

+1

Trục thứ hai chỉ cau mày khi nó là một biến hoàn toàn khác (ví dụ: nhiệt độ và nồng độ trầm tích). Trục thứ hai là phiên bản được biến đổi của đầu tiên được chấp nhận hoàn toàn (ví dụ: nhiệt độ trong C, hoặc K, hoặc F). –

Trả lời

4

EDIT cập nhật để ggplot2 0.9.3

Thêm thiết lập của bạn của nhãn trong dataframe thử nghiệm của bạn với biểu đồ diện là đơn giản. Sử dụng geom_text với tính thẩm mỹ cho nhãn và vị trí x và y của nhãn. Trong mã bên dưới, xlim tạo thêm một chút không gian cho các nhãn. Các mã sau đây:

library(gridExtra) 
library(ggplot2) 

p <- ggplot(test, aes(y = characteristic, x = es, xmin = ci_low, xmax = ci_upp)) + 
    geom_point() + 
    geom_errorbarh(height = 0) + 
    geom_text(aes(label = label, x = 2, y = characteristic)) + 
    scale_x_continuous(limits = c(1, 2.2), breaks = c(1, 1.2, 1.4, 1.6, 1.8), 
    labels=c("1.0", "1.2", "1.4", "1.6", "1.8")) + 
    facet_grid(set ~ ., scales = "free", space = "free") + 
    theme_bw() + 
    theme(strip.text.y = element_text(angle = 0), 
    panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank()) 
p 

grid.text(expression(paste("ES " %+-% " ci")), x = 0.78, y = .92, 
    gp = gpar(fontsize = 18)) 

sản xuất:

enter image description here

+0

Tuyệt vời. Cảm ơn rất nhiều vì đã giúp đỡ! – radek

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