2013-03-02 34 views
11

Khi tôi thử một trong các thang đo trục sau đây là 1e + 03, 1e + 06, 1e + 09 - có thể nhận được siêu ký tự tốt hơn 10^3, 10^6, 10 hay không^9 thay vào đó mà không cần ghi nhãn thủ công? Tôi dường như nhớ lại việc này tự động trong quá khứ.Nhãn trục đẹp cho thang đo log trong ggplot

qplot(1:10, 10^(1:10))+scale_y_log10() 
qplot(1:10, 10^(1:10), log='y') 

Trả lời

27

Bạn có thể sử dụng trans_breaks()trans_format() từ thư viện scales để có được định dạng mong muốn của các giá trị trục.

library(scales) 
qplot(1:10, 10^(1:10)) + 
    scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x), 
       labels = trans_format("log10", math_format(10^.x))) 

enter image description here

+0

làm thế nào tôi có thể thêm dấu gạch ngang giữa 10 và 1000 (ví dụ 200, 500 và 700) trên trục y? –

+0

Tôi nghĩ rằng những gì bạn đang tìm kiếm là: "p + annotation_logticks()" Để xem tham khảo tại http://ggplot2.tidyverse.org/reference/annotation_logticks.html – dabsingh

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