Aquí está un ejemplo reproducible Creo que encapsula su Q (?):
require(ggplot2)
dat <- data.frame(X = sample(1:5, 100, replace = TRUE),
Y = rnorm(100))
No es inmediatamente claro qué datos que tiene, pero si usted quiere decir algo como esto:
(p1 <- ggplot(dat, aes(x = X, y = Y)) + geom_point())
entonces creo que quiere una Stripchart, que se puede lograr en ggplot a través de un factor
dat2 <- within(dat, X <- factor(X, labels = letters[1:5]))
(p2 <- ggplot(dat2, aes(x = X, y = Y)) + geom_point())
Si esto es no es lo que quieres decir, ¿puedes editar tu Q para dar un ejemplo?
Por desgracia, esto no funciona si el eje x no es un factor. – gappy
@gappy: la clave aquí es convertir el eje x en un factor. La solución que @prasad y yo proporcionamos hace esto en la llamada ggplot misma (el bit 'factor (x)' y 'ordered (x)'), mientras que @ Gavin la maneja en un paso de preproceso. El resultado final de las tres respuestas es que el 'eje x 'se trata como un factor antes de trazar. – Chase
@gappy sus datos * son * lo que R consideraría un factor, al menos a partir de la breve descripción que usted brinda. ¿Pueden los datos tomar un valor de 1.5 decir? Si pueden, ¿qué etiqueta deberían obtener esos puntos de datos? Si sus datos * son * ordinales, entonces debe decir esto a R y almacenarlo como/coaccionar a un factor ('factor()') o un factor ordenado ('ordered()'). Si lo hace, hará lo correcto en muchos casos. Vea mi respuesta: se dibuja la trama correcta si le dice a R que los datos son un factor. Las respuestas de @Chase y @Prasad coaccionan como parte de la trama y permiten la personalización en tiempo de ejecución de las etiquetas. –