[R] Finding different hues for a mosaic plot compatible with grayscale printing

Achim Zeileis Achim.Zeileis at uibk.ac.at
Thu May 13 11:24:16 CEST 2010

On Wed, 12 May 2010, Simon Kiss wrote:

> I'm working with the following code below to generate a
> how do I set the h,c, and l values such that the significant, positive 
> residuals appear different on a grayscale printer from significant grayscale 
> residuals.  The challenge as I see it is that one can only distinguish the 
> positive and negative residuals with the hue/. Varying the chroma and the 
> luminance only affect the distinctions between large and small and 
> significant and non significant.  But my positive and negative residuals are 
> both large (absolutely) and significant, meaning that they will have the same 
> chroma and luminosity, but different hues.
> I guess the key here is to find two separate hue values that appear 
> substantially different *on a grayscale printer* at the same chroma and 
> luminance. I have read through Zeileis et al. (2007, 2008) but can't quite 
> find the answer there.
> I have also tried the Friendly shading to vary the line type, but I can't 
> find line types that are different enough to communicate the difference 
> between positive and negative residuals clearly.

This is difficult. In grayscale printing you have just one dimension 
available for color shading, namely the luminance/brightness. This is 
already used for the size of the residuals and so you need something else 
to code the sign. In our HCL palettes this is done by the hue but in such 
a way that the choice of hue does not change the luminance (this is the 
excellent feature of HCL color space). So, as Jim already pointed out, you 
can just do something about the type of filling or the borders etc. 
Another option would be to use a single grayscale with dark colors for 
large positive residuals and bright colors for large negative residuals 
(or vice versa). However, none of the approaches will be very intuitive 
and the color version will be much more powerful.

If you are forced to use grayscale, you might consider putting an 
assocation plot (via function assoc()) next to the mosaic plot.


> Your assistance is appreciated.
>> mosaic(~educ+trade_off_scaled, shade=TRUE, main="Support For Environmental 
>> Protection At The Expense of Creating Jobs By Education", 
>> gp=shading_hcl(CST17$observed, CST17$expected, ASR17, df=6, h=c(260,0), 
>> c=c(100,0), l=c(90,0)), labeling_args=list(rot_labels=c(25,90,0,0), 
>> offset_labels=c(1,0,0,2), offset_varnames=c(2,0,0,4), 
>> set_varnames=c(trade_off_scaled="Protecting The Environment Is More 
>> Important Than Creating Jobs", educ="Level of Education")))
> *********************************
> Simon J. Kiss, PhD
> SSHRC and DAAD Post-Doctoral Fellow
> John F. Kennedy Institute of North America Studies
> Free University of Berlin
> Lansstraße 7-9
> 14195 Berlin, Germany
> Cell: +49 (0)1525-300-2812,
> Web: http://www.jfki.fu-berlin.de/index.html
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list