tags:

views:

1788

answers:

1

I have a plot() that I'm trying to make, but I do not want the x-values to be used as the axis labels...I want a different character vector that I want to use as labels, in the standard way: Use as many as will fit, drop the others, etc. What should I pass to plot() to make this happen?

For example, consider

d <- data.frame(x=1:5,y=10:15,x.names=c('a','b','c','d','e'))

In barplot, I would pass barplot(height=d$y,names.arg=d$x.names), but in this case the actual x-values are important. So I would like an analog such as plot(x=d$x,y=d$y,type='l',names.arg=d$x.names), but that does not work.

+5  A: 

I think you want to first suppress the labels on the x axis with the xaxt="n" option:

plot(flow~factor(month),xlab="Month",ylab="Total Flow per Month",ylim=c(0,55000), xaxt="n")

then use the axis command to add in your own labels. This example assumes the labels are in an object called month.name

axis(1, at=1:12, labels=month.name)

I had to look up how to do this and I stole the example from here.

JD Long
For those that don't know: month.name is a built-in constant containing "January", "February", ..., "December". Similarly month.abb gives "Jan", ..., "Dec".
Richie Cotton
I didn't know that Richie. Thanks!
JD Long