2010-05-25 21 views
9

Khi bạn chọn thang đo log, ggplot2 định dạng các ngắt như 10^x. Tôi muốn nó không làm điều đó. Ví dụ, đoạn code dưới đây sẽ hiển thị một biểu đồ với bọ ve ở mức 1, 2, 5 vv, chứ không phải 10^0, 10^0,3, 10^0,69, vvLàm cách nào để ghi đè định dạng trục của ggplot2?

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

Tôi đoán rằng việc thêm một đối số formatter-scale_y_log10 sẽ thực hiện thủ thuật, nhưng tôi không chắc chắn nên đưa ra lý lẽ gì, hoặc nơi các tùy chọn có thể được ghi lại.

Trả lời

8

scale_y_log10(breaks = breaks, labels = breaks nên thực hiện thủ thuật.

+0

Ah. Dễ dàng khi bạn biết làm thế nào. Cảm ơn. –

4

Kể từ phiên bản ggplot2 0.9.0, hành vi này (định dạng nhãn trục là 10^0) không còn là mặc định nữa. Mã trong câu hỏi hiện cho kết quả mong muốn.

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

enter image description here

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