---
title: "AbsArgPlot"
language: "en"
type: "Symbol"
summary: "AbsArgPlot[f, {x, xmin, xmax}] generates a plot of Abs[f] colored by Arg[f] as a function of x \\[Element] \\[DoubleStruckCapitalR] from xmin to xmax. AbsArgPlot[{f1, f2, ...}, {x, xmin, xmax}] plots several functions. AbsArgPlot[{..., w[fi], ...}, ...] plots fi with features defined by the symbolic wrapper w. AbsArgPlot[..., {x} \\[Element] reg] takes the variable x to be in the geometric region reg."
canonical_url: "https://reference.wolfram.com/language/ref/AbsArgPlot.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Complex Visualization"
    link: "https://reference.wolfram.com/language/guide/ComplexVisualization.en.md"
  - 
    title: "Function Visualization"
    link: "https://reference.wolfram.com/language/guide/FunctionVisualization.en.md"
  - 
    title: "Functions of Complex Variables"
    link: "https://reference.wolfram.com/language/guide/FunctionsOfComplexVariables.en.md"
related_functions: 
  - 
    title: "ReImPlot"
    link: "https://reference.wolfram.com/language/ref/ReImPlot.en.md"
  - 
    title: "ComplexPlot"
    link: "https://reference.wolfram.com/language/ref/ComplexPlot.en.md"
  - 
    title: "ComplexListPlot"
    link: "https://reference.wolfram.com/language/ref/ComplexListPlot.en.md"
  - 
    title: "ComplexPlot3D"
    link: "https://reference.wolfram.com/language/ref/ComplexPlot3D.en.md"
  - 
    title: "AbsArg"
    link: "https://reference.wolfram.com/language/ref/AbsArg.en.md"
  - 
    title: "ReIm"
    link: "https://reference.wolfram.com/language/ref/ReIm.en.md"
  - 
    title: "Plot"
    link: "https://reference.wolfram.com/language/ref/Plot.en.md"
  - 
    title: "ParametricPlot"
    link: "https://reference.wolfram.com/language/ref/ParametricPlot.en.md"
---
# AbsArgPlot

AbsArgPlot[f, {x, xmin, xmax}] generates a plot of Abs[f] colored by Arg[f] as a function of x∈\[DoubleStruckCapitalR] from xmin to xmax.

AbsArgPlot[{f1, f2, …}, {x, xmin, xmax}] plots several functions.

AbsArgPlot[{…, w[fi], …}, …] plots fi with features defined by the symbolic wrapper w.

AbsArgPlot[…, {x}∈reg] takes the variable x to be in the geometric region reg.

## Details and Options

* ``AbsArgPlot`` evaluates ``f`` at different values of ``x`` to create smooth curves of the form ``{x, Abs[f[x]]}`` colored by ``{x, Arg[f[x]]}``.

* Gaps are left at any ``x`` where the ``fi`` evaluate to non-numeric values.

* The region ``reg`` can be any ``RegionQ`` object in 1D.

[image]

* ``AbsArgPlot`` treats the variable ``x`` as local, effectively using ``Block``.

* ``AbsArgPlot`` has the attribute ``HoldAll`` and evaluates ``f`` only after assigning specific numerical values to ``x``.

* In some cases, it may be more efficient to use ``Evaluate`` to evaluate ``f`` symbolically before specific numerical values are assigned to ``x``.

* Wrappers apply to both ``Re[f]`` and ``Im[f]``.

* The following wrappers ``w`` can be used for the ``fi``:

|                                      |                                                        |
| ------------------------------------ | ------------------------------------------------------ |
| Annotation[fi, label]                | provide an annotation for the fi                       |
| Button[fi, action]                   | evaluate action when the curve for fi is clicked       |
| Callout[fi, label]                   | label the function with a callout                      |
| Callout[fi, label, pos]              | place the callout at relative position pos             |
| EventHandler[fi, events]             | define a general event handler for fi                  |
| Highlighted[fi, effect]              | dynamically highlight fi with an effect                |
| Highlighted[fi, Placed[effect, pos]] | statically highlight fi with an effect at position pos |
| Hyperlink[fi, uri]                   | make the function a hyperlink                          |
| Labeled[fi, label]                   | label the function                                     |
| Labeled[fi, label, pos]              | place the label at relative position pos               |
| Legended[fi, label]                  | identify the function in a legend                      |
| PopupWindow[fi, cont]                | attach a popup window to the function                  |
| StatusArea[fi, label]                | display in the status area on mouseover                |
| Style[fi, styles]                    | show the function using the specified styles           |
| Tooltip[fi, label]                   | attach a tooltip to the function                       |
| Tooltip[fi]                          | use functions as tooltips                              |

* Wrappers ``w`` can be applied at multiple levels:

|            |                         |
| ---------- | ----------------------- |
| w[fi]      | wrap the fi             |
| w[{f1, …}] | wrap a collection of fi |
| w1[w2[…]]  | use nested wrappers     |

* ``Callout``, ``Labeled`` and ``Placed`` can use the following positions ``pos``:

|                             |                                                            |
| --------------------------- | ---------------------------------------------------------- |
| Automatic                   | automatically placed labels                                |
| Above, Below, Before, After | positions around the curve                                 |
| x                           | near the curve at a position x                             |
| Scaled[s]                   | scaled position s along the curve                          |
| {s, Above}, {s, Below}, …   | relative position at position s along the curve            |
| {pos, epos}                 | epos in label placed at relative position pos of the curve |

* ``AbsArgPlot`` has the same options as ``Graphics``, with the following additions and changes: []

