Re: [R] Barplot difficulties

2004-11-16 Thread Frank E Harrell Jr
Heather J. Branton wrote:
Hello. I am an R newbie struggling to learn and use R . I have read many 
portions of the R Reference Manual, as well as the FAQs. Given that I 
learn something new each time, I know I might be missing something 
obvious. But I appeal to your good nature to help me through this 
initial problem.

I have attached a pdf file to demonstrate what I desire and have listed 
what my data looks like in Excel (below). Following is the data and 
script I developed - which does not provide what I want.

Dear Heather - Please read Bill Cleveland's book The Elements of 
Graphing Data.  A MUCH better plot can be produced.  And let time be one 
of the first variables to vary.


--
Frank E Harrell Jr   Professor and Chair   School of Medicine
 Department of Biostatistics   Vanderbilt University
__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


Re: [R] Barplot difficulties

2004-11-15 Thread Marc Schwartz
On Mon, 2004-11-15 at 19:03 -0500, Heather J. Branton wrote:
 Hello. I am an R newbie struggling to learn and use R . I have read many 
 portions of the R Reference Manual, as well as the FAQs. Given that I 
 learn something new each time, I know I might be missing something 
 obvious. But I appeal to your good nature to help me through this 
 initial problem.
 
 I have attached a pdf file to demonstrate what I desire and have listed 
 what my data looks like in Excel (below). Following is the data and 
 script I developed - which does not provide what I want.
 
 My immediate goal is to create a barplot in R similar to the attached 
 pdf chart. But I am stuck on several problems. First, I would like to 
 have 2 labels below the barplot - one label for each bar and one for 
 each group of bars. Second, I would like to vary color by group (instead 
 of by bar). I assume that I need to do use some sort of syntax within 
 the color option but have not yet figured it out. I have made two 
 different plot attempts -- one resulting in the bars being grouped 
 appropriately but missing the labels below the x-axis; the other giving 
 me the individual labels but not grouped as I need.

snip

How about something like this:

# Don't use 'sample' for the name here, as sample() is a function
MyData - t(read.table(sample.dat, sep= , , header = TRUE))

# These may be closer to the PDF chart colors
# You need to repeat them to color each group the same, rather
# than alternating bar colors
MyCols - rep(c(lightcyan,cornsilk,lavender), each = 10)

# adjust the margins
par(mar = c(7, 5, 6, 4))

# Now do the barplot:
# Note barplot() returns the bar midpoints in 'mp'
# use 'names.arg' for the individual bar names from MyData
# set 'las = 2' for vertical labels
# set 'ylim' to c(0, 20) for the y axis range
# set 'yaxt = n' to not draw the y axis tick marks
mp - barplot(MyData, beside = TRUE, col = MyCols, 
  main = Rate by Group and Year, 
  ylab = Rate, 
  names.arg = rep(rownames(MyData), 3), las = 2,
  cex.names = 0.75, ylim = c(0,20), yaxt = n)

# Now set up the y axis tick marks and labels
ticks - seq(0, 20, 2)
axis(2, at = ticks, las = 1, 
 labels = formatC(ticks, format = f, digits = 1))

# Draw a box around the whole thing
box()

# Now draw the years. Note from ?barplot that colMeans(mp) are
# the group midpoints
mtext(side = 1, at = colMeans(mp), line = 3.5, text = colnames(MyData))

# Now draw the x axis label
mtext(side = 1, line = 5.5, text = Test and Year)


Hope that gets you what you need. You can adjust the font sizes, etc. as
you require.

Note that unlike Excel, the 0 (zero) columns are not dropped. :-)

HTH,

Marc Schwartz

__
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html