Hi: To add to Greg's sound advice, if you want to put the numbers on top of the bars, why bother with the numerical scale? The entire point of a scale is to provide a reference for comparing different (sets of) values.
\begin{rant} And when I see things like this: > dat.bar > VAR1 > Category 01 17.5 > Category 02 15.2 > Category 03 10.3 > Category 04 8.4 > Category 05 20.3 I get doubly annoyed, because it is yet another attempt to use a bar chart to plot quantitative values by factor level. As I mentioned in a private response today, one of the problems with a bar chart is that it forces the numerical scale to have origin zero, and this is often neither necessary nor desirable. A simple line plot that connects the quantitative values between categories is sufficient, and takes *far* less ink to produce. The purpose of a statistical graphic is to convey information in a simple, clean, concise fashion - it is not meant to be a rococo art form. If you intend to write a function to automate a graphic, please think carefully about what is meant to be conveyed and the *visually* simplest means by which to convey it. \end{rant} The purpose of a bar chart is to visualize a (joint) discrete distribution. There are better ways to plot quantitative variables by group; in addition to the line plot mentioned above, the Cleveland dot chart can be very effective with many groups or multiple grouping factors. With two factors and a quantitative response, another option is the interaction plot. If this weren't the third such example/request I've seen today, I probably wouldn't be so apoplectic... Dennis On Fri, Sep 10, 2010 at 10:44 AM, Greg Snow <greg.s...@imail.org> wrote: > See this message and the replies to it (and the replies to the replies, > etc.): > > http://tolstoy.newcastle.edu.au/R/e2/help/07/08/22858.html > > In there is a discussion of why you don't really want to do that along with > better alternatives and examples of the improved plots. > > -- > Gregory (Greg) L. Snow Ph.D. > Statistical Data Center > Intermountain Healthcare > greg.s...@imail.org > 801.408.8111 > > > > -----Original Message----- > > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r- > > project.org] On Behalf Of Antonio Olinto > > Sent: Friday, September 10, 2010 8:59 AM > > To: R-help > > Subject: [R] adding labels above bars in a barplot > > > > Hello, > > > > I want to make a general routine to draw barplots with numbers plotted > > above each bar. See the example below. > > > > I could not place the numbers on the middle of each bar because I > > could not calculate the right position of each x-axis tick. axTicks(1) > > indicated a unitary step, but it does not seem work. > > > > I appreciate any help or suggestions. > > > > Best regards, > > > > Antonio Olinto > > > > ====================== > > > > CAT VAR1 VAR2 > > Category 01 17.5 9 > > Category 02 15.2 20 > > Category 03 10.3 500 > > Category 04 8.4 150 > > Category 05 20.3 5000 > > > > # Coping data from a spreadsheet > > > > dat.data <- read.delim("clipboard",header=T) > > > > summary(dat.data) > > CAT VAR1 VAR2 > > Category 01:1 Min. : 8.40 Min. : 9 > > Category 02:1 1st Qu.:10.30 1st Qu.: 20 > > Category 03:1 Median :15.20 Median : 150 > > Category 04:1 Mean :14.34 Mean :1136 > > Category 05:1 3rd Qu.:17.50 3rd Qu.: 500 > > Max. :20.30 Max. :5000 > > > > dat.bar <- data.frame(dat.data[,c(2)]) > > row.names(dat.bar)<-dat.data[,1] > > names(dat.bar)<-c("VAR1") > > dat.bar > > VAR1 > > Category 01 17.5 > > Category 02 15.2 > > Category 03 10.3 > > Category 04 8.4 > > Category 05 20.3 > > > > par(mar=c(12,6,3,2),cex.axis=1.2,cex.lab=1.4) > > barplot(t(as.matrix(dat.bar)),ylim=c(0,max(dat.data[,2]*1.1)),las=2,yla > > b="Y > > label text",col="orange") > > box() > > > > up <- max(dat.data$VAR1)*0.1 > > > > for (i in c(0:nrow(dat.data))) { > > legend(0.25+i,dat.bar[1+i,1]+up,dat.data[i+1,3],col="blue",bty="n") > > } > > > > > > ---------------------------------------------------------------- > > Webmail - iBCMG Internet > > http://www.ibcmg.com.br > > > > ______________________________________________ > > 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. > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.