MathGroup Archive 1993

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

Search the Archive

Re: question about ColorFunction

  • To: mathgroup at
  • 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
  • Previous by thread: question about ColorFunction
  • Next by thread: thanks and more help...