MathGroup Archive 2004

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

Search the Archive

Re: ColorFunctions again (making z=0 be different from z=1)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg50540] Re: ColorFunctions again (making z=0 be different from z=1)
  • From: "Peltio" <peltio at twilight.zone>
  • Date: Thu, 9 Sep 2004 05:18:56 -0400 (EDT)
  • References: <chk0cu$sj$1@smc.vnet.net>
  • Reply-to: "Peltio" <peltioNOSP at Mdespammed.com.invalid>
  • Sender: owner-wri-mathgroup at wolfram.com

"AES/newspost" wrote

>The simple  ColorFunction->Hue  option in Plot3D, ContourPlot, and
>DensityPlot, makes z = 0 appear the same as z = 1 (i.e., both bright
>red), a situation which seems to me to make these plots confusing
>and more difficult to interpret, given that "high peaks" and "sea
>level valleys" may be the most interesting features of such a plot.
>
>Do others have any favorite, not too messy ColorFunctions that
>make values near z = 0 tend toward white, or grey, or less bright,
>or something so that there's a clearly unidirectional visual
>effect going from values of z near 0 to those near z = 1?

Black and white is elegant, isn't it? : )
So, why not to use

    GrayLevel

?
This sets the maximum and minimum levels to different values

    LimitedGrayLevel[x_, maxBk_:0.3, maxWh_:0.90] :=
      GrayLevel[maxBk + x(maxWh - maxBk)]

This is the color function I used to plot fuzzy relations:

    FuzzyGray[x_] := LimitedGrayLevel[1 - x, 0, .9]

Here are a few examples

    f[x_, y_] := Sin[(x^2 + y^2)]/Sqrt[(x^2 + y^2)]

    Block[{$DisplayFunction = Identity},
        p2d = Plot[Evaluate[First[GrayLevel[1 - x]]], {x, 0, 1}, Frame ->
True,
            PlotRange -> {0, 1}, AspectRatio -> Automatic];
        p3d =
          Plot3D[f[x, y], {x, -4, 4}, {y, -4, 4},
            ColorFunction -> (GrayLevel[1 - #] &), PlotRange -> All,
            PlotPoints -> 35];
        ];
    Show[GraphicsArray[{p2d, p3d}, PlotLabel -> "GrayLevel[1-#]"]];

    Block[{$DisplayFunction = Identity},
        p2d = Plot[Evaluate[First[LimitedGrayLevel[1 - x]]], {x, 0, 1},
            Frame -> True, PlotRange -> {0, 1}, AspectRatio -> Automatic];
        p3d =
          Plot3D[f[x, y], {x, -4, 4}, {y, -4, 4},
            ColorFunction -> (LimitedGrayLevel[1 - #] &), PlotRange -> All,
            PlotPoints -> 35];
        ];
    Show[GraphicsArray[{p2d, p3d}, PlotLabel -> "LimitedGrayLevel[1-#]"]];

    Block[{$DisplayFunction = Identity},
        p2d = Plot[Evaluate[First[FuzzyGray[x]]], {x, 0, 1}, Frame -> True,
            PlotRange -> {0, 1}, AspectRatio -> Automatic];
        p3d =
          Plot3D[f[x, y], {x, -4, 4}, {y, -4, 4}, ColorFunction ->
FuzzyGray,
            PlotRange -> All, PlotPoints -> 35];
        ];
Show[GraphicsArray[{p2d, p3d}, PlotLabel -> "FuzzyGray[#]"]];

Cheers,
Peltio
invalid address in reply-to. crafty demunging required to mail me.


  • Prev by Date: Re: Exact real numbers
  • Next by Date: Re: parallel NMinimize[]
  • Previous by thread: Re: ColorFunctions again (making z=0 be different from z=1)
  • Next by thread: Re: ColorFunctions again (making z=0 be different from z=1)