Re: Multiple conditions in ContourPlot
- To: mathgroup at smc.vnet.net
- Subject: [mg103028] Re: [mg102999] Multiple conditions in ContourPlot
- From: "David Park" <djmpark at comcast.net>
- Date: Fri, 4 Sep 2009 03:16:38 -0400 (EDT)
- References: <11985823.1252022604058.JavaMail.root@n11>
Basically, use the RegionFunction option to put in extra conditions. f := Function[z, z^2 Sin[z] Cos[z]] ContourPlot[Im[f[x + I y]] == 0, {x, -5, 5}, {y, -5, 5}, RegionFunction -> Function[{x, y}, Re[f[x + I y]] > 0]] Just for fun, here is a fancier plot of the same function using Presentations. The Re positive regions are colored light blue, the negative regions are colored light pink, the Im zero contourlines are black in the positive regions and a very faint gray in the negative regions. Needs["Presentations`Master`"] With[ {f = Function[z, z^2 Sin[z] Cos[z]], zmin = -5 (1 + I), zmax = 5 (1 + I)}, Draw2D[ {RegionDraw[Re[f[x + I y]] > 0, {x, -5, 5}, {y, -5, 5}, PlotStyle -> LightBlue, BoundaryStyle -> None], RegionDraw[Re[f[x + I y]] < 0, {x, -5, 5}, {y, -5, 5}, PlotStyle -> LightPink, BoundaryStyle -> None], Black, ComplexCartesianContour[Im[f[z]] == 0, {z, zmin, zmax}, ContourLabels -> Automatic, RegionFunction -> Function[{x, y}, Re[f[x + I y]] > 0]], GrayLevel[0.8], ComplexCartesianContour[Im[f[z]] == 0, {z, zmin, zmax}, ContourLabels -> Automatic, RegionFunction -> Function[{x, y}, Re[f[x + I y]] < 0]]}, Frame -> True, FrameLabel -> {Re, Im}, PlotLabel -> Row[{Im["f[z]"] == 0}], ImageSize -> 300] ] David Park djmpark at comcast.net http://home.comcast.net/~djmpark/ From: Theo Moore [mailto:tsg.moore at googlemail.com] Suppose I had a function f[z] and I wanted to plot the contour such that the imaginary part of f[z] is zero and the real part is positive. I thought I could use: ContourPlot[ (Im[f[x + y*I] == 0) && (Re[f[x + y*I] >= 0), {x, -5, 5}, {y, -5, 5}] But it does not work. I can do it using only one. For example, ContourPlot[Im[f[x + y*I] == 0, {x, -5, 5}, {y, -5, 5}] But how do you use multiple logical conditions?