ggplot2 0.9.1: Logarithmique de l'axe y de l'échelle avec barchart

Je suis en train de convertir l'axe des y d'un bar-chart à une échelle logarithmique (I. e. logarithmique de la distance entre chaque tiques).

Certaines données factices:

DF <- data.frame(num=c(1,2,3),label=c("a","b","c"))

J'ai essayé les exemples suivants:

p <- ggplot(data=DF,aes(x=label,y=num)) + geom_bar() +
  scale_y_continuous(trans = 'log10',
                     breaks=trans_breaks("log10",function(x) 10^x),
                     labels=trans_format("log10",math_format(10^.x)))

Cela ne journal transforme les étiquettes, mais pas les tiques:

p <- ggplot(data=DF,aes(x=label,y=num)) + geom_bar() + coord_trans(y="log10")

Ce n'est pas l'intrigue n'importe quoi:

p <- ggplot(data=DF,aes(x=label,y=num),y="log")

Pas de chance, soit

J'ai aussi lu le 0.9 guide de transition , mais cela ne semble pas fonctionner non plus.

EDIT:

J'ai oublié d'inclure un exemple, j'ai essayé:

p <- ggplot(data=DF,aes(x=étiquette,y=num)) + geom_bar() + scale_y_log10()

Qui produit le message d'avertissement suivant:

Message d'avertissement:
Dans la jolie(trans(x), n, ...) : NaNs produit

  • À l'aide d'un journal à l'échelle d'un graphique à barres est une mauvaise idée, car la barre de mesurer la distance à partir de zéro. Utiliser un point de la parcelle à la place. perceptualedge.com/articles/b-eye/dot_plots.pdf
  • J'ai essayé d'utiliser un point de l'intrigue, et il a travaillé avec les données factices. Mais quand je suis passé sur des données réelles, qui va de 20865 à 127135230, le nom de l'axe y affiche seulement 10^5
  • Avez-vous essayer une dot plot avec un logarithmique échelle y? Il devrait vous donner plus d'étiquettes d'axe, avec ce genre de plage de données. Si non, vous pouvez spécifier manuellement les labels arg dans scale_y_log10.
InformationsquelleAutor demodw | 2012-07-25