tutorial - scale_x_discrete
trazar esto en ggplot. Controlar la línea del eje y dentro de un rango (1)
Esto está usando base, donde puedo controlar el rango del eje xey, donde exactamente se debe dibujar la línea.
plot(mtcars$mpg, mtcars$hp, ylim = c(0, 400), xlim = c(0, 50), axes = F, xlab = ''mpg'', ylab = ''hp'', pch = 16)
axis(side = 2, at = seq(100, 400, 100))
axis(side = 1, at = seq(10, 30, 10))
ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+
theme(panel.background = element_blank())+
scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50))+
scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400))
¿Cómo agrego la línea del eje exactamente como la gráfica base? He intentado scale_y_continuous
y scale_x_continuous
pero siempre dibuja hasta el final de la trama.
Puedes llegar usando el paquete ggthemes
:
ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+
geom_rangeframe(data = data.frame(mpg = c(10, 30), hp = c(100, 400))) +
theme_tufte() +
scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50))+
scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400))
También puede dibujarlos manualmente, si lo desea:
ggplot(data = mtcars, aes(x = mpg, y = hp))+geom_point()+
geom_segment(aes_all(c(''x'', ''y'', ''xend'', ''yend'')),
data = data.frame(x = c(0, 10), xend = c(0, 30), y = c(100, 0), yend = c(400, 0))) +
theme(panel.background = element_blank()) +
scale_x_continuous(breaks = seq(10, 30, 10), limits = c(0, 50), expand = c(0, 0))+
scale_y_continuous(breaks = seq(100, 400, 100), limits = c(0, 400), expand = c(0, 0))