ComplexPlot
✖
ComplexPlot
generates a plot of Arg[f] over the complex rectangle with corners zmin and zmax.
Details and Options




- ComplexPlot uses a cyclic color function over Arg[f] to identify features such as zeros, poles and essential singularities. The color function goes from
to
counterclockwise around zeros, clockwise around poles and infinite cycles near essential singularities.
- ComplexPlot[pred,{z,n}] is equivalent to ComplexPlot[pred,{z,-n-n I,n+n I}].
- ComplexPlot treats the variable z as local, effectively using Block.
- ComplexPlot has attribute HoldAll and evaluates f only after assigning specific numerical values to z. In some cases, it may be more efficient to use Evaluate to evaluate f symbolically first.
- No color is applied in any regions where the corresponding f evaluates to None.
- ComplexPlot has the same options as Graphics, with the following additions and changes: [List of all options]
-
Axes None whether to draw axes BoundaryStyle Automatic how to draw boundaries of regions ClippingStyle Automatic how to draw clipped regions ColorFunction Automatic how to apply coloring to curves or regions ColorFunctionScaling True whether to scale arguments to ColorFunction EvaluationMonitor None expression to evaluate at every function evaluation Exclusions Automatic x, y curves to exclude ExclusionsStyle None what to draw at excluded points or curves Frame Automatic whether to put a frame around the plot MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh divisions to draw MeshFunctions Automatic how to determine the placement of mesh divisions MeshShading None how to shade regions between mesh points or lines MeshStyle Automatic the style for mesh divisions PlotLegends None legends for color gradients PlotPoints Automatic the initial number of sample points in each direction PlotRange Automatic range of values to include PlotRangeClipping True whether to clip at the plot range RegionFunction (True&) how to determine whether a point should be included WorkingPrecision MachinePrecision the precision used in internal computations PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotTheme $PlotTheme overall theme for the plot - ColorFunction->{cfunc,sfunc} uses cfunc to generate the base color and sfunc to adjust the color to highlight features.
- Possible named settings for sfunc are:
-
Automatic automatic shading based on Abs[f] "MaxAbs" light shading of large values of Abs[f] "LocalMaxAbs" light shading of an upper quantile of Abs[f] "GlobalAbs" dark to light shading of small to large values of Abs[f] "QuantileAbs" dark to light shading based on quantiles of Abs[f] "CyclicLogAbs" cyclic dark to light shading of Log[Abs[f]] "CyclicArg" cyclic dark to light shading of Arg[f] "CyclicLogAbsArg" cyclic shading of Log[Abs[f]] and Arg[f] "CyclicReImLogAbs" dark cycles of Re[f] and Im[f] and light cycles of Log[Abs[f]] "ShiftedCyclicLogAbs" cyclic shading of Log[Abs[f]] after a threshold None no shading - The arguments supplied to functions in MeshFunctions and RegionFunction are
,
. Functions in ColorFunction are by default supplied with scaled versions of Re[z], Im[z], Abs[z], Arg[z], Re[f], Im[f], Abs[f], Arg[f].
-
AlignmentPoint Center the default point in the graphic to align with AspectRatio Automatic ratio of height to width Axes None 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 Automatic how to draw boundaries of regions ClippingStyle Automatic how to draw clipped regions ColorFunction Automatic how to apply coloring to curves or regions ColorFunctionScaling True whether to scale arguments to ColorFunction ContentSelectable Automatic whether to allow contents to be selected 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 points or curves FormatType TraditionalForm the default format type for text Frame Automatic whether to put a frame around the plot FrameLabel None frame labels FrameStyle {} style specifications for the frame FrameTicks Automatic frame ticks 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 MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh divisions to draw MeshFunctions Automatic how to determine the placement of mesh divisions MeshShading None how to shade regions between mesh points or lines MeshStyle Automatic the style for mesh divisions Method Automatic details of graphics methods to use PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLabel None an overall label for the plot PlotLegends None legends for color gradients PlotPoints Automatic the initial number of sample points in each direction PlotRange Automatic range of 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 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 (3)Summary of the most common use cases
Plot a complex function with zeros at and poles at
:

