ComplexContourPlot
✖
ComplexContourPlot
plots contour lines for each of f1g1, f2=g2, ….
Details and Options




- At positions where f does not evaluate to a real number, holes are left so that the background to the contour plot shows through. The functions f and g will typically involve functions like Re, Im, Abs and Arg that extract real components from complex numbers for comparison purposes.
- ComplexContourPlot[f,{z,n}] is equivalent to ComplexContourPlot[f,{z,-n-n I,n+n I}].
- ComplexContourPlot treats the variable z as local, effectively using Block.
- ComplexContourPlot has attribute HoldAll and evaluates the fi and gi only after assigning specific numerical values to z. In some cases, it may be more efficient to use Evaluate to evaluate f and g symbolically first.
- ComplexContourPlot has the same options as Graphics, with the following additions and changes: [List of all options]
-
AspectRatio 1 ratio of height to width BoundaryStyle None how to draw RegionFunction boundaries BoxRatios Automatic effective 3D bounding-box ratios ClippingStyle None how to draw values clipped by PlotRange ColorFunction Automatic how to color regions between contour lines ColorFunctionScaling True whether to scale the argument to ColorFunction ContourLabels Automatic how to label contour levels Contours Automatic how many or what contours to use ContourShading Automatic how to shade regions between contours ContourStyle Automatic the style for contour lines EvaluationMonitor None expression to evaluate at every function evaluation Exclusions Automatic x,y curves to exclude ExclusionsStyle None what to draw at excluded curves Frame True whether to put a frame around the plot FrameTicks Automatic frame tick marks LightingAngle None effective angle of the simulated light source MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh lines in each direction to draw MeshFunctions {} how to determine the placement of mesh lines MeshStyle Automatic the style for mesh lines Method Automatic the method to use for refining contours PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLegends None legends for contour regions PlotPoints Automatic the initial number of sample points in each direction PlotRange {Full,Full,Automatic} the range of f or other values to include PlotRangeClipping True whether to clip at the plot range PlotRangePadding Automatic how much to pad the range of values PlotTheme $PlotTheme overall theme for the plot RegionFunction (True&) how to determine whether a point should be included ScalingFunctions None how to scale individual coordinates WorkingPrecision MachinePrecision the precision used in internal computations - Typical settings for PlotLegends include:
-
None no legend Automatic automatically determine legend Placed[lspec,…] specify placement for legend - With the default setting ContourShading->Automatic, shading is used for ComplexContourPlot[f,…] but not for ComplexContourPlot[f=g,…] or ComplexContourPlot[{f1,f2,…},…].
- ComplexContourPlot[{f1==g1,f2==g2,…},…] superimposes the contour lines associated with all of the equalities fi==gi.
- In determining how to color regions between contour levels, ComplexContourPlot looks first at any explicit setting given for ContourShading, then at the setting for ColorFunction.
- When plotting contours of multiple functions ComplexContourPlot[{f1,f2,…},…], a list of contour specifications Contours{spec1,spec2,…} will use the corresponding speci for each of the fi.
- ComplexContourPlot initially evaluates f at a grid of equally spaced sample points specified by PlotPoints. Then it uses an adaptive algorithm to subdivide at most MaxRecursion times to generate smooth contours.
- You should realize that since it uses only a finite number of sample points, it is possible for ComplexContourPlot to miss features of your functions. To check your results, you should try increasing the settings for PlotPoints and MaxRecursion.
- With some settings for PerformanceGoal, other specific option settings may be overridden.
- The arguments supplied to functions in MeshFunctions and RegionFunction are z, f.
- ColorFunction is supplied with a single argument, given by default by the average of the scaled values of f for each pair of successive contour levels.
- With the default settings Exclusions->Automatic and ExclusionsStyle->None, ComplexContourPlot breaks continuity in its sampling at any discontinuity curve it detects. The discontinuity is immediately visible only if it jumps out of a particular contour level.
- Possible settings for ScalingFunctions include:
-
sf scale the f values {sRe,sIm} scale the real and imaginary axes {sRe,sIm,sf} scale the real and imaginary axes and f values -
AlignmentPoint Center the default point in the graphic to align with AspectRatio 1 ratio of height to width Axes False whether to draw axes AxesLabel None axes labels AxesOrigin Automatic where axes should cross AxesStyle {} style specifications for the axes Background None background color for the plot BaselinePosition Automatic how to align with a surrounding text baseline BaseStyle {} base style specifications for the graphic BoundaryStyle None how to draw RegionFunction boundaries BoxRatios Automatic effective 3D bounding-box ratios ClippingStyle None how to draw values clipped by PlotRange ColorFunction Automatic how to color regions between contour lines ColorFunctionScaling True whether to scale the argument to ColorFunction ContentSelectable Automatic whether to allow contents to be selected ContourLabels Automatic how to label contour levels Contours Automatic how many or what contours to use ContourShading Automatic how to shade regions between contours ContourStyle Automatic the style for contour lines CoordinatesToolOptions Automatic detailed behavior of the coordinates tool Epilog {} primitives rendered after the main plot EvaluationMonitor None expression to evaluate at every function evaluation Exclusions Automatic x,y curves to exclude ExclusionsStyle None what to draw at excluded curves FormatType TraditionalForm the default format type for text Frame True whether to put a frame around the plot FrameLabel None frame labels FrameStyle {} style specifications for the frame FrameTicks Automatic frame tick marks FrameTicksStyle {} style specifications for frame ticks GridLines None grid lines to draw GridLinesStyle {} style specifications for grid lines ImageMargins 0. the margins to leave around the graphic ImagePadding All what extra padding to allow for labels etc. ImageSize Automatic the absolute size at which to render the graphic LabelStyle {} style specifications for labels LightingAngle None effective angle of the simulated light source MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh lines in each direction to draw MeshFunctions {} how to determine the placement of mesh lines MeshStyle Automatic the style for mesh lines Method Automatic the method to use for refining contours PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLabel None an overall label for the plot PlotLegends None legends for contour regions PlotPoints Automatic the initial number of sample points in each direction PlotRange {Full,Full,Automatic} the range of f or other values to include PlotRangeClipping True whether to clip at the plot range PlotRangePadding Automatic how much to pad the range of values PlotRegion Automatic the final display region to be filled PlotTheme $PlotTheme overall theme for the plot PreserveImageOptions Automatic whether to preserve image options when displaying new versions of the same graphic Prolog {} primitives rendered before the main plot RegionFunction (True&) how to determine whether a point should be included RotateLabel True whether to rotate y labels on the frame ScalingFunctions None how to scale individual coordinates Ticks Automatic axes ticks TicksStyle {} style specifications for axes ticks WorkingPrecision MachinePrecision the precision used in internal computations