|                       |                   |                                                          |
| :-------------------- | :---------------- | :------------------------------------------------------- |
| AspectRatio           | 1 / GoldenRatio   | ratio of height to width                                 |
| Axes                  | True              | whether to draw axes                                     |
| ClippingStyle         | None              | what to draw where curves are clipped                    |
| ColorFunction         | Automatic         | how to determine the coloring of curves                  |
| ColorFunctionScaling  | True              | whether to scale arguments to ColorFunction              |
| EvaluationMonitor     | None              | expression to evaluate at every function evaluation      |
| Exclusions            | Automatic         | points in x to exclude                                   |
| ExclusionsStyle       | None              | what to draw at excluded points                          |
| Filling               | None              | filling to insert under each curve                       |
| FillingStyle          | Automatic         | style to use for filling                                 |
| LabelingSize          | Automatic         | maximum size of callouts and labels                      |
| MaxRecursion          | Automatic         | the maximum number of recursive subdivisions allowed     |
| Mesh                  | None              | how many mesh points to draw on each curve               |
| MeshFunctions         | {#1&}             | how to determine the placement of mesh points            |
| MeshShading           | None              | how to shade regions between mesh points                 |
| MeshStyle             | Automatic         | the style for mesh points                                |
| Method                | Automatic         | the method to use for refining curves                    |
| PerformanceGoal       | \$PerformanceGoal | aspects of performance to try to optimize                |
| PlotHighlighting      | Automatic         | highlighting effect for curves                           |
| PlotLabel             | None              | overall label for the plot                               |
| PlotLabels            | None              | labels to use for curves                                 |
| PlotLegends           | None              | legends for curves                                       |
| PlotPoints            | Automatic         | initial number of sample points                          |
| PlotRange             | {Full, Automatic} | the range of y or other values to include                |
| PlotRangeClipping     | True              | whether to clip at the plot range                        |
| PlotStyle             | Automatic         | graphics directives to specify the style for each curve  |
| 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              |

* Possible settings for ``ClippingStyle`` are:

|         |           |                                           |
| ------- | --------- | ----------------------------------------- |
| [image] | Automatic | use a dotted line for the clipped portion |
| [image] | None      | omit the clipped portion of the curve     |
| [image] | style     | use style for the clipped portion         |

* With the default settings ``Exclusions -> Automatic`` and ``ExclusionsStyle -> None``, ``AbsArgPlot`` breaks curves at discontinuities and singularities it detects. ``Exclusions -> None`` joins across discontinuities and singularities.

* ``Exclusions -> {x1, x2, …}`` is equivalent to ``Exclusions -> {x == x1, x == x2, …}``.

* ``PlotLabels -> "Expressions"`` uses the ``fi`` as the label text.

* ``AbsArgPlot`` initially evaluates ``f`` at a number of equally spaced sample points specified by ``PlotPoints``. Then it uses an adaptive algorithm to choose additional sample points, subdividing a given interval at most ``MaxRecursion`` times.

[image]

* Since only a finite number of sample points are used, it is possible for ``AbsArgPlot`` to miss features of ``f``. Increasing the settings for ``PlotPoints`` and ``MaxRecursion`` will often catch such features.

* Themes that affect curves include:

|         |               |                   |
| ------- | ------------- | ----------------- |
| [image] | "ThinLines"   | thin plot lines   |
| [image] | "MediumLines" | medium plot lines |
| [image] | "ThickLines"  | thick plot lines  |

* The arguments supplied to functions in ``MeshFunctions`` and ``RegionFunction`` are ``x``, ``y``. Functions in ``ColorFunction`` are by default supplied with scaled versions of these arguments.

* ``ScalingFunctions -> "scale"`` scales the $y$ coordinate; ``ScalingFunctions -> {"scalex", "scaley"}`` scales both the $x$ and $y$ coordinates.

* Possible highlighting effects for ``Highlighted`` and ``PlotHighlighting`` include:

|         |                     |                                                                               |
| ------- | ------------------- | ----------------------------------------------------------------------------- |
| [image] | style               | highlight the indicated curve                                                 |
| [image] | "Ball"              | highlight and label the indicated point in a curve                            |
| [image] | "Dropline"          | highlight and label the indicated point in a curve with droplines to the axes |
| [image] | "XSlice"            | highlight and label all points along a vertical slice                         |
| [image] | "YSlice"            | highlight and label all points along a horizontal slice                       |
| [image] | Placed[effect, pos] | statically highlight the given position pos                                   |

* Highlight position specifications ``pos`` include:

|                 |                                              |
| --------------- | -------------------------------------------- |
| x, {x}          | effect at {x, y} with y chosen automatically |
| {x, y}          | effect at {x, y}                             |
| {pos1, pos2, …} | multiple positions posi                      |

### List of all options

|                        |                   |                                                                                    |
| ---------------------- | ----------------- | ---------------------------------------------------------------------------------- |
| AlignmentPoint         | Center            | the default point in the graphic to align with                                     |
| AspectRatio            | 1 / GoldenRatio   | ratio of height to width                                                           |
| Axes                   | True              | 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                                          |
| ClippingStyle          | None              | what to draw where curves are clipped                                              |
| ColorFunction          | Automatic         | how to determine the coloring of curves                                            |
| 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         | points in x to exclude                                                             |
| ExclusionsStyle        | None              | what to draw at excluded points                                                    |
| Filling                | None              | filling to insert under each curve                                                 |
| FillingStyle           | Automatic         | style to use for filling                                                           |
| FormatType             | TraditionalForm   | the default format type for text                                                   |
| Frame                  | False             | 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                                   |
| LabelingSize           | Automatic         | maximum size of callouts and labels                                                |
| LabelStyle             | {}                | style specifications for labels                                                    |
| MaxRecursion           | Automatic         | the maximum number of recursive subdivisions allowed                               |
| Mesh                   | None              | how many mesh points to draw on each curve                                         |
| MeshFunctions          | {#1&}             | how to determine the placement of mesh points                                      |
| MeshShading            | None              | how to shade regions between mesh points                                           |
| MeshStyle              | Automatic         | the style for mesh points                                                          |
| Method                 | Automatic         | the method to use for refining curves                                              |
| PerformanceGoal        | \$PerformanceGoal | aspects of performance to try to optimize                                          |
| PlotHighlighting       | Automatic         | highlighting effect for curves                                                     |
| PlotLabel              | None              | overall label for the plot                                                         |
| PlotLabels             | None              | labels to use for curves                                                           |
| PlotLegends            | None              | legends for curves                                                                 |
| PlotPoints             | Automatic         | initial number of sample points                                                    |
| PlotRange              | {Full, Automatic} | the range of y 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                                              |
| PlotStyle              | Automatic         | graphics directives to specify the style for each curve                            |
| 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                                        |

---

## Examples (150)

### Basic Examples (6)

Plot the modulus of a complex function of a real variable colored by its argument:

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}]