https://wolfram.com/xid/0bdo3xzoi-kiedlx

Include a legend showing how the colors vary from to
:

https://wolfram.com/xid/0bdo3xzoi-02fsmi

Use color shading to highlight features of the function:

https://wolfram.com/xid/0bdo3xzoi-bh16bh

Scope (23)Survey of the scope of standard use cases
Sampling (9)
Sharp colors are obtained by using a raster image:

https://wolfram.com/xid/0bdo3xzoi-hqse7d

Make exclusion curves smoother with PlotPoints:

https://wolfram.com/xid/0bdo3xzoi-flqabt

Plot over an infinite domain using the standard format or a shorthand:

https://wolfram.com/xid/0bdo3xzoi-io1lmb

The default mesh shows curves of constant Abs[f] and Arg[f]:

https://wolfram.com/xid/0bdo3xzoi-7d6xx

Make the mesh smoother with PlotPoints:

https://wolfram.com/xid/0bdo3xzoi-99lmy

It is often convenient to use a logarithm to scale the mesh for Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-qayaj8

Specify values for the mesh and control the style:

https://wolfram.com/xid/0bdo3xzoi-uvu5y

Modify the mesh to show Re[f] and Im[f]:

https://wolfram.com/xid/0bdo3xzoi-laajyo

Emphasize branch cuts with a color scheme that is discontinuous at the cut:

https://wolfram.com/xid/0bdo3xzoi-bq7hzo

Presentation (14)

https://wolfram.com/xid/0bdo3xzoi-i4ee63


https://wolfram.com/xid/0bdo3xzoi-n2uvrm


https://wolfram.com/xid/0bdo3xzoi-fit1np


https://wolfram.com/xid/0bdo3xzoi-e0ouku


https://wolfram.com/xid/0bdo3xzoi-cd578m

Use "CyclicLogAbs" to cyclically shade colors to give the appearance of contours of constant Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-keuq3

Use "CyclicArg" to cyclically shade colors to give the appearance of contours of constant Arg[f]:

https://wolfram.com/xid/0bdo3xzoi-dlnv8b

Use "CyclicLogAbsArg" to cyclically shade colors to give the appearance of contours of constant Abs[f] and constant Arg[f]:

https://wolfram.com/xid/0bdo3xzoi-kzn471

Use "GlobalAbs" to highlight zeros (black) and poles (white):

https://wolfram.com/xid/0bdo3xzoi-bzhmpm

Use "QuantileAbs" to darken small values of Abs[f] and lighten large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-ch6ty

Use "MaxAbs" to lighten large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-i0vch4

Use "LocalMaxAbs" to lighten relatively large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-mtu4q

Use "CyclicReImLogAbs" to cyclically darken based on Re[f] and Im[f] and lighten cyclically based on Log[Abs[f]]:

https://wolfram.com/xid/0bdo3xzoi-dgj90y

Use "ShiftedCyclicLogAbs" to produce clear color wheels around zeros and cyclic contours based on Log[Abs[f]]:

https://wolfram.com/xid/0bdo3xzoi-bpivkv

Options (48)Common values & functionality for each option
AspectRatio (4)
Use Automatic to determine the ratio of the height to width for the plot:

https://wolfram.com/xid/0bdo3xzoi-vopo44

Use numerical value to specify the height to width ratio:

https://wolfram.com/xid/0bdo3xzoi-buxw6y

Make the height the same as the width with AspectRatio1:

https://wolfram.com/xid/0bdo3xzoi-c5c4c2

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

https://wolfram.com/xid/0bdo3xzoi-hstcjs

https://wolfram.com/xid/0bdo3xzoi-yivwm8

ClippingStyle (3)
Clipped regions are indicated by gray by default:

https://wolfram.com/xid/0bdo3xzoi-ccblza

Adjust the appearance of a clipped region:

https://wolfram.com/xid/0bdo3xzoi-im3e6a

Color clipped regions red at the bottom and blue at the top:

https://wolfram.com/xid/0bdo3xzoi-ejxeck