List of all options




Examples
open allclose allBasic Examples (4)Summary of the most common use cases
Plot a contour map of a real function of a complex variable:

https://wolfram.com/xid/01yrq90ohcy-c57knc

Plot an equality over the complex plane:

https://wolfram.com/xid/01yrq90ohcy-c7knz4


https://wolfram.com/xid/01yrq90ohcy-btcid8


https://wolfram.com/xid/01yrq90ohcy-c485jr

Scope (18)Survey of the scope of standard use cases
Sampling (6)
More points are sampled where the function changes quickly:

https://wolfram.com/xid/01yrq90ohcy-80gcc

The white regions indicate where the function has been clipped. The plot range is selected automatically:

https://wolfram.com/xid/01yrq90ohcy-ih8egk

Use PlotRange to focus in on areas of interest:

https://wolfram.com/xid/01yrq90ohcy-5jdli

Use PlotPoints and MaxRecursion to control adaptive sampling:

https://wolfram.com/xid/01yrq90ohcy-hlyo9j

Use RegionFunction to restrict the surface to a region given by inequalities:

https://wolfram.com/xid/01yrq90ohcy-glw9tx

Use Exclusions to control whether and where to cut for discontinuities:

https://wolfram.com/xid/01yrq90ohcy-cpgvjp

Labeling and Legending (6)
Add labels for the frame and the overall plot:

https://wolfram.com/xid/01yrq90ohcy-lyteo


https://wolfram.com/xid/01yrq90ohcy-cq2dcy


https://wolfram.com/xid/01yrq90ohcy-lks3v


https://wolfram.com/xid/01yrq90ohcy-z4a89

For multiple functions, use a line legend:

https://wolfram.com/xid/01yrq90ohcy-fqatlo

For multiple functions, use a line legend with placeholders:

https://wolfram.com/xid/01yrq90ohcy-cnjeuf

Add a legend for implicit curves:

https://wolfram.com/xid/01yrq90ohcy-fiict

Presentation (6)

https://wolfram.com/xid/01yrq90ohcy-dybrjz

