2010-05-25 12 views
9

Lorsque vous choisissez une échelle de journal, ggplot2 formate les ruptures comme 10^x. J'aimerais que ça ne fasse pas ça. Par exemple, le code ci-dessous devrait afficher un graphique avec les tiques à 1, 2, 5, etc., et non 10^0, 10^0,3, 10^0.69, etc.Comment remplacer le formatage des axes de 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) 

Je suppose que l'ajout d'un argument formatter-scale_y_log10 ferait l'affaire, mais je ne sais pas quoi mettre dans l'argument, ou où les options pourraient être documentées.

Répondre

8

scale_y_log10(breaks = breaks, labels = breaks devrait faire l'affaire.

+0

Ah. Facile quand tu sais comment. Merci. –

4

À partir de la version 0.9.0 de ggplot2, ce comportement (formatage des étiquettes d'axe de 10^0) n'est plus le comportement par défaut. Le code dans la question donne maintenant le résultat souhaité.

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