rplotggplot2axes

Force the origin to start at 0


How can I set the origin / interception of the y-axis and x-axis in ggplot2?

The line of the x-axis should be exactly at y=Z.

With Z=0 or another given value.


Solution

  • xlim and ylim don't cut it here. You need to use expand_limits, scale_x_continuous, and scale_y_continuous. Try:

    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
    

    enter image description here

    p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
    

    enter image description here

    You may need to adjust things a little to make sure points are not getting cut off (see, for example, the point at x = 5 and y = 5.