[R] fonts in mosaic

David Winsemius dwinsemius at comcast.net
Sat Apr 2 17:16:44 CEST 2011


On Apr 2, 2011, at 6:02 AM, Erich Neuwirth wrote:

> The problem of changing the default font used fpr the windows graphics
> device seems to be quite complicated.
> As I wrote already
>
> windowsFonts(myfont="Consolas")
> par(family="myfont")
>
> will make the windows graphics device use Consolas as the
> defaut font for labels.
>
> Therefore, a function call like
> plot(1:10,main="Title")
> will use Consolas for labeling.
> It will, however, not change the default for
>
> mosaic(UCBAdmissions)
>
> The mosaic plot will still use the original default font
> for the device, which in a standard configuration
> seems to be Arial.
>
> par(family=NULL)
> will reset the current default font to the original default font,
> so after this command
> plot(1:10,main="Title")
> will use Arial again.
>
> The the font family used in graphics from package grid is set by
> explicitly using gpar paramenter in calls to functions from that  
> package.
> gpar has default values, but there seems to be no way
> of changing the default values of the gpar object.
>
> Does anybody on the list know if there is a way of changing the  
> default
> values of gpar objects?

Make one with your desired values:

gpCon <- gpar(fontfamily="Consolas", fontsize=8)

Then pass it to the appropriate argument. I don't have a Windows  
device nor a copy of that font but the following changes several of  
the defaults on a Mac if I use "Times" instead of"Consolas".

mosaic(Titanic, main="Test of gpar",
         gp_varnames=gpCon,
         gp_labels=gpCon )

You _might_ be able to change the defaults with grid:::set.gpar()  or  
with grid:::grid.Call("L_setGPar", list(...)) but my efforts did not  
succeed (unless success is measured by undesirable side-effects on  
one's system.) Neither of those functions is "exposed", so it would  
appear that their use is not recommended (or documented). I was able  
to change the internal values returned by get.gpar() but passing them  
on to mosaic() did not succeed.

-- 

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list