Out[1]= [image]
```

---

Plot several functions:

```wl
In[1]:= AbsArgPlot[{Sin[I x] + Sin[Pi x], 2Exp[I π x]}, {x, -2, 2}]

Out[1]= [image]
```

---

Label each curve:

```wl
In[1]:= AbsArgPlot[{Sin[I x] + Sin[Pi x], 2Exp[I π x]}, {x, -2, 2}, PlotLabels -> "Expressions"]

Out[1]= [image]
```

---

Include a legend:

```wl
In[1]:= AbsArgPlot[{Sin[I x] + Sin[Pi x], 2Exp[I π x]}, {x, -2, 2}, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Fill below a curve:

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}, Filling -> Axis]

Out[1]= [image]
```

---

Compare ``Plot`` and ``AbsArgPlot`` :

```wl
In[1]:=
{
	{Plot[Abs[Sin[x] + Sin[I Sin[3x]]], {x, -Pi, Pi}], Plot[Arg[Sin[x] + Sin[I Sin[3x]]], {x, -Pi, Pi}, ColorFunction -> Hue]}, 
	AbsArgPlot[Sin[x] + Sin[I Sin[3x]], {x, -Pi, Pi}]}

Out[1]= [image]
```

### Scope (18)

#### Sampling (8)

More points are sampled where the function changes quickly:

```wl
In[1]:= AbsArgPlot[Sin[x] + Sin[I Sin[3x]], {x, 0, 4Pi}]

Out[1]= [image]
```

---

The plot range is selected automatically:

```wl
In[1]:= AbsArgPlot[1 + Exp[-Abs[x]]Sin[I Sin[5x]], {x, -Pi, Pi}]

Out[1]= [image]
```

---

The curve is split when there are discontinuities in the function:

```wl
In[1]:= AbsArgPlot[I + Floor[Sqrt[x]], {x, -100, 100}]

Out[1]= [image]
```

---

Use ``Exclusions```` -> ````None`` to draw connected curves:

```wl
In[1]:= AbsArgPlot[I  + Floor[Sqrt[x]], {x, -100, 100}, Exclusions -> None]

Out[1]= [image]
```

---

Use ``PlotPoints`` and ``MaxRecursion`` to control adaptive sampling:

```wl
In[1]:= Grid@Table[AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}, PlotPoints -> pp, MaxRecursion -> mr], {mr, {0, 1, 2}}, {pp, {15, 30}}]

Out[1]=
|         |         |
| ------- | ------- |
| [image] | [image] |
| [image] | [image] |
| [image] | [image] |
```

---

The domain can be specified by a region:

```wl
In[1]:= \[ScriptCapitalD] = ImplicitRegion[-2 ≤ x ≤ 1 / 2∨1 ≤ x ≤ 2, {x}];

In[2]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x}∈\[ScriptCapitalD]]

Out[2]= [image]
```

---

Specify a domain using a ``MeshRegion`` :

```wl
In[1]:= \[ScriptCapitalD] = MeshRegion[{{-2}, {-1}, {-1 / 2}, {1 / 2}, {1}, {2}}, Line[{{1, 2}, {3, 4}, {5, 6}}]];

In[2]:= AbsArgPlot[Sin[x^2] - I, {x}∈\[ScriptCapitalD]]

Out[2]= [image]
```

---

Plot over an infinite domain with automatic ticks:

```wl
In[1]:= AbsArgPlot[{Sin[x] / x, 1 / x, -1 / x}, {x, -Infinity, Infinity}]

Out[1]= [image]
```

#### Labeling and Legending (5)

The ``Automatic`` legend shows the range of ``Arg`` values:

```wl
In[1]:= AbsArgPlot[{ArcCos[x], ArcSin[x]}, {x, -3, 3}, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Explicitly label the individual curves:

```wl
In[1]:= AbsArgPlot[{ArcCos[x], ArcSin[x]}, {x, -3, 3}, PlotLabels -> Automatic]

Out[1]= [image]
```

---

Identify curves with wrappers:

```wl
In[1]:= AbsArgPlot[{Callout[ArcCos[x]], Tooltip[ArcSin[x]]}, {x, -3, 3}]

Out[1]= [image]
```

---

Curves usually have interactive callouts showing the coordinates when you mouse over them:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -5, 5}]

Out[1]= [image]
```

---

Choose from multiple interactive highlighting effects:

```wl
In[1]:= {AbsArgPlot[{x^2 - 4, Sinc[x]}, {x, -3, 3}, PlotHighlighting -> "Dropline"], AbsArgPlot[{x^2 - 4, Sinc[x]}, {x, -3, 3}, PlotHighlighting -> "XSlice"]}

Out[1]= {[image], [image]}
```

#### Presentation (5)

Provide explicit styling to different curves:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotStyle -> {Thick, Dashed}]

Out[1]= [image]
```

---

Add labels and a legend:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, AxesLabel -> {x, ""}, PlotLabels -> Automatic, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Create filled plots:

```wl
In[1]:= AbsArgPlot[Sin[x] + Sin[I Sin[3x]], {x, -Pi, Pi}, Filling -> {1 -> Axis}]

Out[1]= [image]
```

---

Use a plot theme:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], 3Exp[I x] + 0.5Exp[5I x]}, {x, -3, 3}, PlotTheme -> "Business"]

Out[1]= [image]
```

---

Use ``ScalingFunctions`` to scale the axes:

```wl
In[1]:= AbsArgPlot[x + I Exp[x], {x, -5, 5}, ScalingFunctions -> "Log"]

Out[1]= [image]
```

### Options (113)

#### AspectRatio (4)

By default, ``AbsArgPlot`` uses a fixed ratio of the height to the width of the plot:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}]

Out[1]= [image]
```

---

Make the height the same as the width with ``AspectRatio -> 1`` :

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> 1]

