2010-05-25 11 views
9

Quando si sceglie una scala di registro, ggplot2 formatta le interruzioni come 10^x. Mi piacerebbe non farlo. Ad esempio, il codice dovrebbe visualizzare un grafico con le zecche a 1, 2, 5, ecc, non 10^0, 10^0,3, 10^0,69 eccCome sovrascrivere la formattazione dell'asse di 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) 

Credo che l'aggiunta di un argomento formatter a scale_y_log10 farebbe il trucco, ma non sono sicuro di cosa inserire l'argomento, o dove le opzioni potrebbero essere documentate.

risposta

8

scale_y_log10(breaks = breaks, labels = breaks dovrebbe fare il trucco.

+0

Ah. Facile quando sai come. Grazie. –

4

Al ggplot2 versione 0.9.0, questo comportamento (formattazione etichette dell'asse 10^0) non è più il predefinito. Il codice nella domanda ora dà il risultato desiderato.

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

Problemi correlati