Use specific colors between contours:

https://wolfram.com/xid/01yrq90ohcy-b98y7o

Use different styles for the contours:

https://wolfram.com/xid/01yrq90ohcy-cezsl6

Explicitly set the style for contours:

https://wolfram.com/xid/01yrq90ohcy-i61znj


https://wolfram.com/xid/01yrq90ohcy-ewymp


https://wolfram.com/xid/01yrq90ohcy-c1d1hi

Options (138)Common values & functionality for each option
AspectRatio (4)
By default, AspectRatio uses the same width and height:

https://wolfram.com/xid/01yrq90ohcy-hvapwy

Use numerical value to specify the height to width ratio:

https://wolfram.com/xid/01yrq90ohcy-ja1j6m

AspectRatioAutomatic determines the ratio from the plot ranges:

https://wolfram.com/xid/01yrq90ohcy-c0a54e

AspectRatioFull adjusts the height and width to tightly fit inside other constructs:

https://wolfram.com/xid/01yrq90ohcy-bhvdbx

https://wolfram.com/xid/01yrq90ohcy-e8x23t

Axes (4)
By default, ComplexContourPlot uses a frame instead of axes:

https://wolfram.com/xid/01yrq90ohcy-f57fy5


https://wolfram.com/xid/01yrq90ohcy-ey1hr6

Use AxesOrigin to specify where the axes intersect:

https://wolfram.com/xid/01yrq90ohcy-px9vs

Turn each axis on individually:

https://wolfram.com/xid/01yrq90ohcy-5ppd9

AxesLabel (3)
AxesOrigin (2)
AxesStyle (4)
Change the style for the axes:

https://wolfram.com/xid/01yrq90ohcy-ehtyi

Specify the style of each axis:

https://wolfram.com/xid/01yrq90ohcy-df8sjc

Use different styles for the ticks and the axes:

https://wolfram.com/xid/01yrq90ohcy-bl8c6w

Use different styles for the labels and the axes:

https://wolfram.com/xid/01yrq90ohcy-b2xlmf

BoundaryStyle (3)
Use a red boundary around the edges of the surface:

https://wolfram.com/xid/01yrq90ohcy-zxjzd

BoundaryStyle applies to holes cut by RegionFunction, but it does not apply to cuts made by Exclusions:

https://wolfram.com/xid/01yrq90ohcy-o6ko13

Use ExclusionsStyle instead:

https://wolfram.com/xid/01yrq90ohcy-1a8hg

ClippingStyle (4)
Show clipped regions like the rest of the surface:

https://wolfram.com/xid/01yrq90ohcy-yvk1s


https://wolfram.com/xid/01yrq90ohcy-od9f3b

Use pink to fill the clipped regions:

https://wolfram.com/xid/01yrq90ohcy-lang56

Use green where the surface is clipped above and pink below:

https://wolfram.com/xid/01yrq90ohcy-c9hk1p

ColorFunction (3)
ColorFunctionScaling (1)
The ColorFunction can use scaled or unscaled coordinates:

https://wolfram.com/xid/01yrq90ohcy-rg6h42

ContourLabels (2)
Contours (9)
Use 10 equally spaced contours:

https://wolfram.com/xid/01yrq90ohcy-weccx

Use automatic contour selection:

https://wolfram.com/xid/01yrq90ohcy-niiufu

Use at most 5 automatically selected contours:

https://wolfram.com/xid/01yrq90ohcy-nc8pok


https://wolfram.com/xid/01yrq90ohcy-xjykb

Use specific contours with specific styles:

https://wolfram.com/xid/01yrq90ohcy-hx9dbz

Use a function to generate a set of contours:

https://wolfram.com/xid/01yrq90ohcy-cxhd8z

Have contours at the 40% and 80% percentile values:

https://wolfram.com/xid/01yrq90ohcy-ge98hd

The number of contours can be controlled separately if multiple functions are specified:

https://wolfram.com/xid/01yrq90ohcy-f36wrv

Specific contours can be specified for multiple functions:

https://wolfram.com/xid/01yrq90ohcy-do0jgx

ContourShading (5)
The automatic shading is darker at low values and lighter at high values:

https://wolfram.com/xid/01yrq90ohcy-fpj0l3

Use None to only show the contour lines:

https://wolfram.com/xid/01yrq90ohcy-jmxpxk

Shading is automatically suppressed if a list of functions is specified:

