2009-12-20 25 views
8

Aquí hay una pregunta para los usuarios de R. Estoy interesado en dibujar un histograma con puntos apilados, en lugar de una barra. Por ejemplo, si los datos son (1,1,2,1,2,3,3,3,4,4), me gustaría ver tres puntos apilados en 1, 2 puntos apilados en 2 y así sucesivamente . ¿Cuál es la mejor manera de hacer esto en R?Trazar histograma con puntos en lugar de barras

Respuesta

5

paquete TeachingDemos de Greg nieve contiene una función dots(x, ...) que parece adaptarse a su necesidad:

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

enter image description here

+0

¡Parece ser la más simple de todas las soluciones! Gracias Kyubic – Ramnath

+0

@Ramnath: Cuando miras el código fuente básicamente hace lo mismo que la respuesta de Jonathan Chang – vonjd

5

Puede hacerlo usted mismo con bastante rapidez:

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

Gracias Jonathan. ¡Esto hace el trabajo por mí! – Ramnath

5

La respuesta más simple que saber es esto:

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

Es mejor que la sugerencia de Jonathan Chang porque stripchart hace un apilamiento adecuado de los puntos.

+0

Gracias Rob. Stripchart parece muy intuitivo, aunque preferiría que la pila de puntos estuviera separada. – Ramnath

2

Otra manera fácil sería:

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

y ahora se puede trazar en cualquier forma que le guste:

plot(myhistY~myhistX) 

De esta manera usted puede cambiar las opciones de apilamiento en la construcción de un "histograma" objeto.

Cuestiones relacionadas