• To: mathgroup at yoda.physics.unc.edu
• Subject: Re: question about ColorFunction
• From: twj
• Date: Wed, 27 Jan 93 09:17:33 CST

```>I have a two dimensional table all of whose elements are 0, 1, 2, or 3.  I am
>trying to create a ListDensityPlot with a different color assigned to each of
>these four values.  The following does not display four colors as I had
>expected.  Does anyone know where I went wrong?
>
>In[1]:= colormap[f_] := Switch[Floor[f],
>				0,RGBColor[.25,1,.25],
>				1,RGBColor[1,0,1],
>				2,RGBColor[0,1,1],
>				3,RGBColor[0,0,1]]
>
>In[2]:= table = Table[Mod[x+y,4],{x,0,10},{y,0,10}];
>
>In[3]:= ListDensityPlot[table, Mesh -> False,
>				ColorFunction -> (colormap[#]&)];

The problem here is that the arguments provided to ColorFunction are
scaled to be in the range 0 to 1.

The colormap function should thus be written as such:

colormap[f_] := Which[	f < .25, RGBColor[.25,1,.25],
f < .5,  RGBColor[1,0,1],
f < .75, RGBColor[0,1,1],
True ,RGBColor[0,0,1]]

Also when you use this colormap you don't need to make it into a pure function
since it already is a function of one argument.

ListDensityPlot[table, Mesh -> False,
ColorFunction -> colormap]

Tom Wickham-Jones
Wolfram Research Inc.

```

• Prev by Date: Graphics in 2.1
• Next by Date: Integrate problem