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