ComplexPlot
ComplexPlot[f,{z,zmin,zmax}]
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)
Scope (23)
Sampling (9)
Sharp colors are obtained by using a raster image:
Make exclusion curves smoother with PlotPoints:
Plot over an infinite domain using the standard format or a shorthand:
The default mesh shows curves of constant Abs[f] and Arg[f]:
Make the mesh smoother with PlotPoints:
It is often 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 Re[f] and Im[f]:
Emphasize branch cuts with a color scheme that is discontinuous at the cut:
Presentation (14)
Use "CyclicLogAbs" to cyclically shade colors to give the appearance of contours of constant Abs[f]:
Use "CyclicArg" to cyclically shade colors to give the appearance of contours of constant Arg[f]:
Use "CyclicLogAbsArg" to cyclically shade colors to give the appearance of contours of constant Abs[f] and constant Arg[f]:
Use "GlobalAbs" 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 (48)
AspectRatio (4)
Use Automatic to determine the ratio of the height to width for the plot:
Use numerical value to specify the height to width ratio:
Make the height the same as the width with AspectRatio1:
AspectRatioFull adjusts the height and width to tightly fit inside other constructs:
ClippingStyle (3)
ColorFunction (14)
Using 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 "CyclicLogAbsArg" 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)
MaxRecursion (1)
If a region function is used, MaxRecursion adapts the initial mesh:
Mesh (3)
MeshFunctions (2)
Change the MeshFunctions from {Abs,Arg} to {Re,Im}:
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:
PlotPoints (2)
PlotRange (2)
RegionFunction (3)
Use RegionFunction to adapt the shape of the region:
Use RegionFunction to remove zeros and poles:
Applications (28)
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:
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:
At a saddle point z0 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 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:
The following plot shows a function with simple zeros at , a double pole at and a saddle point at :
Other Applications (21)
General (8)
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 , a double pole at and an essential singularity at :
See the five simple real roots of in [-1,1]:
Plots of partial sums of the geometric series suggest that the infinite series diverges for .
Special functions (5)
Analytic functions (3)
Physics (4)
Plot the field lines (black) and the potential lines (white) for two point charges of equal but opposite charge at :
Plot the complex potential and streamlines for an ideal fluid flow exterior to a corner:
Plot the complex potential and streamlines for an ideal fluid flow around a cylinder:
Plot the complex potential and streamlines for ideal fluid flow around an elliptical cylinder with fluid speed and angle of attack :
Properties & Relations (8)
ComplexPlot is a special case of DensityPlot:
Use ComplexPlot3D to use the axis for the magnitude:
Use ComplexArrayPlot for arrays of complex numbers:
The appearance may be different from ComplexPlot depending on how the data is arranged:
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:
Possible Issues (2)
ComplexPlot does not do adaptive sampling:
Meshes may bunch up near a pole or singular point with MeshAutomatic:
Text
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.
APA
Wolfram Language. (2019). ComplexPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ComplexPlot.html