[R-sig-teaching] X-Y charts with gridlines in R

Jean lobry lobry at biomserv.univ-lyon1.fr
Tue Jul 14 14:03:39 CEST 2009


>Could you please help me out how to get such graphs in R.

Try:

par(mar = rep(1.5, 4))
plot(-7:7, -7:7, type = "n", xaxt = "n", yaxs = "i", xaxs = "i", yaxt = "n",
bty = "n", xlab = "", ylab = "")
segments(-7,-6:6,+7,-6:6, col = "orange", lty = 2)
segments(-6:6,-7,-6:6,+7, col = "orange", lty = 2)
segments(-7,0,7,0)
segments(0,-7,0,7)
text(7, 0, "x", pos = 4, xpd = NA)
text(0, 7, "y", pos = 3, xpd = NA)
abline(c(0,1.5), lwd = 3, col = "darkblue")

and:

par(mar = rep(2, 4))
plot(-7:7, -7:7, type = "n", xaxt = "n", yaxs = "i", xaxs = "i", yaxt 
= "n", xlab = "", ylab = "")
segments(-7,-6:6,+7,-6:6, col = "orange", lty = 2)
segments(-6:6,-7,-6:6,+7, col = "orange", lty = 2)
segments(-7,0,7,0)
segments(0,-7,0,7)
text(7, 0, "x", pos = 4, xpd = NA)
text(0, 7, "y", pos = 3, xpd = NA)
abline(c(2, -3), lwd = 3, lty = 3)
axis(1, line = -1, lwd = 0)
axis(2, las = 1, line = -1, xaxt = "n", lwd = 0)
for(x in c(-7,7)){
   segments(x, seq(-7,7,by=0.5), ifelse(x>0, x-0.1, x+0.1), seq(-7,7,by=0.5))
   segments(x, seq(-6,6,by=2),ifelse(x>0, x-0.2, x+0.2), seq(-6,6,by=2))
}
for(y in c(-7,7)){
   segments(seq(-7,7,by=0.5), y, seq(-7,7,by=0.5), ifelse(y>0, y-0.1, y+0.1))
   segments(seq(-6,6,by=2), y, seq(-6,6,by=2), ifelse(y>0, y-0.2, y+0.2))
}
polygon(c(4, -2, 10, 10), c(-3*4+2, -3*-2+2, 10, -10),
col = rgb(0,0,1,0.2), border = grey(0.8))
abline(c(2, -3), lwd = 3, lty = 3)
text(2,3, expression(y > 2-3*x), cex = 2)

Best,

Jean

-- 
Jean R. Lobry            (lobry at biomserv.univ-lyon1.fr)
Laboratoire BBE-CNRS-UMR-5558, Univ. C. Bernard - LYON I,
43 Bd 11/11/1918, F-69622 VILLEURBANNE CEDEX, FRANCE
allo  : +33 472 43 27 56     fax    : +33 472 43 13 88
http://pbil.univ-lyon1.fr/members/lobry/




More information about the R-sig-teaching mailing list