Out[1]= [image]
```

---

``AspectRatio -> Automatic`` determines the ratio from the plot ranges:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> Automatic]

Out[1]= [image]
```

---

``AspectRatio -> Full`` adjusts the height and width to tightly fit inside other constructs:

```wl
In[1]:= plot = AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> Full];

In[2]:= {Framed[Pane[plot, {50, 100}]], Framed[Pane[plot, {100, 100}]], Framed[Pane[plot, {100, 50}]]}

Out[2]= [image]
```

#### Axes (4)

By default, ``Axes`` is drawn for ``AbsArgPlot`` :

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}]

Out[1]= [image]
```

---

Use ``Frame`` instead of axes:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, Axes -> False, Frame -> True]

Out[1]= [image]
```

---

Use ``AxesOrigin`` to specify where the axes intersect:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesOrigin -> {0, 0}]

Out[1]= [image]
```

---

Turn each axis on individually:

```wl
In[1]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, Axes -> {True, False}], AbsArgPlot[x^2 - 4, {x, -4, 4}, Axes -> {False, True}]}

Out[1]= {[image], [image]}
```

#### AxesLabel (3)

No axes labels are drawn by default:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}]

Out[1]= [image]
```

---

Place a label on the $y$ axis:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesLabel -> "Abs[F[x]]"]

Out[1]= [image]
```

---

Use specific labels for each axis:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesLabel -> {"x", "Abs[F[x]]"}]

Out[1]= [image]
```

#### AxesOrigin (2)

The position of the axes is determined automatically:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}]

Out[1]= [image]
```

---

Specify an explicit origin for the axes:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesOrigin -> {2, 2}]

Out[1]= [image]
```

#### AxesStyle (4)

Change the style for the axes:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesStyle -> Red]

Out[1]= [image]
```

---

Specify the style of each axis:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesStyle -> {Directive[Thick, Brown], Directive[Thick, Blue]}]

Out[1]= [image]
```

---

Use different styles for the ticks and the axes:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesStyle -> Blue, TicksStyle -> Red]

Out[1]= [image]
```

---

Use different styles for the labels and the axes:

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AxesStyle -> Blue, LabelStyle -> Red]

Out[1]= [image]
```

#### ClippingStyle (2)

Omit clipped regions of the plot:

```wl
In[1]:= AbsArgPlot[Exp[I x] / (x^2 - 25)^2, {x, -10, 10}, ClippingStyle -> None]

Out[1]= [image]
```

---

Show clipped regions with black lines:

```wl
In[1]:= AbsArgPlot[Exp[I x] / (x^2 - 25)^2, {x, -10, 10}, ClippingStyle -> Black]

Out[1]= [image]
```

#### ColorFunction (4)

Color by the scaled argument:

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}]

Out[1]= [image]
```

---

Use a named color gradient:

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}, ColorFunction -> "AvocadoColors"]

Out[1]= [image]
```

---

``ColorFunction`` has higher priority than ``PlotStyle`` :

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}, ColorFunction -> "AvocadoColors", PlotStyle -> Directive[Red, Dashed]]

Out[1]= [image]
```

---

Highlight part of the plot:

```wl
In[1]:= AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -2, 2}, ColorFunction -> Function[{arg}, If[arg ≤ 0, Red, Black]], PlotStyle -> Thick, ColorFunctionScaling -> False]

Out[1]= [image]
```

#### ColorFunctionScaling (1)

No argument scaling on the left; automatic scaling on the right:

```wl
In[1]:= Table[AbsArgPlot[Exp[I x], {x, -Pi, Pi}, AxesOrigin -> {0, 0}, ColorFunctionScaling -> cf], {cf, {False, True}}]

Out[1]= {[image], [image]}
```

#### Exclusions (3)

Use automatic methods for computing exclusions:

```wl
In[1]:= AbsArgPlot[x + Floor[x^2]I, {x, -3, 3}]

Out[1]= [image]
```

---

Exclusions are automatically computed for both ``Abs`` and ``Arg`` :

```wl
In[1]:= AbsArgPlot[Exp[I SquareWave[x / 2]]SawtoothWave[x / 4], {x, -10, 10}]

Out[1]= [image]
```

---

Indicate that no exclusions should be computed:

```wl
In[1]:= AbsArgPlot[x + Floor[x^2]I, {x, -3, 3}, Exclusions -> None]

Out[1]= [image]
```

#### ExclusionStyle (1)

Use gray lines to connect portions of the curve and black points to indicate exclusions:

```wl
In[1]:= AbsArgPlot[LogGamma[x], {x, -5, 5}, ExclusionsStyle -> {Gray, Black}]

Out[1]= [image]
```

#### Filling (4)

Use symbolic or explicit values:

```wl
In[1]:= Table[AbsArgPlot[Sin[I x] + Sin[Pi x], {x, -3, 3}, Filling -> f], {f, {Axis, Top, Bottom, 3}}]

Out[1]= [image]
```

---

Filling uses transparent colors if more than one curve is specified:

```wl
In[1]:= AbsArgPlot[{Sin[I x] + Sin[Pi x], 2Exp[I π x]}, {x, -2, 2}, Filling -> Axis]

Out[1]= [image]
```

---

Fill between curve 1 and the $x$ axis:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], 3Exp[I x] + 0.5Exp[5I x]}, {x, -3, 3}, Filling -> {1 -> Axis}]

Out[1]= [image]
```

---

Fill between curves 1 and 2:

```wl
In[1]:= AbsArgPlot[{Sin[I x] + Sin[Pi x], 2Exp[I π x]}, {x, -2, 2}, Filling -> {1 -> {2}}]

Out[1]= [image]
```

#### FillingStyle (2)

Use different fill colors:

```wl
In[1]:= Table[AbsArgPlot[{ArcSin[x], 3Exp[I x] + 0.5Exp[5I x]}, {x, -3, 3}, Filling -> {1 -> Axis}, FillingStyle -> c], {c, {Red, Green, Blue, Yellow}}]

Out[1]= [image]
```

---

Fill between two curves with red below the second curve and blue above:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], Exp[I x] + 0.5Exp[5I x]}, {x, -3, 3}, Filling -> {1 -> {2}}, FillingStyle -> {Red, Blue}]

