[R] Ticks on barplots
Marc Schwartz
marc_schwartz at comcast.net
Wed Mar 21 03:40:59 CET 2007
On Tue, 2007-03-20 at 18:04 -0400, Michael H. Prager wrote:
> Dear Gurus,
>
> Using R 2.4.1 on Windows XP
>
> I am generating stacked barplots of age-composition of fish populations
> (Y) over time (X). As there are many years, not every bars is labeled.
> When looking at the plot, it becomes difficult to associate labels with
> their bars.
>
> We have improved this a bit by using axis() to add a tickmark below each
> bar. Can anyone suggest a way to draw ticks ONLY at bars where a tick
> label is drawn? Or to make such ticks longer than those where there is
> no label?
>
> This is going into a function, so I'm hoping for a method that doesn't
> require looking at the plot first.
>
> I have attached a PDF.
>
> # sample code (simplified) #
> mp <- barplot(t(N.age), xlab = "Year", axisnames = FALSE)
> axis(side = 1, at = mp, labels = rownames(N.age), tcl = -0.75)
>
> Thanks!
>
> Mike Prager
> NOAA, Beaufort, NC
Mike,
How about something like this:
mp <- barplot(1:50, axisnames = FALSE)
# Create short tick marks at each bar
axis(1, at = mp, labels = rep("", 50), tcl = -0.25)
# Create longer tick marks every 5 years with labels
axis(1, at = mp[seq(1, 50, 5)],
labels = 1900 + seq(0, 45, 5), tcl = -0.75, las = 2,
cex.axis = 0.75)
Just pick which labels you want to be shown (eg. every 5 years) and
synchronize the values of those with the 'at' argument in axis().
BTW, your PDF did not come through.
HTH,
Marc Schwartz
More information about the R-help
mailing list