The canonical method of creating a numeric value from a factor is to wrap the factor in as.numeric(as.character( (.)) The as.character grabs the value from the factor levels rahter than giving you the internal codings and the as.numeic finishes the job.

Set xaxt=FALSE in the plot arguments. The axis can be managed with the axis() function with at= and labels= arguments. You might want to not plot every one of them, perhaps:

at = seq(-36, 33, by = 5) , labels = as.numeric(as.factor(z $bins[seq(-36, 33, by = 5)] )),
--
David Winsemius

On Jun 15, 2009, at 7:09 PM, jproville wrote:


Hi,

I'd really appreciate if someone could give me some help or advice about this - I've tried everything I know and am clueless about how to proceed!

I've written a script to import ASCII data of raster maps, bin them into categories, calculate the mean values within these bins and plot the two in a simple graph. I'm running into problems with my x axis, as R cannot add the bin categories as labels and simply outputs the factor values of the
number of bins.

In much more detail:
One set of data is fractional values for the amount of cropland in a
designated area (raster cell). The second is annual average temperature
data, in the same format. I import these using:
xRaw<-scan(".../Temp.txt")
yRaw<-scan(".../Cropland.txt")

and then designate cells with values of -9999 as NAs:
x<-ifelse(xRaw==-9999,NA,xRaw)
y<-ifelse(yRaw==-9999,NA,yRaw)

Then, I compile them into a 2 column data frame, and exclude the NA values:
zRaw<-data.frame(x,y)
z<-na.exclude(zRaw)

I am then left with data frame 'z' which is a refined list of data. Using
the 'cut' function, I assign each row into one of 69 different bins:
z$bins<-cut(z$x, breaks=c(-36:33), include.lowest=TRUE)

Each bin is now 1 degree Celsius wide. Within each one, I calculate the mean
value of the corresponding fractional cropland data:
a<-tapply(z$y, z$bins, mean)

Object 'a' now contains each bin category and the associated mean cropland
values, so 69 points in total.


Now, a problem arises when I try and plot these values using:
plot(a, xlab="Temperature", ylab="Fraction of Cropland", pch=20)
What happens is that R intuitively labels my x-axis from 1-70, which
corresponds to the bin factor values that were returned when the 'cut'
function was used. I would like to simply label the x-axis with my
temperature values, from -36 degrees to 33 degrees, instead of having
numbers 1-69. How can I do this??

Thanks,

Jeremy Proville
M.Sc. Candidate
Bioresource Engineering, McGill University
--
View this message in context: 
http://www.nabble.com/Bin-Category-Labels-on-Axis-tp24042325p24042325.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to