Out[1]= [image]
```

#### Frame (3)

Draw a frame around the plot:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True]

Out[1]= [image]
```

---

Draw a frame on the left and right edges:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> {{True, True}, {False, False}}]

Out[1]= [image]
```

---

Draw a frame on the top and bottom edges:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> {{False, False}, {True, True}}]

Out[1]= [image]
```

#### FrameLabel (2)

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameLabel -> {"x", "y"}]

Out[1]= [image]
```

---

Place labels on each of the edges in the frame:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameLabel -> {{"left", "right"}, {"bottom", "top"}}]

Out[1]= [image]
```

#### FrameStyle (2)

Specify the style of the frame:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameStyle -> Directive[Black, Thick]]

Out[1]= [image]
```

---

Specify the style for each frame edge:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameStyle -> {{Directive[Black, Thick], Directive[Red]}, {Directive[Gray, Thick], Directive[Blue]}}]

Out[1]= [image]
```

#### FrameTicks (8)

``FrameTicks`` are placed automatically by default:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True]

Out[1]= [image]
```

---

Use a frame with no ticks:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> None]

Out[1]= [image]
```

---

Use frame ticks on the $x$ axes but not the $y$ axes:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{False, False}, {True, True}}]

Out[1]= [image]
```

---

Place frame ticks at specific positions:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{{0, .1, .2}, {0, .1, .2}}, {{-.2, .1, .2}, {-.2, .1, .2}}}]

Out[1]= [image]
```

---

Draw frame ticks at the specified positions with specific labels:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{{{0, a}, {.1, b}, {.2, c}}, {0, .1, .2}}, {{{-.2, -c}, {.1, b}, {.2, c}}, {-.2, .1, .2}}}]

Out[1]= [image]
```

---

Specify the lengths for frame ticks as a fraction on graphics size:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{{{0, a, .2}, {.1, b, .16}, {.2, c, .11}}, Automatic}, {Automatic, Automatic}}]

Out[1]= [image]
```

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

```wl
In[2]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{{{0, a, .2}, {.1, b, .16}, {.2, c, .11}}, {{0, a, {.2, 0}}, {.1, b, {.16, 0}}, {.2, c, {.11, 0}}}}, {Automatic, Automatic}}]

Out[2]= [image]
```

---

Specify a style for each frame tick:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{{{0, a, .2, Directive[Red]}, {.1, b, .16, Directive[Red, Thick, Dashed]}, {.2, c, .11, Directive[Red, Thick]}}, Automatic}, {Automatic, Automatic}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= minMeanMax[min_, max_] := {{min, min}, {(max + min) / 2, (max + min) / 2}, {max, max}}

In[2]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, FrameTicks -> {{Automatic, minMeanMax}, {Automatic, Automatic}}, PlotRangePadding -> None]

Out[2]= [image]
```

#### FrameTicksStyle (3)

By default, the frame ticks and frame tick labels use the same styles as the frame:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, Frame -> True, FrameStyle -> Directive[Red]]

Out[1]= [image]
```

---

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, Frame -> True, FrameTicks -> All, FrameTicksStyle -> {Directive[Black, Thick], Directive[Blue, Thick]}]

Out[1]= [image]
```

---

Use a different style for the different frame edges:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Frame -> True, Frame -> True, FrameTicks -> All, FrameTicksStyle -> {{Black, Blue}, {Red, Green}}]

Out[1]= [image]
```

#### ImageSize (7)

Use named sizes such as ``Tiny``, ``Small``, ``Medium`` and ``Large`` :

```wl
In[1]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> Tiny], AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> Small]}

Out[1]= {[image], [image]}
```

---

Specify the width of the plot:

```wl
In[1]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> 150], AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> 1.5, ImageSize -> 150]}

Out[1]= {[image], [image]}
```

Specify the height of the plot:

```wl
In[2]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> {Automatic, 150}], AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> 2, ImageSize -> {Automatic, 150}]}

Out[2]= {[image], [image]}
```

---

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

```wl
In[1]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> UpTo[200]], AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> 2, ImageSize -> UpTo[200]]}

Out[1]= {[image], [image]}
```

---

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

```wl
In[1]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> {200, 200}, Background -> LightBlue]

Out[1]= [image]
```

Setting ``AspectRatio -> Full`` will fill the available space:

```wl
In[2]:= AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> Full, ImageSize -> {200, 200}, Background -> LightBlue]

Out[2]= [image]
```

---

Use maximum sizes for the width and height:

```wl
In[1]:= {AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> {UpTo[150], UpTo[100]}], AbsArgPlot[x^2 - 4, {x, -4, 4}, AspectRatio -> 2, ImageSize -> {UpTo[150], UpTo[100]}]}

Out[1]= {[image], [image]}
```

---

Use ``ImageSize -> Full`` to fill the available space in an object:

```wl
In[1]:= Framed[Pane[AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> Full, Background -> LightBlue], {200, 100}]]

Out[1]= [image]
```

---

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

```wl
In[1]:= Framed[Pane[AbsArgPlot[x^2 - 4, {x, -4, 4}, ImageSize -> {Scaled[0.5], Scaled[0.5]}, Background -> LightBlue], {200, 100}]]

Out[1]= [image]
```

#### MaxRecursion (1)

Each level of ``MaxRecursion`` adaptively subdivides the initial mesh into a finer mesh:

```wl
In[1]:= Table[AbsArgPlot[I + Sin[1 / x], {x, 0.001, .1}, MaxRecursion -> i, Mesh -> All, Ticks -> None], {i, {0, 3, 6}}]

Out[1]= {[image], [image], [image]}
```

#### Mesh (3)

Show the initial and final sampling meshes:

```wl
In[1]:= {AbsArgPlot[Cos[x] + I ArcCosh[x], {x, 0, 2Pi}, Mesh -> Full, MeshStyle -> AbsolutePointSize[3]], AbsArgPlot[Cos[x] + I ArcCosh[x], {x, 0, 2Pi}, Mesh -> All, MeshStyle -> AbsolutePointSize[3]]}

Out[1]= [image]
```

