ComplexRegionPlot

ComplexRegionPlot[pred,{z,zmin,zmax}]

makes a plot showing the region in the complex plane for which pred is True.

ComplexRegionPlot[{pred1,pred2,},{z,zmin,zmax}]

plots regions given by the multiple predicates predi.

Details and Options

Examples

open allclose all

Basic Examples  (5)

Plot a region in the complex plane defined by an inequality:

Specifying the domain with {z,1} is equivalent to {z,-1-,1+}:

Plot a region defined by logical combinations of inequalities:

Plot multiple regions:

Style the region:

Scope  (23)

Sampling  (3)

More points are sampled near the boundary of the region:

Use PlotPoints and MaxRecursion to control adaptive sampling:

Use logical combinations of regions:

Labeling and Legending  (9)

Label regions with Labeled:

Label multiple regions:

Place the labels in different positions:

Label regions with Callout:

Label multiple regions:

Callout leader is turned off when label is inside the region:

Add a legend with PlotLegends:

Use editable placeholders in the legend:

Add legends with Legended:

Presentation  (11)

Provide an explicit PlotStyle for the region:

Provide an explicit BoundaryStyle for the region boundary:

Add descriptive labels for the plot, the axes and the regions:

Use a combination of methods to label regions:

Use a legend for multiple regions:

Produce a legend with editable placeholders:

Use a legend for colored regions:

Use an overlay mesh:

Style the areas between mesh lines:

Color the region with an overlay density:

Use a plot theme:

Options  (61)

AspectRatio  (2)

Regions are shown with AspectRatio set to 1:

Use the natural scale to show regions:

BoundaryStyle  (4)

Regions have a blue boundary:

Use None to show regions without any boundary:

Use a red boundary:

Use a thicker dashed boundary:

ColorFunction  (5)

Color regions by scaled Re[z], Im[z], Abs[z] or Arg[z]:

Named color functions use the scaled Arg[z] direction:

Color regions according to a function of :

ColorFunction has higher priority than PlotStyle:

ColorFunction has lower priority than MeshShading:

ColorFunctionScaling  (1)

Use unscaled Re[z], Im[z], Abs[z] or Arg[z] for coloring the regions:

LabelingSize  (2)

Textual labels are shown at their actual sizes:

Specify the size of the text:

MaxRecursion  (1)

Refine the region where it changes quickly:

Mesh  (7)

Use no mesh:

Show the initial and final sampling meshes:

Use 10 mesh lines in each direction:

Use 3 mesh lines in the Re[z] direction and 6 mesh lines in the Im[z] direction:

Use mesh lines at specific values:

Use different styles for different mesh lines:

Mesh lines apply to the whole region, not each component:

MeshFunctions  (2)

Mesh lines in the Re[z] and Im[z] directions:

Mesh lines at fixed radii from the origin:

MeshShading  (4)

Use None to remove regions:

Lay a checkerboard pattern over a region:

MeshShading has a higher priority than PlotStyle:

MeshShading has a higher priority than ColorFunction:

MeshStyle  (2)

Use red mesh lines:

Use red mesh lines in the Re[z] direction and dashed mesh lines in the Im[z] direction:

PerformanceGoal  (2)

Generate a higher-quality plot:

Emphasize performance, possibly at the cost of quality:

PlotLabels  (5)

Label the region:

Place the label above the region:

Place the label inside the region:

Use Callout to place the label:

Label multiple regions:

PlotLegends  (8)

Use legends:

Use legends for multiple regions:

Use automatic legends for a gradient colored region:

PlotLegends automatically picks up styles:

Use functions as legend texts:

Specify legend texts:

Use Placed to change legend position:

Use SwatchLegend to change legend appearance:

PlotPoints  (1)

Use more initial points to get smoother regions:

PlotRange  (2)

Show the region over the full range for Re[z] and Im[z]:

Automatically compute the range for Re[z] and Im[z]:

PlotStyle  (5)

Regions are shown in light blue:

Use None to just show the boundary of the region:

Use light orange:

Distinct colors are used for different regions:

Use transparent colors for different regions:

PlotTheme  (2)

Use a named theme:

Change the color scheme:

TextureCoordinateFunction  (4)

Texture coordinates align with Re[z] and Im[z] by default:

Reflect the texture in a diagonal:

Stretch the image:

Align texture coordinates align with Im[z] and Abs[z]:

TextureCoordinateScaling  (2)

Use unscaled Re[z] and Im[z] coordinates:

Use unscaled Abs[z] and Arg[z] coordinates:

Applications  (25)

Basic Shapes  (5)

Plot the upper half-plane using Arg:

Plot the same half-plane using Im:

Plot a strip in the complex plane:

Shift the strip one unit to the right

Plot a quadrant of the complex plane:

Plot a sector with angle :

Plot a disk with radius two:

Center the disk at :

Use a double inequality to plot an annulus:

Center the annulus at :

