MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Possible bug in Mathematica 7 using ColorFunction

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101186] Re: [mg101112] Possible bug in Mathematica 7 using ColorFunction
  • From: John Fultz <jfultz at wolfram.com>
  • Date: Fri, 26 Jun 2009 06:50:18 -0400 (EDT)
  • Reply-to: jfultz at wolfram.com

On Wed, 24 Jun 2009 06:33:36 -0400 (EDT), Jeff Lawlis wrote:
> Problem:  use of ColorFunction affects spacing of Greek characters in
> Frame label.
>
> Here is a simple example of the problem:
>
> SetOptions[Plot, Frame -> True, FrameLabel -> "Wavelength (\[Mu]m)"]
> Plot[y = x, {x, 1, 1000},
> ColorFunction -> (ColorData["VisibleSpectrum"][#] &),
> ColorFunctionScaling -> False, Filling -> Axis]
>
> Notice the space between the Greek character \[Mu] and the m, causing the
> m to overlap the right parantheses.  The space disappears if you remove
> the ColorFunction gradient from the plot parameters.  Also, if you change
> \[Mu] to a standard character like m, the formatting looks perfectly
> acceptable.  To be honest, I don't really understand the reason for the
> [#] & following the ColorData tag, but the gradient doesn't seem to work
> properly without it.  Is my syntax correct?

I'm running under Windows and seeing this.  My explanation may vary slightly in 
the details if you're seeing this on another platform, but the essence should be 
the same.

Under Windows, the drawing of VertexColors (the option by which color gradients 
are implemented) is done using the 3D drawing system.  One down side of using 
the 3D drawing system is that it requires using a completely different method of 
rendering fonts which is incapable of rendering ClearType.

For small font sizes such as those used in FrameLabels by default, antialiasing 
actually reduces readability, unlike ClearType where it generally enhances 
readability.  So, since Mathematica is unable to use ClearType and standard
antialiasing would be less readable at this size, Mathematica turns off font
smoothing altogether.  But at small sizes, roundoff issues and other limitations 
can create the effect you're seeing of inappropriate spacing between characters.

Even though we only need the 3D drawing system to correctly render one piece of 
the graphic, that choice affects the entire graphic, including frame labels.
The issue won't affect printing, where font smoothing is not needed, and it
won't be apparent under magnification, where the larger sizes allow better 
on-screen rendering of the text.

Sincerely,
 
John Fultz
jfultz at wolfram.com
User Interface Group
Wolfram Research, Inc.




  • Prev by Date: Re: Wolfram | Alpha: Acres per square mile? (oddities)
  • Next by Date: Re: TeX output via TeXForm: variable name translation
  • Previous by thread: Re: Possible bug in Mathematica 7 using ColorFunction
  • Next by thread: Almost finished - my first calculator!