2010-11-10 31 views
2

J'ai un grand ensemble de données avec la durée de vie des discussions sur un forum de discussion. Je veux un histogramme qui montre la répartition de la durée de vie, donc je l'ai fait:comment utiliser une échelle logarithmique pour l'axe y de l'histogramme dans R?

dall <- read.csv("lifespan.csv") 
colnames(dall) <- c("thread.id", "seconds.alive", "start.time") 
hist(dall$seconds.alive) 

qui a généré ce difficile à lire l'image: http://dl.dropbox.com/u/285483/tmp/screenshot297.png

Mes questions sont a) change l'axe y à un log-échelle un bon moyen de le rendre plus lisible? Apparemment, some people think is a bad idea pour changer l'axe des y pour se connecter.

b) comment je fais ça?

+2

Compte tenu de la que les barres commencent à zéro et log (0) est -infinity, qu'est-ce que vous voulez exactement le graphique pour afficher? – hadley

+0

Quelque chose de similaire a été discuté @ CrossValidated: http://stats.stackexchange.com/questions/1764/what-are-alternatives-to-broken-axes –

Répondre

4

Je voudrais essayer d'utiliser hist(log10(dall$seconds.alive)) à la place.

Essayez aussi spécifier breaks=100 ou plus petit/plus grand nombre:

hist(log10(dall$seconds.alive), breaks=100) 
+1

+ 1 bon point, log-secondes sont certainement mieux que log-count – VitoshKa

+2

cela n'applique-t-il pas efficacement une échelle logarithmique à l'axe ** x ** (au lieu de l'axe y)? –