Advanced Shapes  (2)

Use a logical combination of inequalities to plot the union of two basic shapes:

Plot the intersection instead:

Plot a cardioid:

A limaçon:

A lemniscate:

Rotate the lemniscate by 45 degrees:

Mathematical Identities  (1)

Familiar rules from algebra do not always hold for complex variables. For example, is not equal to for all complex values . Try it with :

Plot the region where :

Plot the region where :

Plot the region where TemplateBox[{z}, LogGamma]=log(TemplateBox[{z}, Gamma]):

Regions of Convergence  (6)

Plot the region of convergence for a geometric series:

Plot the region of convergence for a Laurent series:

Plot the region of convergence for an infinite series:

Plot the intervals of convergence of related power series:

Infinite sums of the summands can all be analytically continued to the entire complex plane as for all :

Compute a Laplace transform:

Extract the condition for convergence and plot it:

Compute a Mellin transform:

Extract the condition for convergence and plot it:

Mapping Complex Regions  (7)

Define a complex constant:

Define an additive function that shifts a region in the plane by an amount to a region in the plane with the same size, shape and orientation:

Specify a rectangle in the plane:

You can find an algebraic representation of the region in the plane by applying rect to :

Plot the rectangles in the and planes:

If you plot rect[f[z]], then you get the pre-image of rect[z]:

Specify a disk in the plane:

Plot the disks in the and planes:

Define a complex constant:

Define a linear function that scales and rotates a region in the plane to a region in the plane with the same shape:

Specify a rectangle in the plane:

Plot the rectangles in the and planes:

The scaling factor from the plane to the plane is Abs[c] and the angle of rotation is Arg[c]:

Specify a disk in the plane:

Plot the disks in the and planes:

Define two complex constants:

Define an affine function that combines scaling by Abs[c], rotation by Arg[c] and a shift of :

Specify a rectangle in the plane:

Plot the rectangles in the and planes:

Specify a disk in the plane:

Plot the disks in the and planes:

The reciprocal function maps the interior of a circle centered at to its exterior:

Specify a disk in the plane:

Specify a square in the plane:

Plot the square in the plane and its image in the plane:

To determine the shape of the boundary in the plane, consider the top edge of the square in the plane where , , and show that corresponds to a half-circle in the plane centered at with radius :

Alternatively, you can algebraically describe the transformed region:

Separating the compound inequality into its two components illustrates the four bounding semicircles:

Linear fractional transformations famously map circles and lines to circles and lines. This linear fractional transformation maps the upper half-plane to the unit disk:

Define a function specifying the upper half-plane:

Plot the upper half of the plane and its image in the plane:

Define the unit disk:

See that the unit disk is mapped to the right half-plane:

Define a function specifying the right half-plane:

Observe that the right half-plane is mapped to the upper half-plane:

This suggests that , and you can confirm that with NestList:

Specify a rectangle:

This boundary of the rectangle is composed of lines, and the boundary of its image consists of circles:

Define an exponential function:

Define a rectangle in the plane:

The rectangle in the plane is mapped to a sector of a disk in the plane:

Define the unit disk in the plane:

The disk in the plane is mapped to a another disk in the plane:

Define a logarithmic function:

You can explicitly compute the inverse of f:

Define an annulus:

The annulus is mapped to the exterior of an ellipse within a horizontal strip:

Physics Applications  (1)

Plot a limaçon and its interior:

Use a Joukowski transformation to map the limaçon to a Joukowski airfoil:

Plot the airfoil for Re[w]<0 using the first solution of :

Plot the airfoil for Re[w]0 using the first solution of :

Show the entire airfoil:

Other Applications  (3)

Plot regions for contour integrals:

Integrating around the boundary of and taking and can be used to evaluate the following integral:

A function of a complex variable can have different asymptotic expansions depending on Arg[z]. The boundary between regions is called an (anti-)Stokes line. For example, the complex function is asymptotically equivalent to , so you can regard the imaginary axis as an (anti-)Stokes line:

Consider a different complex function:

Note that the series expansion has a complicated dependence on Arg[z]:

Plot the regions where the three different asymptotic expansions hold:

Choose a complex function:

Find the solutions of :

Compute several iterations of Newton's method:

Set a tolerance:

Plot approximate basins of attraction for Newton's method:

Properties & Relations  (7)

ComplexRegionPlot is a special case of RegionPlot:

ComplexContourPlot plots curves over the complexes:

ComplexPlot shows the argument and magnitude of a function using color:

Use ComplexPlot3D to use the axis for the magnitude:

Use ReImPlot and AbsArgPlot to plot complex values over the real numbers:

Use ComplexListPlot to show the location of complex numbers in the plane:

ComplexStreamPlot and ComplexVectorPlot treat complex numbers as directions:

Possible Issues  (1)

RegionPlot will only visualize two-dimensional regions:

Introduced in 2020
 (12.1)