Usually when I plot some R line plot and set ylim=c(0,some_value)
, there is small space between the x axis and y=0.
I would like the y axis to show exactly at y=0 so points (x,0) will be plotted on the y axis (and not above).
To change the axis scales on a plot in base R Language, we can use the xlim() and ylim() functions. The xlim() and ylim() functions are convenience functions that set the limit of the x-axis and y-axis respectively.
You can use the xlim() and ylim() functions to set the x-axis limits and y-axis limits of plots in R.
You probably want the graphical parameters xaxs
and yaxs
with style "i":
plot(1:10, rnorm(10), ylim=c(0,10), yaxs="i")
See ?par
:
xaxs: The style of axis interval calculation to be used for the x-axis. Possible values are "r", "i", "e", "s", "d". The styles are generally controlled by the range of data or xlim, if given. Style "r" (regular) first extends the data range by 4 percent at each end and then finds an axis with pretty labels that fits within the extended range. Style "i" (internal) just finds an axis with pretty labels that fits within the original data range. Style "s" (standard) finds an axis with pretty labels within which the original data range fits. Style "e" (extended) is like style "s", except that it is also ensures that there is room for plotting symbols within the bounding box. Style "d" (direct) specifies that the current axis should be used on subsequent plots. (Only "r" and "i" styles are currently implemented)
yaxs: The style of axis interval calculation to be used for the y-axis. See xaxs above.
Another option is to disable the axis plotting in plot using axes=F
and then put the axes in separately using the axis command, with the pos
option controlling the axis spacing.
plot(1:10, runif(10), ylim=c(0,1), xlim=c(0,10),axes=F) axis(1, pos=0) axis(2, pos=0)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With