Estoy construyendo un gráfico de barras para el que las barras son suficientes como indicaciones de la ubicación horizontal (x), por lo que me gustaría evitar dibujar las líneas de cuadrícula verticales superfluas.
Entiendo cómo diseñar las líneas de cuadrícula menores y mayores en opts (), pero por mi vida no puedo averiguar cómo suprimir solo las líneas de cuadrícula verticales.
library(ggplot2)
data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
opts(
panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
panel.grid.minor = theme_line(colour = NA),
panel.background = theme_rect(colour = NA),
axis.ticks = theme_segment(colour = NA)
)
En este punto, parece que voy a tener que suprimir todas las líneas de cuadrícula y luego volver a dibujarlas con geom_hline (), lo que parece una especie de molestia (además, no está del todo claro cómo puedo encontrar la marca / posiciones principales de la cuadrícula para alimentar a geom_hline ().)
¡Cualquier pensamiento será apreciado!
Please use breaks = NULL to remove breaks in the scale. (Deprecated; last used in version 0.8.9)
scale_x_discrete(breaks = NULL)
es el que se utiliza cuando la variable x es discreta.A partir de ggplot2 0.9.2, esto se ha vuelto mucho más fácil de hacer usando "temas". Ahora puede asignar temas por separado a panel.grid.major.xy panel.grid.major.y, como se muestra a continuación.
# simulate data for the bar graph data <- data.frame( X = c("A","B","C"), Y = c(1:3) ) # make the bar graph ggplot( data ) + geom_bar( aes( X, Y ) ) + theme( # remove the vertical grid lines panel.grid.major.x = element_blank() , # explicitly set the horizontal lines (or they will disappear too) panel.grid.major.y = element_line( size=.1, color="black" ) )
El resultado de este ejemplo es bastante feo, pero demuestra cómo eliminar las líneas verticales conservando las líneas horizontales y las marcas del eje x.
fuente
Error: stat_count() must not be used with a y aesthetic.
Esto te deja solo con los puntos de datos:
ggplot(out, aes(X1, X2)) + geom_point() + scale_x_continuous(breaks = NULL) + scale_y_continuous(breaks = NULL) + opts(panel.background = theme_blank()) + opts(axis.title.x = theme_blank(), axis.title.y = theme_blank())
fuente
Copiando mi respuesta de un hilo relacionado,
fuente