Re: contour-plot & ascii-art

• To: mathgroup at smc.vnet.net
• Subject: [mg23734] Re: contour-plot & ascii-art
• From: "Allan Hayes" <hay at haystack.demon.co.uk>
• Date: Mon, 5 Jun 2000 01:09:26 -0400 (EDT)
• References: <8gu7o7\$hum@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Nicola:

The following may be of help.

<< Graphics`Colors`
<<Graphics`Legend`

Suppose that we wish to draw several contour plots with  Contours ->
{z1,z2,..}and have the same colors correspond to the the same heights. The
following function will construct an appropriate color function

MakeColorFunction[cntrs_?OrderedQ, clrs_] /;
Length[clrs] == Length[cntrs] + 1 :=
Function @@ {Which @@
Flatten[{{# <= cntrs[[1]], clrs[[1]]},
Table[{cntrs[[i]] < # <= cntrs[[i + 1]], clrs[[i + 1]]}, {i, 1,
Length[cntrs] - 1}], {cntrs[[-1]] <= #, clrs[[-1]]}}
]}

For example, we get

MakeColorFunction[{z1, z2, z3}, {c1, c2, c3, c4}]

Which[#1 <= z1, c1, z1 < #1 <= z2, c2, z2 < #1 <= z3, c3,
z3 <= #1, c4] &

Let's make a contour plotplot.

cntrs = {-.9, -.6, -.3, 0, .3, .6, .9};

clrs = {Red, Blue, LightSeaGreen, YellowBrown, Khaki, Green, Purple,
Yellow};

cp = ContourPlot[(Cos[x] + Sin[y])/2, {x, 0, 2Pi}, {y, 0, 2Pi},
Contours ->  cntrs,
ColorFunction -> (MakeColorFunction[cntrs, clrs]),
ColorFunctionScaling -> False];

Now the color key to the heights

key = Show[Graphics[{
Transpose[{clrs,
Rectangle[{0, #}, {1, # + 1}] & /@ Range[0, Length[cntrs]]}],
Table[
Text[NumberForm[cntrs[[n]], NumberSigns -> {"-", " "}], {1.3,
n}, {-1, 0}], {n, 1, Length[cntrs]}]
}], AspectRatio -> Automatic,
PlotRange -> {{0, 4}, {0, Length[cntrs] + 1}}];

Use Legend to place the key.

ShowLegend[cp,
{{{key, ""}}, LegendPosition -> {1.1, -.5}, LegendSize -> {.3, 1.2},
LegendSpacing -> 0, LegendShadow -> None,
LegendBorderSpace -> 0},
Frame -> True, FrameTicks -> False,
FrameStyle -> {Thickness[.02], Red}
];

--
Allan
---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565

"Nicola Attico" <attico at peg2.difi.unipi.it> wrote in message
news:8gu7o7\$hum at smc.vnet.net...
> Someone can explain me how to create a
> shaded contour plot together with a bar where the
> various gray-levels have a numerical value
> specified (a sort of termometer).
> This is a very usual way of specifying the
> ``z-value'' associated with a gray-level.
> I'm sure Mathematica has this feature.
>
> /----------------\/-\
> |                ||#| 50
> |                ||#|
> |                ||%| 40
> |    contour     ||%|
> |                ||%| 20
> |                ||.|
> |      plot      ||.| 10
> |                ||.|
> |                || | 0
> \----------------/\-/
>
>
> Is it clear? (sorry for the very bad ascii-art! :-)
>
> Nicola Attico
>
>

```

• Prev by Date: DeleteRepetitions summary
• Next by Date: Re: Newbie Q: Referencing Auto-number Cells
• Previous by thread: Re: contour-plot & ascii-art
• Next by thread: Pb with ZeroTest