2009-12-20 15 views
8

Ecco una domanda per utenti R. Sono interessato a disegnare un istogramma con punti impilati, invece di una barra. Per esempio se i dati sono (1,1,2,1,2,3,3,3,4,4), allora mi piacerebbe vedere tre punti accatastati a 1, 2 punti impilati a 2 e così via . Qual è il modo migliore per farlo in R?Istogramma di stampa con punti anziché barre

risposta

5

pacchetto TeachingDemos di Greg Neve contiene una funzione dots(x, ...) che sembra soddisfare le vostre necessità:

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

enter image description here

+0

Sembra essere la più semplice di tutte le soluzioni !! Grazie Kyubic – Ramnath

+0

@Ramnath: Quando si guarda il codice sorgente, in pratica fa lo stesso della risposta di Jonathan Chang – vonjd

5

È possibile farlo da soli piuttosto velocemente:

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

Grazie Jonathan. Questo fa il lavoro per me! – Ramnath

5

La risposta più semplice I so è questo:

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

È meglio del suggerimento di Jonathan Chang perché lo stripchart esegue correttamente l'impilamento dei punti.

+0

Grazie Rob. Stripchart sembra molto intuitivo, anche se preferirei che la pila di punti fosse separata. – Ramnath

2

Un altro modo semplice potrebbe essere:

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

E ora è possibile tracciare in alcun modo che ti piace:

plot(myhistY~myhistX) 

In questo modo è possibile modificare le opzioni di impilamento quando si costruisce una "istogramma" oggetto.

Problemi correlati