Re: Does ContourPlot behave correctly?
- To: mathgroup at smc.vnet.net
- Subject: [mg59860] Re: [mg59822] Does ContourPlot behave correctly?
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 24 Aug 2005 06:30:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Vlad, It looks all right to me. Often it is easier to see what is happening with an animation. Here I use Hue instead of GrayLevel. And since the function varies between 1 and 0 I used ColorFunctionScaling -> False. Needs["Graphics`Animation`"] frame[c2_] := ContourPlot[E^((-(1/2))*(x^2 + y^2)), {x, -1, 1}, {y, -1, 1}, Contours -> {0.39, c2, 0.95}, ColorFunction -> Hue, ColorFunctionScaling -> False, PlotPoints -> 100]; Animate[frame[c2], {c2, 0.4, 0.95, 0.025}] SelectionMove[EvaluationNotebook[], All, GeneratedCell] FrontEndTokenExecute["OpenCloseGroup"]; Pause[0.5]; FrontEndExecute[{FrontEnd`SelectionAnimate[200, AnimationDisplayTime -> 0.1, AnimationDirection -> ForwardBackward]}] The outer and inner contours stay fixed, and the middle contour moves between them. What is confusing is that the two middle colors, or gray levels if you used that, change as the contour moves. In the following I use a custom color function that breaks the colors according to the middle contour. colorfunc[c2_][z_] := Which[ z <= 0.39, Hue[0.0], 0.39 < z <= c2, Hue[0.3], c2 < z <= 0.95, Hue[0.6], z > 0.95, Hue[0.9]] frame[c2_] := ContourPlot[E^((-(1/2))*(x^2 + y^2)), {x, -1.5, 1.5}, {y, -1.5, 1.5}, Contours -> {0.39, c2, 0.95}, ColorFunction -> colorfunc[c2], ColorFunctionScaling -> False, PlotPoints -> 100]; Animate[frame[c2], {c2, 0.4, 0.95, 0.025}] SelectionMove[EvaluationNotebook[], All, GeneratedCell] FrontEndTokenExecute["OpenCloseGroup"]; Pause[0.5]; FrontEndExecute[{FrontEnd`SelectionAnimate[200, AnimationDisplayTime -> 0.1, AnimationDirection -> ForwardBackward]}] Now the colors are perfectly stable and the middle contour moves continuously between the inner and outer contour. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Vladislav [mailto:kazimir04 at yahoo.co.uk] To: mathgroup at smc.vnet.net Hello, I try two commands, the only difference being .9 in lieu of .5 in the Contours option. ContourPlot[Exp[-(x^2 + y^2)/2], {x, -1, 1}, {y, -1, 1}, Contours -> {.39, .5, .95}, ColorFunction -> ( GrayLevel[#1] &), PlotPoints -> 100]; ContourPlot[Exp[-(x^2 + y^2)/2], {x, -1, 1}, {y, -1, 1}, Contours -> {.39, .9, .95}, ColorFunction -> (GrayLevel[#1] &), PlotPoints -> 100]; I obtain two different plots. The smallest circle is the same for the two pictures, it is OK becouse it corresponds to the Contor at 0.95. I expected to have 3 circle on the two pictures with the only difference in the second circle at .9 or .5. In reallity, I have only two circles in the first plot and three circles in the second one. Moreover the external contour at .39 is not the same in the two pictures. Can anybody explain or justify this behavoir? Vlad