[R] suppressing non-integer labels for plot x-axis

Marc Schwartz MSchwartz at medanalytics.com
Thu Feb 19 14:36:42 CET 2004

On Thu, 2004-02-19 at 07:20, Jonathan Williams wrote:
> Dear R-helpers,
> I am having difficulty making R plot only integer labels on the x-axis
> of a simple graph. I want to plot the median values of a score on each
> of three occasions. Non-integer occasions are impossible. But, R keeps
> labelling the x-axis with half-occasions, despite my attempts to stop
> this using the "xaxs" and "xaxp" parameters of 'plot'.
> p1=c(1,2,3); p2=c(5,15,25)
> plot(p1,p2,xlab='Occasion', ylab='Score', xlim=c(1,3), ylim=c(0,30),
> xaxp=c(1,3,3), xaxs='r')
> Could someone let me know how to suppress the non-integer labels?

If you want finer control over the axis labeling, it is generally best
to suppress the axis or axes in question and explicitly draw the axis
using the axis() function.

By default, the tick marks and labels will be the result of using the
pretty() function, based upon the range of values you provide. Thus you

> pretty(1:3)
[1] 1.0 1.5 2.0 2.5 3.0

To avoid this and have more control, do something like:

p1=c(1, 2, 3)
p2=c(5, 15, 25)

# Use 'xaxt = "n"' to suppress the x axis
plot(p1, p2, xlab = 'Occasion', ylab = 'Score',
     xlim = c(1, 3), ylim = c(0, 30), xaxt = "n")

# Now call axis to draw tick marks and labels at 1:3
axis(1, at = 1:3)

See ?pretty, ?plot.default and ?axis for more information.


Marc Schartz

More information about the R-help mailing list