https://wolfram.com/xid/01yrq90ohcy-c42cyc

Shade between contours using a color function:

https://wolfram.com/xid/01yrq90ohcy-bkxmu

Use an explicit list of colors between contours:

https://wolfram.com/xid/01yrq90ohcy-q25yr

ContourStyle (7)
The default contour style is a partially transparent line:

https://wolfram.com/xid/01yrq90ohcy-kitqw5

Use dashed, opaque contour lines:

https://wolfram.com/xid/01yrq90ohcy-flutq4

Use None to suppress contour lines:

https://wolfram.com/xid/01yrq90ohcy-6aeyh

ContourStyleNone is equivalent to ContourLinesFalse:

https://wolfram.com/xid/01yrq90ohcy-oi50s

Alternate between red and dashed contour lines:

https://wolfram.com/xid/01yrq90ohcy-wjca

Use different styles for different functions:

https://wolfram.com/xid/01yrq90ohcy-0as6b

Use different styles for different equations:

https://wolfram.com/xid/01yrq90ohcy-kp7fkg

Use the same style for all of the equations:

https://wolfram.com/xid/01yrq90ohcy-q3dofd

EvaluationMonitor (2)
Show where ContourPlot samples a function:

https://wolfram.com/xid/01yrq90ohcy-blte8b

Count how many times Arg[ArcTan[z]] is evaluated:

https://wolfram.com/xid/01yrq90ohcy-b57o15

Exclusions (6)
Exclusions are automatically displayed:

https://wolfram.com/xid/01yrq90ohcy-cdw0jf

Indicate that no exclusions should be computed:

https://wolfram.com/xid/01yrq90ohcy-bz2qi6

Give exclusions as an equation:

https://wolfram.com/xid/01yrq90ohcy-w6ojb


https://wolfram.com/xid/01yrq90ohcy-gpctgv

Use conditions with the exclusion equations:

https://wolfram.com/xid/01yrq90ohcy-ilttut

Use both automatically computed and explicit exclusions:

https://wolfram.com/xid/01yrq90ohcy-zrazq

ExclusionsStyle (2)
Frame (4)
ComplexContourPlot uses a frame by default:

https://wolfram.com/xid/01yrq90ohcy-s0sdca

Use FrameFalse to turn off the frame:

https://wolfram.com/xid/01yrq90ohcy-3v323d

Draw a frame on the left and right edges:

https://wolfram.com/xid/01yrq90ohcy-tooeij

Draw a frame on the left and bottom edges:

https://wolfram.com/xid/01yrq90ohcy-kd7bwq

FrameLabel (4)
Place a label along the bottom edge of the frame:

https://wolfram.com/xid/01yrq90ohcy-3h3my

Frame labels are placed on the bottom and left frame edges by default:

https://wolfram.com/xid/01yrq90ohcy-h104wd

Place labels on each of the edges in the frame:

https://wolfram.com/xid/01yrq90ohcy-ejh93

Specify a style for both labels and frame tick labels:

https://wolfram.com/xid/01yrq90ohcy-6az71s

FrameStyle (2)
FrameTicks (9)
Frame ticks are placed automatically by default:

https://wolfram.com/xid/01yrq90ohcy-yw0xod


https://wolfram.com/xid/01yrq90ohcy-m2tv81

Use frame ticks on the bottom edge:

https://wolfram.com/xid/01yrq90ohcy-ekqh86

By default, the top and right edges have tick marks but no tick labels:

https://wolfram.com/xid/01yrq90ohcy-y43iuz

Use All to include tick labels on all edges:

https://wolfram.com/xid/01yrq90ohcy-3cgyav

Place tick marks at the specified positions:

https://wolfram.com/xid/01yrq90ohcy-ele4sw

Draw frame tick marks at the specified positions with specific labels:

https://wolfram.com/xid/01yrq90ohcy-768xl0

Specify the lengths for tick marks as a fraction of the graphics size:

https://wolfram.com/xid/01yrq90ohcy-foslvl

Use different sizes in the positive and negative directions for each tick mark:

https://wolfram.com/xid/01yrq90ohcy-nmsyp1

Specify a style for each frame tick:

https://wolfram.com/xid/01yrq90ohcy-ofknq7

Construct a function that places frame ticks at the midpoint and extremes of the frame edge:

https://wolfram.com/xid/01yrq90ohcy-4eebup