---

Use 10 mesh points evenly spaced in the $x$ direction:

```wl
In[1]:= AbsArgPlot[Cos[x] + I ArcCosh[x], {x, 0, 2Pi}, Mesh -> 10, MeshStyle -> AbsolutePointSize[5]]

Out[1]= [image]
```

---

Use an explicit list of values for the mesh in the $x$ direction:

```wl
In[1]:= AbsArgPlot[Cos[x] + I ArcCosh[x], {x, 0, 2Pi}, Mesh -> {Range[0, 2Pi, Pi / 4]}, MeshStyle -> AbsolutePointSize[5], Ticks -> {Range[0, 2Pi, Pi / 4], Automatic}]

Out[1]= [image]
```

#### MeshFunctions (2)

Use a mesh evenly spaced in the $x$ and $y$ directions:

```wl
In[1]:= Table[AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, MeshFunctions -> {f}, Mesh -> 10, MeshStyle -> Black], {f, {Function[{x, y}, x], Function[{x, y}, y]}}]

Out[1]= [image]
```

---

Show 10 mesh levels in the $x$ direction (black) and 6 in the $y$ direction (red):

```wl
In[1]:= AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, MeshFunctions -> {#1&, #2&}, Mesh -> {10, 6}, MeshStyle -> {Black, Red}]

Out[1]= [image]
```

#### MeshShading (2)

Remove segments of the curve:

```wl
In[1]:= AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, Mesh -> 15, MeshShading -> {None, Automatic}, MeshStyle -> Black]

Out[1]= [image]
```

---

``MeshShading`` has higher priority than ``PlotStyle`` for styling:

```wl
In[1]:= AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, Mesh -> 15, MeshShading -> {None, Automatic}, MeshStyle -> Black, PlotStyle -> Directive[Black, Dashed]]

Out[1]= [image]
```

#### MeshStyle (2)

Use a black mesh in the $x$ direction:

```wl
In[1]:= AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, Mesh -> 10, MeshStyle -> Black]

Out[1]= [image]
```

---

Use a black mesh in the $x$ direction and a red mesh in the $y$ direction:

```wl
In[1]:= AbsArgPlot[2Exp[I x] + 0.5Exp[3I x], {x, 0, 2Pi}, Mesh -> 10, MeshFunctions -> {#1&, #2&}, MeshStyle -> {Directive[PointSize[Large], Black], Red}]

Out[1]= [image]
```

#### PerformanceGoal (2)

Generate a higher-quality plot:

```wl
In[1]:= AbsArgPlot[1 + Exp[I / x], {x, 0, 1}, PerformanceGoal -> "Quality"]//Timing

Out[1]= {0.124801, [image]}
```

---

Emphasize performance, possibly at the cost of quality:

```wl
In[1]:= AbsArgPlot[1 + Exp[I / x], {x, 0, 1}, PerformanceGoal -> "Speed"]//Timing

Out[1]= {0.0468003, [image]}
```

#### PlotHighlighting (8)

Plots have interactive coordinate callouts with the default setting ``PlotHighlighting -> Automatic`` :

```wl
In[1]:= AbsArgPlot[Cos[x], {x, 0, 10}]

Out[1]= [image]
```

Use ``PlotHighlighting -> None`` to disable the highlighting for the entire plot:

```wl
In[2]:= AbsArgPlot[Cos[x], {x, 0, 10}, PlotHighlighting -> None]

Out[2]= [image]
```

---

Move the mouse over the curve to highlight it with a ball and label:

```wl
In[1]:= AbsArgPlot[E^Cos[x], {x, 0, 10}, PlotHighlighting -> "Ball"]

Out[1]= [image]
```

---

Move the mouse over the curve to highlight it with a label and droplines to the axes:

```wl
In[1]:= AbsArgPlot[E^Cos[x] - 1, {x, 0, 10}, PlotHighlighting -> "Dropline"]

Out[1]= [image]
```

---

Move the mouse over the plot to highlight it with a slice showing $y$ values corresponding to the $x$ position:

```wl
In[1]:= AbsArgPlot[{E^Cos[x] - 1, Sin[x]}, {x, 0, 10}, PlotHighlighting -> "XSlice"]

Out[1]= [image]
```

---

Move the mouse over the plot to highlight it with a slice showing $x$ values corresponding to the $y$ position:

```wl
In[1]:= AbsArgPlot[E^Cos[x] - 1, {x, 0, 10}, PlotHighlighting -> "YSlice"]

Out[1]= [image]
```

---

Use a component that shows the points on the curve closest to the $x$ position of the mouse cursor:

```wl
In[1]:= AbsArgPlot[{E^Cos[x] - 1, Sin[x]}, {x, 0, 10}, PlotHighlighting -> "XNearestPoint"]

Out[1]= [image]
```

Specify the style for the points:

```wl
In[2]:= AbsArgPlot[{E^Cos[x] - 1, Sin[x]}, {x, 0, 10}, PlotHighlighting -> {"XNearestPoint", <|"Style" -> Black|>}]

Out[2]= [image]
```

---

Use a component that shows the coordinates on the curve closest to the mouse cursor:

```wl
In[1]:= AbsArgPlot[{E^Cos[x] - 1, Sin[x]}, {x, 0, 10}, PlotHighlighting -> "XYLabel"]

Out[1]= [image]
```

Use ``Callout`` options to change the appearance of the label:

```wl
In[2]:= AbsArgPlot[E^Cos[x] - 1, {x, 0, 10}, PlotHighlighting -> {"XYLabel", <|"Appearance" -> "Corners", "CalloutMarker" -> "Circle"|>}]

Out[2]= [image]
```

---

Combine components to create a custom effect:

```wl
In[1]:= AbsArgPlot[E^Cos[x] - 1, {x, 0, 10}, PlotHighlighting -> {{"XNearestPoint", <|"Style" -> Black|>}, {"XYLabel", <|"Appearance" -> "Corners", "CalloutMarker" -> "Circle"|>}}]

Out[1]= [image]
```

#### PlotLabel (1)

Add an overall label to the plot:

```wl
In[1]:= AbsArgPlot[ArcSin[x], {x, -3, 3}, PlotLabel -> TraditionalForm[Abs[ArcSin[x]]]]

Out[1]= [image]
```

#### PlotLabels (6)

Specify text to label curves:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> {"arcsine", "arccosine"}]

Out[1]= [image]
```

---

Modify the appearance of the labels:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> Placed[{"arcsine", "arccosine"}, Above]]

Out[1]= [image]
```

---

Place the labels differently for each curve:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> {Placed["arcsine", Below], Placed["arccosine", Above]}]

Out[1]= [image]
```

---

``PlotLabels```` -> ````"Expressions"`` uses functions as curve labels:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> "Expressions"]

Out[1]= [image]
```

---

Use callouts to identify the curves:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> {Callout["arcsine", Above], Callout["arccosine", Below]}]

Out[1]= [image]
```

---

Use ``None`` to not add a label:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLabels -> {"arcsine", None}]

Out[1]= [image]
```

#### PlotLegends (2)

Create a legend for the argument color:

```wl
In[1]:= AbsArgPlot[{ArcSin[x], ArcCos[x]}, {x, -3, 3}, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Create multiple legends:

```wl
In[1]:= AbsArgPlot[{Exp[x], -2Exp[x], 4Exp[Pi I x]}, {x, -1, 1}, PlotLegends -> {Automatic, LineLegend[{Red, Cyan}, {"real, positive", "real, negative"}]}]

Out[1]= [image]
```

#### PlotPoints (1)

Use more initial points to get smoother curves:

```wl
In[1]:= Table[AbsArgPlot[PolyGamma[I x], {x, 0, 6}, PlotPoints -> i, MaxRecursion -> 0], {i, {10, 15, 25, 40}}]

Out[1]= {[image], [image], [image], [image]}
```

#### PlotRange (1)

The plot range is selected automatically:

```wl
In[1]:= ft = FourierTransform[Exp[-x]UnitStep[x], x, k];

In[2]:= AbsArgPlot[ft, {k, -20, 20}]

Out[2]= [image]
```

Focus on a specified range of $y$ values:

```wl
In[3]:= AbsArgPlot[ft, {k, -20, 20}, PlotRange -> {0, 0.5}]

Out[3]= [image]
```

#### PlotStyle (2)

``PlotStyle`` can be used to style curves:

```wl
In[1]:= AbsArgPlot[{I + ArcSinh[x], ArcCosh[x]}, {x, -3, 3}, PlotStyle -> {Thick, Directive[Blue, Dashed]}]

Out[1]= [image]
```

---

The coloring of the argument takes precedence over colors specified with ``PlotStyle`` :

```wl
In[1]:= AbsArgPlot[{I + ArcSinh[x], ArcCosh[x]}, {x, -3, 3}, PlotStyle -> {Red, Blue}]

Out[1]= [image]
```

#### PlotTheme (1)

Use a theme:

```wl
In[1]:= AbsArgPlot[{I + ArcSinh[x], ArcCosh[x]}, {x, -3, 3}, PlotTheme -> "Marketing"]

Out[1]= [image]
```

#### RegionFunction (1)

Show the curve where $0<x (\text{mod} 4)<2$ :

```wl
In[1]:= AbsArgPlot[(x - 1/x + I), {x, -10, 10}, RegionFunction -> Function[{x, y}, 0 < Mod[x, 4] < 2]]

Out[1]= [image]
```

#### ScalingFunctions (6)

By default, plots have linear scales in each direction:

```wl
In[1]:= AbsArgPlot[x + I Exp[x], {x, -5, 5}]

Out[1]= [image]
```

---

Use a logarithm to scale the modulus but leave the argument (color) unscaled:

```wl
In[1]:= AbsArgPlot[x + I Exp[x], {x, -5, 5}, ScalingFunctions -> "Log"]

Out[1]= [image]
```

---

Use different scales in the $x$ and $y$ directions:

```wl
In[1]:= AbsArgPlot[x + I Exp[x], {x, -5, 5}, ScalingFunctions -> {"Reverse", "Log"}]

Out[1]= [image]
```

---

Domains that contain infinite values are scaled automatically:

```wl
In[1]:= AbsArgPlot[Sinc[x], {x, -Infinity, Infinity}]

Out[1]= [image]
```

---

Use ``"Reverse"`` scale in an infinite domain:

```wl
In[1]:= AbsArgPlot[Sinc[x], {x, 0, Infinity}, ScalingFunctions -> {"Reverse", None}]

Out[1]= [image]
```

---

Use ``Interval`` to focus on a region of interest in an infinite domain:

```wl
In[1]:= AbsArgPlot[x ^ 2 * Sin[1 / x], {x, -Infinity, Infinity}, ScalingFunctions -> {{"Infinite", Interval[{-1, 1}]}, None}]

Out[1]= [image]
```

#### Ticks (9)

Ticks are placed automatically on each axis:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}]

Out[1]= [image]
```

---

Draw axes but no tick marks:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> None]

Out[1]= [image]
```

---

Use ticks on the $x$ axis but not the $y$ axis:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {Automatic, None}]

Out[1]= [image]
```

---

Place tick marks at specific positions:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{-.2, .1, .2}, {0, .1, .2}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{{-.2, "-a"}, {.1, "b"}, {.2, "a"}}, {{0, 0}, {.1, "c"}, {.2, "d"}}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{{-.2, "-a"}, {.1, "b"}, {.2, "a"}}, Automatic}]

Out[1]= [image]
```

---

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{{-.2, "-a", .05}, {.1, "b", .05}, {.2, "a", .05}}, {{0, "-d", .05}, {.13, "c", .25}, {.2, "d", .4}}}]

Out[1]= [image]
```

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

```wl
In[2]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{{-.2, "-a", .05}, {.1, "b", {.05, .1}}, {.2, "a", .05}}, {{0, "-d", .05}, {.13, "c", {.25, .1}}, {.2, "d", {.4, .1}}}}]

Out[2]= [image]
```

---

Specify a style for each tick:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {{{-.2, "-a", .05, Directive[Red]}, {.1, "b", .05, Directive[Black]}, {.2, "a", .15, Directive[Thick, Black]}}, {{0, "-d", .05}, {.13, "c", .25, Directive[Thick, Green]}, {.21, "d", .42, Directive[Blue]}}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= minMeanMax[min_, max_] := {{min, min}, {(max + min) / 2, (max + min) / 2}, {max, max}}

In[2]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, Ticks -> {Automatic, minMeanMax}]

Out[2]= [image]
```

#### TicksStyle (4)

By default, the ticks and tick labels use the same style as the axis:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, AxesStyle -> Red]

Out[1]= [image]
```

---

Specify an overall ticks style, including the tick labels:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, Axes -> True, TicksStyle -> Directive[Red]]

Out[1]= [image]
```

---

Specify ticks style for each of the axes:

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, TicksStyle -> {Directive[Red], Directive[Blue]}]

Out[1]= [image]
```

---

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

```wl
In[1]:= AbsArgPlot[x Sin[1 / x], {x, -.25, .25}, TicksStyle -> Directive[Red, Thick], LabelStyle -> Blue]

Out[1]= [image]
```

### Applications (3)

Plot Fourier transforms:

```wl
In[1]:=
f1 = Exp[-x^2]UnitStep[x];
f2 = Exp[-x^2](UnitStep[x + 1] - UnitStep[x - 2]);
ft1 = FourierTransform[f1, x, k];
ft2 = FourierTransform[f2, x, k];

In[2]:= AbsArgPlot[{ft1, ft2}, {k, -20, 20}, PlotRange -> All, ScalingFunctions -> "Log", PlotLabels -> {ℱ[f1], ℱ[f2]}]

Out[2]= [image]
```

---

Plot the solution of a complex differential equation with initial conditions:

```wl
In[1]:= sol = NDSolve[{y''[x] - I Sin[y[x]] / 2 == 0, y[0] == 2, y'[0] == I}, y[x], {x, 0, 60}][[1]];
```

The colors are rescaled since the argument never exceeds 1 in magnitude:

```wl
In[2]:= AbsArgPlot[Evaluate[y[x] /. sol], {x, 0, 60}, PlotRange -> All, ColorFunction -> (Hue[(#/Pi)]&), ColorFunctionScaling -> False, PlotLegends -> Automatic]

Out[2]= [image]
```

---

Graph special functions:

```wl
In[1]:= AbsArgPlot[EllipticE[x], {x, -5, 5}, Exclusions -> None, PlotLegends -> Automatic]

Out[1]= [image]
```

### Properties & Relations (8)

``AbsArgPlot`` is a special case of ``Plot`` :

```wl
In[1]:= {Plot[Abs[ArcSin[x]], {x, -3, 3}], AbsArgPlot[ArcSin[x], {x, -3, 3}]}

Out[1]= {[image], [image]}
```

---

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

```wl
In[1]:= ComplexPlot[Log[z], {z, 3}]

Out[1]= [image]
```

---

Use ``ComplexPlot3D`` to use the $z$ axis for the magnitude:

```wl
In[1]:= ComplexPlot3D[Log[z], {z, 3}]

Out[1]= [image]
```

---

Use ``ReImPlot`` to plot real and imaginary components over the real numbers:

```wl
In[1]:= ReImPlot[Log[x], {x, -3, 3}]

Out[1]= [image]
```

---

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

```wl
In[1]:= ComplexListPlot[RandomComplex[{-3 - 3I, 3 + 3I}, 100]]

Out[1]= [image]
```

---

``ComplexContourPlot`` plots curves over the complexes:

```wl
In[1]:= ComplexContourPlot[Abs[Log[z]] == 1, {z, 3}]

Out[1]= [image]
```

---

``ComplexRegionPlot`` plots regions over the complexes:

```wl
In[1]:= ComplexRegionPlot[Abs[Log[z]] < 1, {z, 3}]

Out[1]= [image]
```

---

``ComplexStreamPlot`` and ``ComplexVectorPlot`` treat complex numbers as directions:

```wl
In[1]:= ComplexStreamPlot[Log[z], {z, 3}]

Out[1]= [image]

In[2]:= ComplexVectorPlot[Log[z], {z, 3}]

Out[2]= [image]
```

### Possible Issues (2)

An apparent lack of color change does not mean that the argument value does not change:

```wl
In[1]:= AbsArgPlot[x + (-2^x + 1 - I / 10 - x)UnitStep[x], {x, -1, 1}, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Mesh points that coincide with argument exclusions may be missing:

```wl
In[1]:= {AbsArgPlot[Exp[I x], {x, 0, 2Pi}, Mesh -> 15, MeshStyle -> Black], AbsArgPlot[Exp[I x], {x, 0, 2Pi}, Mesh -> 15, MeshStyle -> Black, Exclusions -> None]}

Out[1]= {[image], [image]}
```

## See Also

* [`ReImPlot`](https://reference.wolfram.com/language/ref/ReImPlot.en.md)
* [`ComplexPlot`](https://reference.wolfram.com/language/ref/ComplexPlot.en.md)
* [`ComplexListPlot`](https://reference.wolfram.com/language/ref/ComplexListPlot.en.md)
* [`ComplexPlot3D`](https://reference.wolfram.com/language/ref/ComplexPlot3D.en.md)
* [`AbsArg`](https://reference.wolfram.com/language/ref/AbsArg.en.md)
* [`ReIm`](https://reference.wolfram.com/language/ref/ReIm.en.md)
* [`Plot`](https://reference.wolfram.com/language/ref/Plot.en.md)
* [`ParametricPlot`](https://reference.wolfram.com/language/ref/ParametricPlot.en.md)

## Related Guides

* [Complex Visualization](https://reference.wolfram.com/language/guide/ComplexVisualization.en.md)
* [Function Visualization](https://reference.wolfram.com/language/guide/FunctionVisualization.en.md)
* [Functions of Complex Variables](https://reference.wolfram.com/language/guide/FunctionsOfComplexVariables.en.md)

## History

* [Introduced in 2019 (12.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn120.en.md) \| [Updated in 2021 (13.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn130.en.md) ▪ [2023 (13.3)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn133.en.md)