ColorFunction (14)
Using a noncyclic color function to emphasize branch cuts:

https://wolfram.com/xid/0bdo3xzoi-cxync9

LogGamma and Log[Gamma] have different branch cuts:

https://wolfram.com/xid/0bdo3xzoi-et5i9o

Specify a custom ColorFunction:

https://wolfram.com/xid/0bdo3xzoi-d71ixf


https://wolfram.com/xid/0bdo3xzoi-jko14a


https://wolfram.com/xid/0bdo3xzoi-ihansr


https://wolfram.com/xid/0bdo3xzoi-d168ir

Color functions depend on eight arguments (Re[z], Im[z], Abs[z], Arg[z], Re[f], Im[f], Abs[f], Arg[f]):

https://wolfram.com/xid/0bdo3xzoi-6ptvy


https://wolfram.com/xid/0bdo3xzoi-duz3mz


https://wolfram.com/xid/0bdo3xzoi-mlao39

Color functions can be shaded to highlight features of a graph like zeros, poles and saddle points. Use "CyclicLogAbs" to cyclically shade colors to give the appearance of contours of constant Abs[f] at powers of 2:

https://wolfram.com/xid/0bdo3xzoi-df6prj

Use "CyclicArg" to cyclically shade colors to give the appearance of contours of constant Arg[f] at integer multiples of /6:

https://wolfram.com/xid/0bdo3xzoi-l7778n

Use "CyclicLogAbsArg" shading function to combine the effects of "CyclicLogAbs" and "CyclicArg":

https://wolfram.com/xid/0bdo3xzoi-d85xp7

Shading can be applied to any ColorFunction:

https://wolfram.com/xid/0bdo3xzoi-es7l4w

Use "GlobalAbs" to highlight zeros (black) and poles (white):

https://wolfram.com/xid/0bdo3xzoi-dgm1sj

Use "QuantileAbs" to lighten the image at relatively large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-fho0cb

Use "MaxAbs" to lighten the image at large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-eg267g

Use "LocalMaxAbs" to lighten the image at relatively large values of Abs[f]:

https://wolfram.com/xid/0bdo3xzoi-p35uu

Use "ShiftedCyclicLogAbs" to produce a color wheel around each zero and cyclic shading in Log[Abs[f]]:

https://wolfram.com/xid/0bdo3xzoi-gegge8

Use "CyclicReImLogAbs" to darken the plot cyclically in Re[f] and Im[f] and brighten it cyclically in Log[Abs[f]]:

https://wolfram.com/xid/0bdo3xzoi-d9kxii

ColorFunctionScaling (1)
Exclusions (4)
Automatically determine exclusions in the modulus of the function:

https://wolfram.com/xid/0bdo3xzoi-c1xqcv

For cyclic color functions, only exclusions based on Abs[f] are shown, but for acyclic color functions, exclusions based on Arg[f] are also displayed:

https://wolfram.com/xid/0bdo3xzoi-cuv85s

Specify exclusions using equations:

https://wolfram.com/xid/0bdo3xzoi-lx8on


https://wolfram.com/xid/0bdo3xzoi-47pw


https://wolfram.com/xid/0bdo3xzoi-e8rn39

ExclusionsStyle (1)
MaxRecursion (1)
If a region function is used, MaxRecursion adapts the initial mesh:

https://wolfram.com/xid/0bdo3xzoi-1djrn

Mesh (3)
Specify a uniform mesh in Abs[f] and Arg[f]:

https://wolfram.com/xid/0bdo3xzoi-ihe8u6

Specify a different uniform mesh in each direction:

https://wolfram.com/xid/0bdo3xzoi-c6aji6

Explicitly specify the mesh values:

https://wolfram.com/xid/0bdo3xzoi-dped2s

MeshFunctions (2)
Change the MeshFunctions from {Abs,Arg} to {Re,Im}:

https://wolfram.com/xid/0bdo3xzoi-n7g5cc

{[
],
} often works well in the presence of poles:

https://wolfram.com/xid/0bdo3xzoi-j91pn6