https://wolfram.com/xid/01yrq90ohcy-lxzu6b

FrameTicksStyle (3)
By default, the frame ticks and frame tick labels use the same styles as the frame:

https://wolfram.com/xid/01yrq90ohcy-ft66pj

Specify an overall style for the ticks, including the labels:

https://wolfram.com/xid/01yrq90ohcy-v3n9bn

Use a different style for each frame edge:

https://wolfram.com/xid/01yrq90ohcy-2a6d9v

ImageSize (7)
Use named sizes such as Tiny, Small, Medium and Large:

https://wolfram.com/xid/01yrq90ohcy-bpoal3

Specify the width of the plot:

https://wolfram.com/xid/01yrq90ohcy-fa8s6x

Specify the height of the plot:

https://wolfram.com/xid/01yrq90ohcy-ddgy

Allow the width and height to be up to a certain size:

https://wolfram.com/xid/01yrq90ohcy-cbm09l

Specify the width and height for a graphic, padding with space if necessary:

https://wolfram.com/xid/01yrq90ohcy-bchu75

Setting AspectRatioFull will fill the available space:

https://wolfram.com/xid/01yrq90ohcy-nlouk

Use maximum sizes for the width and height:

https://wolfram.com/xid/01yrq90ohcy-7dl03

Use ImageSizeFull to fill the available space in an object:

https://wolfram.com/xid/01yrq90ohcy-c25fxp

Specify the image size as a fraction of the available space:

https://wolfram.com/xid/01yrq90ohcy-ffqq7z

MaxRecursion (1)
Mesh (2)
Show the initial and final sampling meshes:

https://wolfram.com/xid/01yrq90ohcy-ci1ki3


https://wolfram.com/xid/01yrq90ohcy-q9ifd

Use 5 mesh levels in each direction:

https://wolfram.com/xid/01yrq90ohcy-e80txl


https://wolfram.com/xid/01yrq90ohcy-h1v7ok

MeshFunctions (2)
Use mesh lines in the Re[z] and Im[z] directions:

https://wolfram.com/xid/01yrq90ohcy-drllwl


https://wolfram.com/xid/01yrq90ohcy-jvcdtv

Use mesh levels in the Abs[z] and Arg[z] directions:

https://wolfram.com/xid/01yrq90ohcy-j9yg5a


https://wolfram.com/xid/01yrq90ohcy-ma9szx

MeshStyle (2)

https://wolfram.com/xid/01yrq90ohcy-c0uowg


https://wolfram.com/xid/01yrq90ohcy-b7fqba

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

https://wolfram.com/xid/01yrq90ohcy-loojst


https://wolfram.com/xid/01yrq90ohcy-iwgfye

PerformanceGoal (2)
Generate a higher-quality plot:

https://wolfram.com/xid/01yrq90ohcy-2wd7k


https://wolfram.com/xid/01yrq90ohcy-qaq6p

Emphasize performance, possibly at the cost of quality:

https://wolfram.com/xid/01yrq90ohcy-hh0d2


https://wolfram.com/xid/01yrq90ohcy-fin7lk

PlotLegends (12)
Show a legend for the contour regions:

https://wolfram.com/xid/01yrq90ohcy-txwqh

Legends depend on the contours:

https://wolfram.com/xid/01yrq90ohcy-glzkbf

Show a label for each contour:

https://wolfram.com/xid/01yrq90ohcy-boxp7m

Show a continuous color scale:

https://wolfram.com/xid/01yrq90ohcy-76x93

PlotLegends automatically matches the color function:

https://wolfram.com/xid/01yrq90ohcy-dwhz0x

PlotLegendsAutomatic labels contours with placeholder values:

https://wolfram.com/xid/01yrq90ohcy-c856pj

PlotLegends"Expressions" labels contours with the corresponding functions:

https://wolfram.com/xid/01yrq90ohcy-qlav8

PlotLegendsAutomatic labels implicit curves with placeholder values:

https://wolfram.com/xid/01yrq90ohcy-08ryg

PlotLegends"Expressions" uses the actual equations:

https://wolfram.com/xid/01yrq90ohcy-wqy2s

Specify a list of labels for the legend:

https://wolfram.com/xid/01yrq90ohcy-fntdzz

Use Placed to change the legend position:

https://wolfram.com/xid/01yrq90ohcy-lnu0uz

Use BarLegend to change the legend appearance:

https://wolfram.com/xid/01yrq90ohcy-cashl1

