David B
David B

Reputation: 30018

Set R plots x axis to show at y=0

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

Upvotes: 53

Views: 84682

Answers (2)

WetlabStudent
WetlabStudent

Reputation: 2606

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)   

Upvotes: 16

rcs
rcs

Reputation: 68849

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.

Upvotes: 66

Related Questions