2013-03-02 12 views
11

Quando provo una delle seguenti opzioni, la scala dell'asse è 1e + 03, 1e + 06, 1e + 09 - è possibile ottenere belle apice 10^3, 10^6, 10^9 invece di ricorrere all'etichettatura manuale? Mi sembra di ricordare di averlo fatto automaticamente in passato.Belle etichette degli assi per la scala di registro in ggplot

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

risposta

27

È possibile utilizzare trans_breaks() e trans_format() dalla libreria scales per ottenere la formattazione desiderata dei valori degli assi.

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

come potrei aggiungere trattini tra 10 e 1000 (per esempio 200, 500 e 700) sull'asse y? –

+0

Penso che quello che stai cercando è: "p + annotation_logticks()" Per riferimento guarda http://ggplot2.tidyverse.org/reference/annotation_logticks.html – dabsingh

Problemi correlati