PlotPoints (1)
PlotRange (3)
Automatically compute the vertical range:

https://wolfram.com/xid/01yrq90ohcy-ch69fa

Use all points to compute the range:

https://wolfram.com/xid/01yrq90ohcy-en0a0m

Use an explicit vertical range to emphasize features:

https://wolfram.com/xid/01yrq90ohcy-fsftnw

PlotTheme (3)
RegionFunction (2)
ScalingFunctions (5)
By default, plots have linear scales in each direction:

https://wolfram.com/xid/01yrq90ohcy-biv3mw

Use a log scale in the both the real and imaginary directions:

https://wolfram.com/xid/01yrq90ohcy-cifyfz

Use a reciprocal scale in the imaginary direction:

https://wolfram.com/xid/01yrq90ohcy-dncm5w

Use a linear scale in the imaginary direction that shows smaller numbers at the top:

https://wolfram.com/xid/01yrq90ohcy-g9xivs

Use a scale defined by a function and its inverse:

https://wolfram.com/xid/01yrq90ohcy-g6ds4l

Ticks (9)
Ticks are placed automatically on each axis:

https://wolfram.com/xid/01yrq90ohcy-ytgxrd

Use TicksNone to draw axes without any tick marks:

https://wolfram.com/xid/01yrq90ohcy-4g3jtt

Use ticks on the axis, but not the
axis:

https://wolfram.com/xid/01yrq90ohcy-wngdqb

Place tick marks at the specified positions:

https://wolfram.com/xid/01yrq90ohcy-x6xphk

Draw tick marks at the specified positions with specified labels:

https://wolfram.com/xid/01yrq90ohcy-iycqxf

Use specific ticks on one axis and automatic ticks on the other:

https://wolfram.com/xid/01yrq90ohcy-23yfon

Specify the lengths for ticks as a fraction of graphics size:

https://wolfram.com/xid/01yrq90ohcy-xuzol

Use different sizes in the positive and negative directions for each tick:

https://wolfram.com/xid/01yrq90ohcy-md2yk1

Specify a style for each tick:

https://wolfram.com/xid/01yrq90ohcy-svl4qj

Construct a function that places ticks at the midpoint and extremes of the axis:

https://wolfram.com/xid/01yrq90ohcy-7tke8n

https://wolfram.com/xid/01yrq90ohcy-zmreg

TicksStyle (4)
By default, the ticks and tick labels use the same styles as the axis:

https://wolfram.com/xid/01yrq90ohcy-y1uto5

Specify an overall ticks style, including the tick labels:

https://wolfram.com/xid/01yrq90ohcy-00yqmt

Specify ticks style for each of the axes:

https://wolfram.com/xid/01yrq90ohcy-gidzzm

Use a different style for the tick labels and tick marks:

https://wolfram.com/xid/01yrq90ohcy-wejj46

Applications (23)Sample problems that can be solved with this function
Basic Applications (7)
For a given complex function, plot curves of the constant real part:

https://wolfram.com/xid/01yrq90ohcy-de44w0

Show curves of the constant real and constant imaginary parts:

https://wolfram.com/xid/01yrq90ohcy-gp3pig

Show curves of the constant modulus and constant argument:

https://wolfram.com/xid/01yrq90ohcy-ot3yad

Curves of constant Abs[z] are concentric circles:

https://wolfram.com/xid/01yrq90ohcy-lnhrfl

Setting Abs[z]==1 gives a specific circle:

https://wolfram.com/xid/01yrq90ohcy-j8tzrq

Curves of constant Arg[z] are (half) lines that begin at the origin:

https://wolfram.com/xid/01yrq90ohcy-b2v2nl

Setting Arg[z]== produces a specific (half) line:

https://wolfram.com/xid/01yrq90ohcy-eeshp4

Conformal Maps (6)

https://wolfram.com/xid/01yrq90ohcy-fjrgrn
The real and imaginary parts of are lines with slope 1 and
, respectively:

https://wolfram.com/xid/01yrq90ohcy-es28an

Compare lines of constant real and constant imaginary parts in the and
planes:

https://wolfram.com/xid/01yrq90ohcy-bxjgan

The reciprocal function maps circles centered at the origin to circles centered at the origin and lines through the origin to lines through the origin, but Abs[w] grows larger near
:

https://wolfram.com/xid/01yrq90ohcy-bpdl4t

