2009-12-20 11 views
8

Voici une question pour les utilisateurs. Je suis intéressé à dessiner un histogramme avec des points empilés, au lieu d'une barre. Par exemple si les données sont (1,1,2,1,2,3,3,3,4,4), alors je voudrais voir trois points empilés à 1, 2 points empilés à 2 et ainsi de suite . Quelle est la meilleure façon de faire cela dans R?Histogramme de tracé avec points au lieu de barres

Répondre

5

paquet de TeachingDemos de Greg neige contient une fonction dots(x, ...) qui semble répondre à vos besoins:

dots(round(rnorm(50, 10,3))) 

enter image description here

+0

Semble être la plus simple de toutes les solutions !! Merci Kyubic – Ramnath

+0

@Ramnath: Quand vous regardez le code source, il fait essentiellement la même chose que la réponse de Jonathan Chang – vonjd

5

Vous pouvez faire vous-même assez rapidement:

x <- c(1,1,2,1,2,3,3,3,4,4) 
plot(sort(x), sequence(table(x))) 
+0

Merci Jonathan. Cela fait le travail pour moi! – Ramnath

5

La réponse la plus simple que je savoir est ce:

x <- c(1,1,2,1,2,3,3,3,4,4) 
stripchart(x,method="stack",at=0) 

C'est mieux que la suggestion de Jonathan Chang car stripchart empile correctement les points.

+0

Merci Rob. Stripchart semble très intuitif, bien que je préférerais que la pile de points soit séparée. – Ramnath

2

Une autre façon serait facile:

x <- c(1,1,2,1,2,3,3,3,4,4) 
myhist <- hist(x) 
myhistX <- myhist$mids 
myhistY <- myhist$density 

Et maintenant, vous pouvez tracer de quelque façon que vous aimez:

plot(myhistY~myhistX) 

De cette façon, vous pouvez modifier les options d'empilement lors de la construction d'un « histogramme » objet.

Questions connexes