¿Cómo puedo configurar el origen / intercepción del eje y y el eje x en ggplot2?
La línea del eje x debe estar exactamente en y=Z
.
Con Z=0
u otro valor dado.
¿Cómo puedo configurar el origen / intercepción del eje y y el eje x en ggplot2?
La línea del eje x debe estar exactamente en y=Z
.
Con Z=0
u otro valor dado.
Respuestas:
xlim
y ylim
no lo cortes aquí. Es necesario utilizar expand_limits
, scale_x_continuous
y scale_y_continuous
. Tratar:
df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for
p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
Es posible que deba ajustar un poco las cosas para asegurarse de que los puntos no se corten (consulte, por ejemplo, el punto en x = 5
y y = 5
.
expand=expand_scale(mult=c(0,0.1))
para que aún consigas el relleno en los extremos superiores: stackoverflow.com/a/59056123/8400969
Simplemente agréguelos a su ggplot:
+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for
p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
Por último, tenga mucho cuidado de no excluir involuntariamente los datos de su gráfico . Por ejemplo, a position = 'dodge'
podría hacer que una barra quede completamente fuera del gráfico (por ejemplo, si su valor es cero y comienza el eje en cero), por lo que es posible que no lo vea y ni siquiera sepa que está allí. Recomiendo trazar los datos completos primero, inspeccionar, luego usar el consejo anterior para mejorar la estética de la trama.
scale_x_continuous(expand = c(0, 0), limits = c(0,5))
alguna manera, sin eso no funcionó