[Q] problem with ColorFunction in ListDensityPlot
- Subject: [mg3114] [Q] problem with ColorFunction in ListDensityPlot
- From: glgesm at engr.psu.edu (Gary L. Gray)
- Date: 2 Feb 1996 04:28:26 -0600
- Approved: usenet@wri.com
- Distribution: local
- Newsgroups: wri.mathgroup
- Organization: Penn State University - Engineering Science & Mechanics
- Sender: daemon at wri.com
I am putting together a demo for a class in which I am trying to use
Newton-Raphson to iterate the equation z^3 - 1 = 0. I then want to plot
which points in the complex plane go to which root by coloring the initial
starts points three different colors (results in a fractal). Here is what
I am doing:
I first define the function I will be iterating:
f[z_] := N[z - (z^3 - 1)/(3 z^2)];
Then I create the an array of points in which each element of the array
corresponds to the root to which the iteration converges for a given
starting value:
p = Table[ FixedPoint[ f, x + I y,
SameTest -> (Abs[#1 - #2] < 10.^-4 &)],
{x, -2, 2, 0.01}, {y, -2, 2, 0.01}];
Then I label the points 1, 2, or 3 depending on which root the starting
value converges to:
points = Table[ Which[Im[p[[i,j]]] < -0.8, 1,
Im[p[[i,j]]] > 0.8, 2,
True, 3],
{i, Length[p]}, {j, Length[p]} ];
Now, I get a grayscale density plot by using the following command:
ListDensityPlot[points, Mesh -> False,
MeshRange -> {{-2, 2}, {-2, 2}}]
The question is, how do I color it say Red, Blue, and Green? Why doesn't
the following command work?
ListDensityPlot[points, Mesh -> False,
ColorFunction ->
( Which[ # == 1, RGBColor[0,0,1],
# == 2, RGBColor[1,0,0],
True, RGBColor[0,1,0] ]& )
]
Thank you,
/---------------------------------------------------------\
| Gary L. Gray Engineering Science & Mechanics |
| Assistant Professor Penn State University |
| mailto:glgesm at engr.psu.edu (814) 863-1778 |
| http://www.esm.psu.edu/HTMLs/Faculty/GGray.html |
\=========================================================/