Skip to content

Horizontal grid in background of barplot

3 messages · David Arnold, Peter Ehlers, Jim Lemon

#
All,

I have:

x <- matrix(c(22,3,6,69,9,4,7,81,23,4,22,50),nrow=3,byrow=TRUE)
rownames(x) <- c("Cold or flu","Headache","Backache");
colnames(x) <- c("Went to doctor","No response","Did
nothing","Self-medicated")
x <- t(x)
print(x)
barplot(x,beside=TRUE,
        ylim=c(0,90),
        xlab="Ailment",
        ylab="Percent",
        legend.text=TRUE,
        args.legend=list("topright",title="Treatment"))
abline(h=c(seq(10,90,10)))
box()

 I'd like to get the horizontal lines in the background.

Any suggestions?

D.



--
View this message in context: http://r.789695.n4.nabble.com/Horizontal-grid-in-background-of-barplot-tp4642081.html
Sent from the R help mailing list archive at Nabble.com.
#
On 2012-09-03 12:12, David Arnold wrote:
Just plot the bars twice and add the background colour of
the legend region.

  barplot(x,beside=TRUE,
          ylim=c(0,90))

  abline(h=c(seq(10,90,10)))
  box()
  barplot(x,beside=TRUE,
          xlab="Ailment",
          ylab="Percent",
          legend.text=TRUE,
          args.legend=list("topright",title="Treatment",bg="white"),
          add=TRUE)

Peter Ehlers
#
On 09/04/2012 05:12 AM, David Arnold wrote:
Hi David,
Try this:

library(plotrix)
barp(x,col=gray(c(0.2,0.4,0.6,0.8)),names.arg=colnames(x),
  xlab="Ailment",ylab="Percent",ylim=c(0,90),
  do.first=expression(abline(h=seq(10,80,10))))
legend(2.5,85,rownames(x),fill=gray(c(0.2,0.4,0.6,0.8)),
  bg="white")

Jim