MeshShading (1)
MeshStyle (2)
PlotLegends (2)
The Automatic legend shows the association between color and phase. The grayscale part of the legend indicates how the colors are shaded:

https://wolfram.com/xid/0bdo3xzoi-lfuugz

Cyclic shading is also reflected in the legend:

https://wolfram.com/xid/0bdo3xzoi-cnlojl

PlotPoints (2)
PlotRange (2)
PlotTheme (1)
RegionFunction (3)
Use RegionFunction to adapt the shape of the region:

https://wolfram.com/xid/0bdo3xzoi-dhycw5

Use RegionFunction to remove zeros and poles:

https://wolfram.com/xid/0bdo3xzoi-qe6io

Shape the region based on Arg[z] or Arg[f]:

https://wolfram.com/xid/0bdo3xzoi-bpo53g

Applications (28)Sample problems that can be solved with this function
Basic Applications (7)
Make a phase portrait of a complex function . Points in the complex plane are colored (by default) by their argument, and that information is recorded in an optional legend.
The color function proceeds counterclockwise around zeros of a function:

https://wolfram.com/xid/0bdo3xzoi-guym3r

At a multiple zero, the colors cycle around the zero multiple times:

https://wolfram.com/xid/0bdo3xzoi-corrxy

At a pole, the colors cycle around the point in the reverse direction:

https://wolfram.com/xid/0bdo3xzoi-d6qxpx

At an essential singularity, the colors cycle infinitely often:

https://wolfram.com/xid/0bdo3xzoi-c1g0da

At a saddle point z0 of ,
and
. Use "CyclicLogAbs" to highlight a saddle point that occurs at a power of 2:

https://wolfram.com/xid/0bdo3xzoi-kyrui

Or use a mesh to highlight a saddle point:

https://wolfram.com/xid/0bdo3xzoi-bmc16b

The following plot shows multiple features of the Joukowski transformation. There are simple zeros at since the colors converge at those points and cycle around the points from blue to green to red in the counterclockwise direction, consistent with the legend. Similarly, there is a simple pole at
where the colors converge but cycle clockwise. There is also a saddle point at
and the branch cuts occur at the red-blue boundary:

https://wolfram.com/xid/0bdo3xzoi-qbnm0

The following plot shows a function with simple zeros at , a double pole at
and a saddle point at
:

https://wolfram.com/xid/0bdo3xzoi-hx1np7

Other Applications (21)
General (8)
Plot complex functions of a complex variable:

https://wolfram.com/xid/0bdo3xzoi-79zlv

Visualize features of a complex function of a complex variable. The following plot indicates a triple zero at , simple zeros
, a simple pole at
, a double pole at
and an essential singularity at
:

https://wolfram.com/xid/0bdo3xzoi-ct4t7a


https://wolfram.com/xid/0bdo3xzoi-gqst6

See the five simple real roots of in [-1,1]:

https://wolfram.com/xid/0bdo3xzoi-kj29y

Plots of partial sums of the geometric series suggest that the infinite series diverges for .

https://wolfram.com/xid/0bdo3xzoi-qhz9i

Visualize Möbius transformations:

https://wolfram.com/xid/0bdo3xzoi-c2335e


https://wolfram.com/xid/0bdo3xzoi-m2j20m

Plot a complex function along with its Pólya field:

https://wolfram.com/xid/0bdo3xzoi-lsmepr

Special functions (5)

https://wolfram.com/xid/0bdo3xzoi-c45e71


https://wolfram.com/xid/0bdo3xzoi-hl93jh

A visual reminder that Log[z2]2Log[z] for Re[z]>0, but not for Re[z]<0:

https://wolfram.com/xid/0bdo3xzoi-gvxz0v

Visually compare a plot of a complex function with its asymptotic approximations:

https://wolfram.com/xid/0bdo3xzoi-f1qyp0



https://wolfram.com/xid/0bdo3xzoi-cno4v


https://wolfram.com/xid/0bdo3xzoi-dd9k9s

Observe the Hurwitz zeta function with
over finite and infinite domains:

https://wolfram.com/xid/0bdo3xzoi-xmvr6u

