Re: [R] A horizontal or vertical line draw on mosaic plot?

From: Dieter Menne <>
Date: Fri, 02 May 2008 17:41:33 +0000 (UTC)

Sang Chul Choi <Choi <at>> writes:

> I want to have a horizontal line on a mosaic plot with "vcd" package.
> This would give me an idea where is 0.5 proportion in a cell. Using
> "mosaicplot" function of "graphics" package, I can draw a line using
> "abline." But, with "mosaic" function of "vcd" package, I have tried
> to use "abline" function, which complains " has not been
> called yet".
> Is there a way to draw lines across a mosaic plot?
> ========================================================
> library(vcd)
> music = c(210, 194, 170, 110,
> 190, 406, 730, 290)
> dim(music) = c(2, 4)
> dimnames(music) = list(Age = c("Old", "Young"),
> Education = c("High", "Low", "Upper", "Lower"))
> mosaic(music, keep_aspect_ratio=FALSE)
> abline(h=0.5)
> Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
> has not been called yet
> ========================================================

Not that easy. vcd uses grid graphics, which is a medium-to-low level package; for example, lattice also uses grid graphics, and abline would not help.

You could draw directly using grid graphics, but it may be a bit of reading. Use the example on the bottom of the strucplot page as a starter, which changes color. Also see page 17 of strucplot.pdf in the doc-directory of vcd for an example how to draw a frame around a rectangle.


          gp = gpar(fill = "red"))

Dieter mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Fri 02 May 2008 - 18:59:38 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 02 May 2008 - 21:30:47 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive