On Sun, 2005-01-16 at 05:00 -0500, Duncan Murdoch wrote:
> On Sun, 16 Jan 2005 10:05:01 +0100, "Robin Gruna"
> <[EMAIL PROTECTED]> wrote :
>
> >Ok, here is some sample code to my problem
> >
> >> barplot(c(1,2,4,3,2), legend.text = "Legend")
> >> grid()
> >
> >..the lines are crossing my barchart :-(...
>
> The reason for this is the way R thinks of graphics, essentially as
> ways to put ink on paper. You draw the grid on top of the existing
> plot.
>
> Getting it to look the way you want is a little tricky: you want to
> draw the grid first so the bars appear on top, but R won't know how to
> draw the grid until it has drawn the plot. So the solution is to draw
> the plot twice, e.g.
>
> barplot(c(1,2,4,3,2), legend.text = "Legend")
> grid(col='black', lty='solid')
>
> oldpar <- par(bg='white')
> # this says to use a solid white background
> # instead of the default one, which is usually transparent. The
> # old colour is saved in oldpar
>
> par(new=T)
> # this says to overwrite the plot
>
> barplot(c(1,2,4,3,2), legend.text = "Legend")
> par(oldpar) # restore the old colour
You can also look at the barplot2() function, which is in the 'gregmisc'
bundle on CRAN and take note of the 'plot.grid' argument, which will
enable a grid to be drawn behind the bars. As an example:
[after installing gregmisc]
library(gplots)
barplot2(c(1, 2, 4, 3, 2), legend.text = "Legend",
plot.grid = TRUE, grid.lty = "solid")
This will result in horizontal lines behind the bars at the same points
as the y axis default tick marks.
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