Observe the digamma function over finite and infinite domains:

https://wolfram.com/xid/0bdo3xzoi-pvhifr

Analytic functions (3)
A conformal map preserves angles:

https://wolfram.com/xid/0bdo3xzoi-l2ye0h

Use a mesh to illustrate a conformal map and the breakdown at where the derivative vanishes:

https://wolfram.com/xid/0bdo3xzoi-btbxm3

Compare the enhanced phase portraits of analytic and nonanalytic functions:

https://wolfram.com/xid/0bdo3xzoi-h5x1kr

Physics (4)
Plot the field lines (black) and the potential lines (white) for two point charges of equal but opposite charge at :

https://wolfram.com/xid/0bdo3xzoi-bflebb

Plot the complex potential and streamlines for an ideal fluid flow exterior to a corner:

https://wolfram.com/xid/0bdo3xzoi-bbk6hu

Plot the complex potential and streamlines for an ideal fluid flow around a cylinder:

https://wolfram.com/xid/0bdo3xzoi-bgq4r9

Plot the complex potential and streamlines for ideal fluid flow around an elliptical cylinder with fluid speed and angle of attack
:

https://wolfram.com/xid/0bdo3xzoi-bnfyto

https://wolfram.com/xid/0bdo3xzoi-jea0t

https://wolfram.com/xid/0bdo3xzoi-kqdu92

Properties & Relations (8)Properties of the function, and connections to other functions
ComplexPlot is a special case of DensityPlot:

https://wolfram.com/xid/0bdo3xzoi-e28611


https://wolfram.com/xid/0bdo3xzoi-matz5q

Use ComplexPlot3D to use the axis for the magnitude:

https://wolfram.com/xid/0bdo3xzoi-vgce1e

Use ComplexArrayPlot for arrays of complex numbers:

https://wolfram.com/xid/0bdo3xzoi-p6xumo

The appearance may be different from ComplexPlot depending on how the data is arranged:

https://wolfram.com/xid/0bdo3xzoi-xtzxw8

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

https://wolfram.com/xid/0bdo3xzoi-0vi62l


https://wolfram.com/xid/0bdo3xzoi-mqa938

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

https://wolfram.com/xid/0bdo3xzoi-wyd4bn

ComplexContourPlot plots curves over the complexes:

https://wolfram.com/xid/0bdo3xzoi-pesif0

ComplexRegionPlot plots regions over the complexes:

https://wolfram.com/xid/0bdo3xzoi-ko83ut

ComplexStreamPlot and ComplexVectorPlot treat complex numbers as directions:

https://wolfram.com/xid/0bdo3xzoi-1lc4cy


https://wolfram.com/xid/0bdo3xzoi-7studa

Possible Issues (2)Common pitfalls and unexpected behavior
ComplexPlot does not do adaptive sampling:

https://wolfram.com/xid/0bdo3xzoi-rg912

Meshes may bunch up near a pole or singular point with MeshAutomatic:

https://wolfram.com/xid/0bdo3xzoi-b8yaa8

Wolfram Research (2019), ComplexPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexPlot.html (updated 2021).
Text
Wolfram Research (2019), ComplexPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexPlot.html (updated 2021).
Wolfram Research (2019), ComplexPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/ComplexPlot.html (updated 2021).
CMS
Wolfram Language. 2019. "ComplexPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/ComplexPlot.html.
Wolfram Language. 2019. "ComplexPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/ComplexPlot.html.
APA
Wolfram Language. (2019). ComplexPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ComplexPlot.html
Wolfram Language. (2019). ComplexPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ComplexPlot.html
BibTeX
@misc{reference.wolfram_2025_complexplot, author="Wolfram Research", title="{ComplexPlot}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/ComplexPlot.html}", note=[Accessed: 08-July-2025
]}
BibLaTeX
@online{reference.wolfram_2025_complexplot, organization={Wolfram Research}, title={ComplexPlot}, year={2021}, url={https://reference.wolfram.com/language/ref/ComplexPlot.html}, note=[Accessed: 08-July-2025
]}