[R] Change the scale on a barplot's y axis

S Ellison S.Ellison at lgc.co.uk
Sun Feb 28 02:34:14 CET 2010


Thomas,

You could perhaps do a tad better by simply adding a right-hand-side
axis using axis():

axis(4, at=c(4.3,4.0,3.7, 3.3,3.0,2.7, 2.3,2.0,1.7, 1.3,1.0,0.7),
labels=c('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-'),
las=1)

That way you have both numeric and grade scales.

if you want a left-hand grade scale only, first suppress the axes in the
barplot using axes=FALSE, and then add the axes using axis(1) and
axis(2,..) with the ... as above.

Incidentally, I'm not sure I'd have converted your numbers that way, but
if it's worked it's worked.

Steve E
>>> Thomas Levine <thomas.levine at gmail.com> 02/28/10 12:44 AM >>>
I have grades data. I read them from a csv in letter-grade format. I
then converted them to levels

levels(grades$grade)=c('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-')

And then to numbers

grades$gp=grades$grade
levels(grades$gp)=c(4.3,4.0,3.7, 3.3,3.0,2.7, 2.3,2.0,1.7, 1.3,1.0,0.7)
grades$gp=as.numeric(as.character(grades$gp))

And I'm plotting them in a barplot

barplot(gp[order(gp)],width=n[order(gp)],ylab="Class Median
Grade",xlab="Class, scaled to number of students in the
class",main="Class Median Grades for Cornell University weighted by
class size")

I would like to change the scale on the bar graph such that it reads

c('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-')

in the locations

c(4.3,4.0,3.7, 3.3,3.0,2.7, 2.3,2.0,1.7, 1.3,1.0,0.7)

Any ideas?

Tom

______________________________________________
R-help at 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.


*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:8}}



More information about the R-help mailing list