Speak it in ggplot. Y axis control within range

This is the base where I can control the range of the x and y axis, where exactly the line should be drawn.

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)) 

enter image description here

 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)) 

enter image description here

How to add an axis row in the same way as a base graph? I tried scale_y_continuous and scale_x_continuous , but it always draws to the end of the graph.

+8
r plot ggplot2 axis
source share
1 answer

You can get there using the ggthemes package:

 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)) 

enter image description here

You can also draw them manually if you want:

 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)) 

enter image description here

+6
source share

All Articles