Set R plots x axis to show at y=0
RPlotR Problem Overview
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).
R Solutions
Solution 1 - 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.
Solution 2 - R
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)