Skip to content

mosaicplot() update

9 messages · Brian Ripley, Achim Zeileis, John W Emerson +1 more

#
Hi --

I've found a need for an additional option to mosaicplot(), to suppress
the labels.  It's not difficult, obviously, a minor thing.

Would you like me to submit my revised code (I'll use your code rather
than my original source code which was adapted for S-Plus and R)?  Or
it might be a 5-minute change for the appropriate person.  No problem
either way, just let me know.

Cheers,

Jay

John Emerson
Assistant Professor of Statistics
Yale University
#
Jay,

Having your code change to know exactly what you are suggesting would be 
helpful.

There is an enhanced version of mosaicplot called mosaic in package vcd, 
and you might like to talk to its maintainers (if the facility is not 
already there, as at a quick glance it seemed not to be).

Brian
On Mon, 7 Nov 2005, John W Emerson wrote:

            

  
    
#
Brian,

Thanks, I'll send the code with the few changes marked
with something obvious like,

################################# JWE changed previous line,

etc...

I wasn't aware of the {vcd} implementation.  It looks like it
is built on my original S-Plus code, too.  Always nice to get
the citation!

Jay
On Mon, 7 Nov 2005, Prof Brian Ripley wrote:

            
#
On Mon, 7 Nov 2005 16:43:08 +0000 (GMT) Prof Brian Ripley wrote:

            
Depending on what exactly you want, you could do e.g.
  mosaic(HairEyeColor, labeling = NULL)
which prints no labels at all. If you only want to suppress
names(dimnames(HairEyeColor)) you could do
  mosaic(HairEyeColor, labeling_args = list(varnames = FALSE))
etc.
The user can change everything (well, almost)! Unfortunately, this
flexibility means that most options will not be obvious `at a quick
glance'. David (as the main author) knows most options, even I (as a
co-author) had to look up how the above works.
But now there are at least some vignettes which explain the many knobs
and switches in mosaic().
Z
#
Jay:
Nope, everything written from scratch using Paul's wonderful grid
graphics. The internals look completely different and David's
implementation provides not only mosaic plots but also association and
sieve plots within the same framework.
...give credit where credit is due...:-)
Best,
Z
#
Thanks, obviously my mistake.  The google search 
turned up my code with {vcd} after it, so there is
at least one page out there where my version (mosaicplot)
is listed incorrectly as being in {vcd}.

Cheers!

Jay
On Mon, 7 Nov 2005, Achim Zeileis wrote:

            
#
All,

Again, my apologies for seeming to claim credit for
your other mosaic implementation.  However, there are two
sources of this confusion, and I hope the following helps.

1. "my" implementation (e.g. the one originally written for
and included in S-Plus, then modified and improved for R
by "KH") appears to have been included in a package
called "vcd" at some point in time.  This was one of the
first hits when I used googled "vcd".  See, for example:

http://www.maths.lth.se/help/R/.R/library/vcd/html/mosaicplot.html

2. Once I load library(vcd) and do ?mosaicplot, the top of the
help page does, in fact, say "package:vcd" although it credits me
as the author?!  This was downloaded today from CRAN.  This most
certainly is not my fault, nor do I want to take credit for
something that isn't mine.  If {vcd} uses R:base's mosaicplot(),
then, of course, everything is fine, but I gather from your email
that this is not the case. So perhaps the {vcd} package needs to
update its documentation.  If I am misunderstanding something,
again, I apologize.

Anyway, the more interested people we have improving
our graphics tools, the better!  !_)

Cheers,

Jay
On Mon, 7 Nov 2005, Achim Zeileis wrote:

            
#
`mosaicplot' is a function in package `graphics' (and lists you as the
author) and `mosaic' is a function in package `vcd'. There _was_ a
function `vcd::mosaicplot' in older versions of the `vcd' package masking
`graphics::mosaicplot: `update.packages("vcd")' will update the package
and documentation on your system :-)

Best,

Torsten
#
Torsten, thanks for pointing this out. 

Jay, just to expand a little on this explanation:
The reason for these changes in vcd is the following: When we started
the project we just extended the mosaicplot() function from graphics
(which is based on your code) in a few directions but keeping it
upwardly compatible. Therefore, we decided that it's ok to overload the
graphics function.
Rather soon we wanted something based on grid and something which can be
more easily modified and extended and we've written about three (I
think) new implementations in grid. As the interface needed to be quite
different from the original one, we decided that it wouldn't be
appropriate to overload the graphics function and hence chose a new
function name mosaic(). The corresponding man page still has Emerson
(1998) in the references but does not mention you as the author (as it
is enitrely new code).

Best,
Z