https://wolfram.com/xid/01yrq90ohcy-y7zy6

Linear fractional transformations map circles and lines to circles and lines:

https://wolfram.com/xid/01yrq90ohcy-cnrigf

https://wolfram.com/xid/01yrq90ohcy-bt0ivw


https://wolfram.com/xid/01yrq90ohcy-jk7853

Visualize more complicated mappings:

https://wolfram.com/xid/01yrq90ohcy-flxip

https://wolfram.com/xid/01yrq90ohcy-ibxq4


https://wolfram.com/xid/01yrq90ohcy-k4foz4

For a conformal map , curves that are orthogonal at their intersections in the
plane are also orthogonal at the corresponding intersections in the
plane:

https://wolfram.com/xid/01yrq90ohcy-vjuf8
Compute the real and imaginary parts of :

https://wolfram.com/xid/01yrq90ohcy-d24760

Verify that the gradients of the real and imaginary parts of are orthogonal by verifying that their dot product is zero:

https://wolfram.com/xid/01yrq90ohcy-jqj8gd

Visually verify that the contours are orthogonal at points of intersection:

https://wolfram.com/xid/01yrq90ohcy-k4l5h

Non-conformal maps do not preserve angles:

https://wolfram.com/xid/01yrq90ohcy-bwkiew
Compute the real and imaginary parts of :

https://wolfram.com/xid/01yrq90ohcy-b0vbfs

Verify that the gradients of the real and imaginary parts of are not orthogonal by verifying that their dot product is not zero:

https://wolfram.com/xid/01yrq90ohcy-ifvi2

Visually verify that the contours are not orthogonal at points of intersection:

https://wolfram.com/xid/01yrq90ohcy-k79zax

Use InverseFunction to display conformal maps:

https://wolfram.com/xid/01yrq90ohcy-h6vv0

https://wolfram.com/xid/01yrq90ohcy-b738nc

Function Growth (1)
The real and imaginary parts of grow exponentially in the
direction:

https://wolfram.com/xid/01yrq90ohcy-u3qmf

Observe rapid growth in both plots where the contours are closer together:

https://wolfram.com/xid/01yrq90ohcy-dgwroo

The modulus of also grows exponentially in the vertical direction, but the argument does not:

https://wolfram.com/xid/01yrq90ohcy-fluhc

Note that the contours are closer together on the left for large Abs[y], but not on the right:

https://wolfram.com/xid/01yrq90ohcy-ihu6cn

Increasing the number of contours emphasizes the regions where Abs[Sin[z]] grows more rapidly:

https://wolfram.com/xid/01yrq90ohcy-bpnwvs

Filter and Transfer Functions (4)
The differential equation for a certain harmonic oscillator with viscous damping is y''+γ y'+y=f(t), where γ is the damping coefficient and f(t) is an applied force. The transfer function is the reciprocal of the Laplace transform of y:

https://wolfram.com/xid/01yrq90ohcy-egxs6

Define a transfer function for an underdamped (γ=0.2) harmonic oscillator:

https://wolfram.com/xid/01yrq90ohcy-zb6hs

Use a Bode plot to see the gain (Abs) and phase (Arg in degrees) along the imaginary axis:

https://wolfram.com/xid/01yrq90ohcy-hatpf6

Use ComplexContourPlot to plot the transfer function over a subset of the -plane and note the rapid change of both sets of contours near
:

https://wolfram.com/xid/01yrq90ohcy-vfqxf

A second-order Butterworth filter model with cutoff frequency at :

https://wolfram.com/xid/01yrq90ohcy-dpje50


https://wolfram.com/xid/01yrq90ohcy-li5mrl

Plot the magnitude of the filter and observe that the poles of the filter lie on the unit circle at equally spaced angles of :

https://wolfram.com/xid/01yrq90ohcy-z75fj

The contour that coincides with the imaginary axis shows that is an all-pass filter that does not change the magnitude of the signal for any frequency, but it does change the phase:

https://wolfram.com/xid/01yrq90ohcy-nx5413

An algebraic analysis confirms that the gain is 1 for all values of :

https://wolfram.com/xid/01yrq90ohcy-bz5pii

Show a root-locus diagram with a plot of the magnitude of the transfer function:

https://wolfram.com/xid/01yrq90ohcy-bn36fy

Physics Applications (3)
Define a complex function that is analytic for all nonzero in the complex plane:

https://wolfram.com/xid/01yrq90ohcy-b8up2h
Verify that the real and imaginary parts of are harmonic:

https://wolfram.com/xid/01yrq90ohcy-k3zgke


https://wolfram.com/xid/01yrq90ohcy-btch7f

The functions and
are the velocity potential and stream function for an ideal fluid flow. Plot the equipotential curves and the streamlines for ideal fluid flow over a cylinder:

https://wolfram.com/xid/01yrq90ohcy-lutm2y

Graph the streamlines for a complex potential for ideal fluid flow for flow in a channel through a slit at the origin:

https://wolfram.com/xid/01yrq90ohcy-rtuw5

Recreate a famous image (Fig. XII) from A Treatise on Electricity and Magnetism by James Clerk, 1873. Maxwell showing equipotential surfaces for two semi-infinite planes that form a capacitor:
This requires different branches of the inverse of :

https://wolfram.com/xid/01yrq90ohcy-kbj81

https://wolfram.com/xid/01yrq90ohcy-eyljtc



https://wolfram.com/xid/01yrq90ohcy-czbot9

Plot the middle part, taking care to match the contours in the upper part:

https://wolfram.com/xid/01yrq90ohcy-hgpu5h


https://wolfram.com/xid/01yrq90ohcy-c8t4i3

Show all three together to recreate Maxwell's image:

https://wolfram.com/xid/01yrq90ohcy-v1ugu

Other Applications (2)
Show iterations of Newton's method:

https://wolfram.com/xid/01yrq90ohcy-kr5t7k

https://wolfram.com/xid/01yrq90ohcy-bweh1q

https://wolfram.com/xid/01yrq90ohcy-b34viu
Plot the contour lines for the function:

https://wolfram.com/xid/01yrq90ohcy-bg9myv

https://wolfram.com/xid/01yrq90ohcy-dssf90


https://wolfram.com/xid/01yrq90ohcy-gf307b

Properties & Relations (9)Properties of the function, and connections to other functions
ComplexContourPlot is a special case of ContourPlot:

https://wolfram.com/xid/01yrq90ohcy-h0fi34

ComplexContourPlot automatically suppresses shading for two or more functions:

https://wolfram.com/xid/01yrq90ohcy-ogwtf

ComplexRegionPlot plots regions over the complexes:

https://wolfram.com/xid/01yrq90ohcy-ko83ut

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

https://wolfram.com/xid/01yrq90ohcy-e28611

Use ComplexPlot3D to use the axis for the magnitude:

https://wolfram.com/xid/01yrq90ohcy-vgce1e

Use ComplexArrayPlot for arrays of complex numbers:

https://wolfram.com/xid/01yrq90ohcy-p6xumo

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

https://wolfram.com/xid/01yrq90ohcy-0vi62l


https://wolfram.com/xid/01yrq90ohcy-mqa938

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

https://wolfram.com/xid/01yrq90ohcy-wyd4bn

ComplexStreamPlot and ComplexVectorPlot treat complex numbers as directions:

https://wolfram.com/xid/01yrq90ohcy-1lc4cy


https://wolfram.com/xid/01yrq90ohcy-7studa

Possible Issues (1)Common pitfalls and unexpected behavior
Since Arg[f] cannot exceed , ComplexContourPlot will usually not render branch cuts:

https://wolfram.com/xid/01yrq90ohcy-68g9r

Wolfram Research (2020), ComplexContourPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexContourPlot.html.
Text
Wolfram Research (2020), ComplexContourPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexContourPlot.html.
Wolfram Research (2020), ComplexContourPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexContourPlot.html.
CMS
Wolfram Language. 2020. "ComplexContourPlot." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ComplexContourPlot.html.
Wolfram Language. 2020. "ComplexContourPlot." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ComplexContourPlot.html.
APA
Wolfram Language. (2020). ComplexContourPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ComplexContourPlot.html
Wolfram Language. (2020). ComplexContourPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ComplexContourPlot.html
BibTeX
@misc{reference.wolfram_2025_complexcontourplot, author="Wolfram Research", title="{ComplexContourPlot}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ComplexContourPlot.html}", note=[Accessed: 19-June-2025
]}
BibLaTeX
@online{reference.wolfram_2025_complexcontourplot, organization={Wolfram Research}, title={ComplexContourPlot}, year={2020}, url={https://reference.wolfram.com/language/ref/ComplexContourPlot.html}, note=[Accessed: 19-June-2025
]}