ComplexPlot3D
ComplexPlot3D[f,{z,z_{min},z_{max}}]
generates a 3D plot of Abs[f] colored by Arg[f] over the complex rectangle with corners z_{min} and z_{max}.
Details and Options
 ComplexPlot3D plots Abs[f] with 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.
 ComplexPlot3D[f,{z,n}] is equivalent to ComplexPlot3D[f,{z,nn I,n+n I}].
 ComplexPlot3D treats the variable z as local, effectively using Block.
 ComplexPlot3D 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.
 ComplexPlot3D has the same options as Graphics3D with following additions and changes:

Axes True whether to draw axes BoundaryStyle Black how to draw boundary lines for surfaces BoxRatios {1,1,0.4`} bounding 3D box ratios ClippingStyle Automatic how to draw clipped parts of surfaces ColorFunction Automatic how to determine the color of surfaces 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 curves Filling None filling under each surface FillingStyle Opacity[0.5`] style to use for filling MaxRecursion Automatic the maximum number of recursive subdivisions allowed Mesh None how many mesh lines in each direction to draw MeshFunctions {#7&,#8&} how to determine the placement of mesh lines MeshShading None how to shade regions between mesh lines MeshStyle Automatic the style for mesh lines NormalsFunction Automatic how to determine effective surface normals PerformanceGoal $PerformanceGoal aspects of performance to try to optimize PlotLegends None legends for surfaces PlotPoints Automatic the initial number of sample points in each direction PlotRange {Full,Full,Automatic} the range of z or other values to include PlotStyle Automatic graphics directives for the style for each surface 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  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].
Examples
open allclose allBasic Examples (3)
Scope (21)
Sampling (7)
Sharp colors are generated by using a raster:
The default mesh shows curves of constant Abs[f] and Arg[f]:
In the presence of poles, it is often convenient to use a logarithm to scale Abs[f]:
In the presence of poles, it may also be convenient to use a logarithm to scale the mesh for Abs[f]:
Specify values for the mesh and control the style:
Modify the mesh to show specific values for Re[f] and Im[f]:
Emphasize branch cuts with a color scheme that is discontinuous at the cut:
Presentation (14)
Change the ColorFunction:
Use the "CyclicLogAbs" shading function to cyclically shade colors to give the appearance of contours of constant Abs[f]:
Use the "CyclicArg" shading function to cyclically shade colors to give the appearance of contours of constant Arg[f]:
Use the "CyclicLogAbsArg" shading function to cyclically shade colors to give the appearance of contours of constant Abs[f] and constant Arg[f]:
Use the "GlobalAbs" shading function to highlight zeros (black) and poles (white):
Use "QuantileAbs" to darken small values of Abs[f] and lighten large values of Abs[f]:
Use "MaxAbs" to lighten large values of Abs[f]:
Use "LocalMaxAbs" to lighten relatively large values of Abs[f]:
Use "CyclicReImLogAbs" to cyclically darken based on Re[f] and Im[f] and lighten cyclically based on Log[Abs[f]]:
Use "ShiftedCyclicLogAbs" to produce clear color wheels around zeros and cyclic contours based on Log[Abs[f]]:
Options (62)
BoundaryStyle (3)
Use a black boundary around the edges of the surface:
Use a thick, black boundary around the edges of the surface:
Note that BoundaryStyle applies to holes cut by RegionFunction, but not to holes cut by Exclusions:
BoxRatios (2)
ClippingStyle (2)
ColorFunction (14)
Use a noncyclic color function to emphasize branch cuts:
LogGamma and Log[Gamma] have different branch cuts:
Specify a custom ColorFunction:
Color functions depend on eight arguments (Re[z], Im[z], Abs[z], Arg[z], Re[f], Im[f], Abs[f], Arg[f]):
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:
Use "CyclicArg" to cyclically shade colors to give the appearance of contours of constant Arg[f] at integer multiples of /6:
Use "CylicLogAbsArg" shading function to combine the effects of "CyclicLogAbs" and "CyclicArg":
Shading can be applied to any ColorFunction:
Use "GlobalAbs" to highlight zeros (black) and poles (white):
Use "QuantileAbs" to lighten the image at relatively large values of Abs[f]:
Use "MaxAbs" to lighten the image at large values of Abs[f]:
Use "LocalMaxAbs" to lighten the image at relatively large values of Abs[f]:
Use "ShiftedCyclicLogAbs" to produce a color wheel around each zero and cyclic shading in Log[Abs[f]]:
Use "CyclicReImLogAbs" to darken the plot cyclically in Re[f] and Im[f] and brighten it cyclically in Log[Abs[f]]:
ColorFunctionScaling (1)
Exclusions (4)
ExclusionStyle (1)
Filling (2)
FillingStyle (3)
MaxRecursion (2)
If a region function is used, MaxRecursion adapts the initial mesh:
If a mesh is used, MaxRecursion adapts the initial mesh:
MeshFunctions (2)
Change the MeshFunctions from {Abs[f],Arg[f]} to {Re[f],Im[f]}:
MeshShading (2)
MeshStyle (2)
NormalsFunction (2)
Normals are automatically calculated. Use None to get flat shading for all of the polygons:
PlotLegends (2)
The Automatic legend shows the association between color and phase. The grayscale part of the legend indicates how the colors are shaded:
PlotPoints (2)
PlotRange (3)
PlotStyle (1)
PlotStyle can be used to modify the colors:
RegionFunction (3)
Use RegionFunction to adapt the shape of the region:
Use RegionFunction to remove zeros and poles:
ScalingFunctions (4)
Applications (26)
Basic Applications (10)
For a complex function , plot Abs[f] over the complex plane. Points on the surface are colored (by default) by Arg[f], and that information is recorded in an optional legend.
When viewed from above, the color function proceeds counterclockwise around zeros of a function:
At a multiple zero, the colors cycle around the zero multiple times:
At a pole, the colors cycle around the point in the reverse direction:
At an essential singularity, the colors cycle infinitely often:
Use PlotRange to control the height of the graph near a pole:
Using a logarithmic scaling function for functions with poles may produce a more visually appealing plot:
Using ScalingFunctions"Reciprocal" effectively swaps zeros and poles in terms of height, but the colors remain unchanged:
At a saddle point of , and . Use "CyclicLogAbs" to highlight a saddle point that occurs at a power of 2:
Or use a mesh to highlight a saddle point:
The following plot shows multiple features of the Joukowski transformation. There are simple zeros at , which is evident from the height of the graph and the fact that 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 height is infinite and the colors converge but cycle clockwise. There is also a saddle point at , and the branch cuts occur at the redblue boundary:
The following plot shows a function with simple zeros at , a double pole at and a saddle point at :
Other Applications (16)
Classic (2)
General (6)
Plot complex functions of a complex variable:
Visualize features of a complex function of a complex variable. The following plot indicates a triple zero at , simple zeros , a simple pole at and a double pole at :
See the five real roots of in [1,1]:
Plots of partial sums of the geometric series suggest that the infinite series diverges for :
Special functions (2)
Analytic functions (2)
Physics (2)
Properties & Relations (7)
ComplexPlot3D is a special case of Plot3D:
ComplexPlot shows the argument and magnitude of a function using color:
Use ReImPlot and AbsArgPlot to plot complex values over the real numbers:
Use ComplexListPlot to show the location of complex numbers in the plane:
ComplexContourPlot plots curves over the complexes:
ComplexRegionPlot plots regions over the complexes:
ComplexStreamPlot and ComplexVectorPlot treat complex numbers as directions: