---
title: "RegionPlot"
language: "en"
type: "Symbol"
summary: "RegionPlot[pred, {x, xmin, xmax}, {y, ymin, ymax}] makes a plot showing the region in which pred is True. RegionPlot[{pred1, pred2, ...}, ...] plots several regions corresponding to the predi. RegionPlot[{..., w[predi, ...], ...}, ...] plots predi with features defined by the symbolic wrapper w."
keywords: 
- characteristic function
- complex inequalities
- constraint regions
- constraint set
- feasible sets
- inequalities
- inequalityplot
- logical combinations of inequalities
- plot region
- plotting 2D regions
- plotting complex regions
- plotting feasible sets
- plotting inequalities
- Venn diagrams
canonical_url: "https://reference.wolfram.com/language/ref/RegionPlot.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Function Visualization"
    link: "https://reference.wolfram.com/language/guide/FunctionVisualization.en.md"
  - 
    title: "Precollege Education"
    link: "https://reference.wolfram.com/language/guide/PrecollegeEducation.en.md"
related_functions: 
  - 
    title: "ContourPlot"
    link: "https://reference.wolfram.com/language/ref/ContourPlot.en.md"
  - 
    title: "DensityPlot"
    link: "https://reference.wolfram.com/language/ref/DensityPlot.en.md"
  - 
    title: "RegionPlot3D"
    link: "https://reference.wolfram.com/language/ref/RegionPlot3D.en.md"
  - 
    title: "RegionFunction"
    link: "https://reference.wolfram.com/language/ref/RegionFunction.en.md"
  - 
    title: "ParametricPlot"
    link: "https://reference.wolfram.com/language/ref/ParametricPlot.en.md"
  - 
    title: "Reduce"
    link: "https://reference.wolfram.com/language/ref/Reduce.en.md"
  - 
    title: "FindInstance"
    link: "https://reference.wolfram.com/language/ref/FindInstance.en.md"
  - 
    title: "Boole"
    link: "https://reference.wolfram.com/language/ref/Boole.en.md"
---
# RegionPlot

RegionPlot[pred, {x, xmin, xmax}, {y, ymin, ymax}] makes a plot showing the region in which pred is True. 

RegionPlot[{pred1, pred2, …}, …] plots several regions corresponding to the predi.

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

## Details and Options

* The predicate ``pred`` can be any logical combination of inequalities.

[image]

* The region plotted by ``RegionPlot`` can contain disconnected parts.

* ``RegionPlot`` treats the variable ``x`` and ``y`` as local, effectively using ``Block``.

* ``RegionPlot`` has attribute ``HoldAll`` and evaluates ``pred`` only after assigning specific numerical values to ``x`` and ``y``. In some cases, it may be more efficient to use ``Evaluate`` to evaluate ``pred`` symbolically first.

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

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

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

|               |                            |
| ------------- | -------------------------- |
| w[predi]      | wrap the predi             |
| w[{predi, …}] | wrap a collection of predi |
| 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 region                                 |
| {x, y}                      | position near {x, y}                                        |
| {pos, epos}                 | epos in label placed at relative position pos of the region |

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

|                            |                   |                                                         |
| :------------------------- | :---------------- | :------------------------------------------------------ |
| AspectRatio                | 1                 | ratio of height to width                                |
| BoundaryStyle              | Automatic         | the style for the boundary of each region               |
| ColorFunction              | Automatic         | how to color the interior of each region                |
| ColorFunctionScaling       | True              | whether to scale the argument to ColorFunction          |
| EvaluationMonitor          | None              | expression to evaluate at every function evaluation     |
| Frame                      | True              | whether to draw a frame around the plot                 |
| LabelingSize               | Automatic         | maximum size of callouts and labels                     |
| MaxRecursion               | Automatic         | the maximum number of recursive subdivisions allowed    |
| Mesh                       | None              | how many mesh lines to draw                             |
| MeshFunctions              | {#1&, #2&}        | what mesh lines to draw                                 |
| MeshShading                | None              | how to shade regions between mesh lines                 |
| MeshStyle                  | Automatic         | the style for mesh lines                                |
| Method                     | Automatic         | the method to use for refining regions                  |
| PerformanceGoal            | \$PerformanceGoal | aspects of performance to try to optimize               |
| PlotLabels                 | None              | labels to use for curves                                |
| PlotLegends                | None              | legends for regions                                     |
| PlotPoints                 | Automatic         | initial number of sample points                         |
| PlotRange                  | Full              | the range of values to include in the plot              |
| PlotRangeClipping          | True              | whether to clip at the plot range                       |
| PlotRangePadding           | Automatic         | how much to pad the range of values                     |
| PlotStyle                  | Automatic         | graphics directives to specify the style for regions    |
| PlotTheme                  | \$PlotTheme       | overall theme for the plot                              |
| ScalingFunctions           | None              | how to scale individual coordinates                     |
| TextureCoordinateFunction  | Automatic         | how to determine texture coordinates                    |
| TextureCoordinateScaling   | True              | whether to scale arguments to TextureCoordinateFunction |
| WorkingPrecision           | MachinePrecision  | the precision used in internal computations             |

* Typical settings for ``PlotLegends`` include:

|                  |                                        |
| ---------------- | -------------------------------------- |
| None             | no legend                              |
| Automatic        | automatically determine the legend     |
| "Expressions"    | use f1, f2, … as the legend labels     |
| {lbl1, lbl2, …}  | use lbl1, lbl2, … as the legend labels |
| Placed[lspec, …] | specify placement for the legend       |

* ``ColorData["DefaultPlotColors"]`` gives the default sequence of colors used by ``PlotStyle``.

* ``RegionPlot`` initially evaluates ``pred`` at a grid of equally spaced sample points specified by ``PlotPoints``. Then it uses an adaptive algorithm to subdivide at most ``MaxRecursion`` times, attempting to find the boundaries of all regions in which ``pred`` is ``True``.

* You should realize that since it uses only a finite number of sample points, it is possible for ``RegionPlot`` to miss regions in which ``pred`` is ``True``. To check your results, you should try increasing the settings for ``PlotPoints`` and ``MaxRecursion``.

* With the default setting ``PlotRange -> Full``, ``RegionPlot`` will explicitly include the full ranges ``xmin`` to ``xmax`` and ``ymin`` to ``ymax`` for ``x`` and ``y``.

* With ``Mesh -> All``, ``RegionPlot`` will explicitly draw mesh lines to indicate the subdivisions it used to find each region.

* ``RegionPlot`` can in general only find regions of positive measure; it cannot find regions that are just lines or points.

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

* ``ScalingFunctions -> {sx, sy}`` scales the ``x`` axis with ``sx`` and the ``y`` axis with ``sy``.

* Common built-in scaling functions ``s`` include:

|             |         |                                                     |
| ----------- | ------- | --------------------------------------------------- |
| "Log"       | [image] | log scale with automatic tick labeling              |
| "Log10"     | [image] | base-10 log scale with powers of 10 for ticks       |
| "SignedLog" | [image] | log-like scale that includes 0 and negative numbers |
| "Reverse"   | [image] | reverse the coordinate direction                    |
| "Infinite"  | [image] | infinite scale                                      |

* ``RegionPlot`` returns ``Graphics[GraphicsComplex[data]]``.

### List of all options

|                           |                   |                                                                                    |
| ------------------------- | ----------------- | ---------------------------------------------------------------------------------- |
| AlignmentPoint            | Center            | the default point in the graphic to align with                                     |
| AspectRatio               | 1                 | ratio of height to width                                                           |
| Axes                      | False             | whether to draw axes                                                               |
| AxesLabel                 | None              | axes labels                                                                        |
| AxesOrigin                | Automatic         | where axes should cross                                                            |
| AxesStyle                 | {}                | style specifications for the axes                                                  |
| Background                | None              | background color for the plot                                                      |
| BaselinePosition          | Automatic         | how to align with a surrounding text baseline                                      |
| BaseStyle                 | {}                | base style specifications for the graphic                                          |
| BoundaryStyle             | Automatic         | the style for the boundary of each region                                          |
| ColorFunction             | Automatic         | how to color the interior of each region                                           |
| ColorFunctionScaling      | True              | whether to scale the argument 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                                |
| FormatType                | TraditionalForm   | the default format type for text                                                   |
| Frame                     | True              | whether to draw 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 lines to draw                                                        |
| MeshFunctions             | {#1&, #2&}        | what mesh lines to draw                                                            |
| MeshShading               | None              | how to shade regions between mesh lines                                            |
| MeshStyle                 | Automatic         | the style for mesh lines                                                           |
| Method                    | Automatic         | the method to use for refining regions                                             |
| PerformanceGoal           | \$PerformanceGoal | aspects of performance to try to optimize                                          |
| PlotLabel                 | None              | an overall label for the plot                                                      |
| PlotLabels                | None              | labels to use for curves                                                           |
| PlotLegends               | None              | legends for regions                                                                |
| PlotPoints                | Automatic         | initial number of sample points                                                    |
| PlotRange                 | Full              | the range of values to include in the plot                                         |
| 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 regions                               |
| 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                                           |
| RotateLabel               | True              | whether to rotate y labels on the frame                                            |
| ScalingFunctions          | None              | how to scale individual coordinates                                                |
| TextureCoordinateFunction | Automatic         | how to determine texture coordinates                                               |
| TextureCoordinateScaling  | True              | whether to scale arguments to TextureCoordinateFunction                            |
| Ticks                     | Automatic         | axes ticks                                                                         |
| TicksStyle                | {}                | style specifications for axes ticks                                                |
| WorkingPrecision          | MachinePrecision  | the precision used in internal computations                                        |

---

## Examples (132)

### Basic Examples (5)

Plot a region defined by an inequality:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 3 < 2, {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

---

Plot a region defined by logical combinations of inequalities:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 3 < 2 && x + y < 1, {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

---

Plot disconnected regions:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 4, {x, -10, 10}, {y, -10, 10}, BoundaryStyle -> Dashed, PlotStyle -> Yellow]

Out[1]= [image]
```

---

Use legends:

```wl
In[1]:= RegionPlot[{x ^ 2 < y ^ 3 + 1, y ^ 2 < x ^ 3 + 1}, {x, -2, 5}, {y, -2, 5}, PlotLegends -> "Expressions"]

Out[1]= [image]
```

---

Style the region:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshShading -> {{Automatic, None}, {None, Automatic}}, ColorFunction -> "DarkRainbow"]

Out[1]= [image]
```

### Scope (19)

#### Sampling (5)

More points are sampled where the function changes quickly:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}, Mesh -> All]

Out[1]= [image]
```

---

Areas where the function is not ``True`` are excluded:

```wl
In[1]:= RegionPlot[Sqrt[x y] < 1, {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

---

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

```wl
In[1]:= Grid[Table[RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, PlotPoints -> pp, MaxRecursion -> mr, Mesh -> None], {mr, {0, 2}}, {pp, {5, 15}}]]

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

---

Use logical combinations of regions:

```wl
In[1]:= RegionPlot[x ^ 2 < y ^ 3 + 1 && y ^ 2 < x ^ 3 + 1, {x, -2, 5}, {y, -2, 5}]

Out[1]= [image]
```

---

Plot over an infinite domain:

```wl
In[1]:= RegionPlot[x ^ 2 < y ^ 3 + 1 && y ^ 2 < x ^ 3 + 1, {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]

Out[1]= [image]
```

#### Labeling and Legending (4)

Label regions with ``Labeled`` :

```wl
In[1]:= RegionPlot[Labeled[x ^ 2 + y ^ 2 < 1, "region", Above], {x, -1.5, 1.5}, {y, -1.5, 1.5}]

Out[1]= [image]
```

Place the labels relative to the regions:

```wl
In[2]:= Table[RegionPlot[Labeled[x ^ 2 + y ^ 2 < 1, "region", pos], {x, -1.5, 1.5}, {y, -1.5, 1.5}, PlotLabel -> pos], {pos, {Top, Bottom}}]

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

---

Label regions with ``Callout`` :

```wl
In[1]:= RegionPlot[Callout[x ^ 2 < y ^ 3 + 1 && y ^ 2 < x ^ 3 + 1, "region", {1.5, 4}], {x, -2, 5}, {y, -2, 5}]

Out[1]= [image]
```

Callout leader is turned off when label is inside the region:

```wl
In[2]:= RegionPlot[Callout[x ^ 2 < y ^ 3 + 1 && y ^ 2 < x ^ 3 + 1, "region", {4, 4}], {x, -2, 5}, {y, -2, 5}]

Out[2]= [image]
```

---

Add legends with ``PlotLegends`` :

```wl
In[1]:= RegionPlot[{Sin[x]Sin[y] > 0.1, Cos[x]Cos[y] > 0.2}, {x, -5, 5}, {y, -5, 5}, PlotLegends -> "Expressions"]

Out[1]= [image]
```

---

Add legends with ``Legended`` :

```wl
In[1]:= RegionPlot[Legended[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, "Mandelbrot set"], {x, -2, 1}, {y, -1.5, 1.5}]

Out[1]= [image]
```

#### Presentation (10)

Provide an explicit ``PlotStyle`` for the region:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}, PlotStyle -> Orange]

Out[1]= [image]
```

---

Provide an explicit ``BoundaryStyle`` for the region boundary:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, BoundaryStyle -> Dashed, PlotStyle -> Yellow]

Out[1]= [image]
```

---

Add labels:

```wl
In[1]:= RegionPlot[1 < x ^ 2 + y ^ 2 < 4, {x, -2, 2}, {y, -2, 2}, FrameLabel -> {x, y}, PlotLabel -> "annulus", PlotStyle -> Green]

Out[1]= [image]
```

---

Use legends for multiple regions:

```wl
In[1]:= RegionPlot[{x ^ 2 < y ^ 2, y ^ 2 < x ^ 2}, {x, -2, 5}, {y, -2, 5}, PlotLegends -> "Expressions"]

Out[1]= [image]
```

---

Use automatic legends for gradient colored regions:

```wl
In[1]:= RegionPlot[1 < x ^ 2 - x y + y ^ 2 < 2, {x, -2, 2}, {y, -2, 2}, ColorFunction -> "RustTones", PlotLegends -> Automatic]

Out[1]= [image]
```

---

Use an overlay mesh:

```wl
In[1]:= RegionPlot[1 < x ^ 2 + y ^ 2 < 4, {x, -2, 2}, {y, -2, 2}, Mesh -> 8, MeshStyle -> Directive[Red, Dashed]]

Out[1]= [image]
```

---

Style the areas between mesh lines:

```wl
In[1]:= RegionPlot[1 < x ^ 2 + y ^ 2 < 4, {x, -2, 2}, {y, -2, 2}, Mesh -> 8, MeshShading -> {{Yellow, Orange}, {Pink, Red}}]

Out[1]= [image]
```

---

Color the region with an overlay density:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -1.5, 0.5}, {y, -1.1, 1.1}, ColorFunction -> Function[{x, y}, Hue[Arg[Nest[(# ^ 2 + x + I y)&, x + I y, 8]]]], ColorFunctionScaling -> False, PlotPoints -> 50]

Out[1]= [image]
```

---

Use a plot theme:

```wl
In[1]:= RegionPlot[1 < x ^ 2 + y ^ 2 < 4, {x, -2, 2}, {y, -2, 2}, Mesh -> 8, PlotTheme -> "Scientific"]

Out[1]= [image]
```

---

Scale the axes for a region:

```wl
In[1]:= RegionPlot[x ^ 2y < y ^ 2 + x ^ 2, {x, 0, 100}, {y, 0, 100}, ScalingFunctions -> {"Log", "Log"}]

Out[1]= [image]
```

### Options (87)

#### AspectRatio (4)

By default, ``RegionPlot`` uses the same width and height:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}]

Out[1]= [image]
```

---

Use numerical values to specify the height-to-width ratio:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> 1 / 2]

Out[1]= [image]
```

---

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

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> Automatic]

Out[1]= [image]
```

---

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

```wl
In[1]:=
plot = RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> Automatic];
{Framed[Pane[plot, {75, 100}]], Framed[Pane[plot, {100, 100}]], Framed[Pane[plot, {100, 50}]]}

Out[1]= [image]
```

#### Axes (3)

By default, ``RegionPlot`` uses a frame instead of axes:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}]

Out[1]= [image]
```

---

Use axes instead of a frame:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Turn each axis on individually:

```wl
In[1]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> {True, False}], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> {False, True}]}

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

#### AxesLabel (4)

No axes labels are drawn by default:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Place a label on the $y$ axis:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesLabel -> y]

Out[1]= [image]
```

---

Specify axes labels:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesLabel -> {x, y}]

Out[1]= [image]
```

---

Use labels based on variables specified in ``RegionPlot`` :

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesLabel -> Automatic]

Out[1]= [image]
```

#### AxesOrigin (2)

The position of the axes is determined automatically:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Specify an explicit origin for the axes:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesOrigin -> {0, -1}]

Out[1]= [image]
```

#### AxesStyle (3)

Change the style for the axes:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesStyle -> Red]

Out[1]= [image]
```

---

Specify the style of each axis:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesStyle -> {{Thick, Red}, {Thick, Blue}}]

Out[1]= [image]
```

---

Use different styles for the ticks and the axes:

```wl
In[1]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, Frame -> False, Axes -> True, AxesStyle -> Green, TicksStyle -> Black]

Out[1]= [image]
```

#### BoundaryStyle (4)

Regions have a gray boundary:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}]

Out[1]= [image]
```

---

Use ``None`` to show regions without any boundary:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, BoundaryStyle -> None]

Out[1]= [image]
```

---

Use a blue boundary:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, BoundaryStyle -> Blue]

Out[1]= [image]
```

---

Use a thicker dashed boundary:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, BoundaryStyle -> Directive[Thickness[Medium], Dashed]]

Out[1]= [image]
```

#### ColorFunction (5)

Color regions by scaled $x$ and $y$ values:

```wl
In[1]:=
{RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, Hue[x]]], 
	RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, Hue[y]]]}

Out[1]= [image]
```

---

Named color functions use the scaled $y$ direction:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> "Rainbow"]

Out[1]= [image]
```

---

Color regions according to a function of $x$ and $y$ :

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, ColorData["SolarColors"][Sin[x]Sin[y]]], ColorFunctionScaling -> False]

Out[1]= [image]
```

---

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

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> "DarkRainbow", PlotStyle -> Directive[Opacity[0.5], Red]]

Out[1]= [image]
```

---

``ColorFunction`` has lower priority than ``MeshShading`` :

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, Mesh -> 30, MeshShading -> {{Black, Automatic}, {Automatic, Black}}, ColorFunction -> "DarkRainbow"]

Out[1]= [image]
```

#### ColorFunctionScaling (1)

Use unscaled $x$ and $y$ coordinates for coloring the regions:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> Function[{x, y}, ColorData["BlueGreenYellow"][Sin[x]Sin[y]]], ColorFunctionScaling -> False]

Out[1]= [image]
```

#### ImageSize (7)

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

```wl
In[1]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> Tiny], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> Small]}

Out[1]= [image]
```

---

Specify the width of the plot:

```wl
In[1]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> 150], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> 1.5, ImageSize -> 150]}

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

Specify the height of the plot:

```wl
In[2]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> {Automatic, 150}], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> 2, ImageSize -> {Automatic, 150}]}

Out[2]= [image]
```

---

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

```wl
In[1]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> UpTo[200]], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, 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]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> {200, 200}, Background -> LightBlue]

Out[1]= [image]
```

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

```wl
In[2]:= RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> Full, ImageSize -> {200, 250}, Background -> LightBlue]

Out[2]= [image]
```

---

Use maximum sizes for the width and height:

```wl
In[1]:= {RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, ImageSize -> {UpTo[150], UpTo[100]}], RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> 2, ImageSize -> {UpTo[150], UpTo[100]}]}

Out[1]= [image]
```

---

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

```wl
In[1]:= Framed[Pane[RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, 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[RegionPlot[(x + 1 / 2) ^ 2 + y ^ 2 < 1 || (x - 1 / 2) ^ 2 + y ^ 2 < 1, {x, -1.5, 1.5}, {y, -1, 1}, AspectRatio -> Full, ImageSize -> {Scaled[0.5], Scaled[0.5]}, Background -> LightBlue], {200, 200}]]

Out[1]= [image]
```

#### LabelingSize (2)

Textual labels are shown at their actual sizes:

```wl
In[1]:= RegionPlot[Callout[x ^ 2 + y ^ 2 < 1, "region", {-0.5, 1.25}], {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

Specify the size of the text:

```wl
In[2]:= RegionPlot[Callout[x ^ 2 + y ^ 2 < 1, "region", {-0.5, 1.25}], {x, -2, 2}, {y, -2, 2}, LabelingSize -> 25]

Out[2]= [image]
```

---

Image labels are resized to fit in the plot:

```wl
In[1]:= RegionPlot[Callout[x ^ 2 + y ^ 2 < 1, [image], {-0.75, 1.1}], {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

Specify the labeling size:

```wl
In[2]:= RegionPlot[Callout[x ^ 2 + y ^ 2 < 1, [image], {-0.75, 1.1}], {x, -2, 2}, {y, -2, 2}, LabelingSize -> 40]

Out[2]= [image]
```

#### MaxRecursion (1)

Refine the region where it changes quickly:

```wl
In[1]:= Table[RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}, MaxRecursion -> r, Mesh -> All], {r, {0, 5}}]

Out[1]= [image]
```

#### Mesh (7)

Use no mesh:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> None]

Out[1]= [image]
```

---

Show the initial and final sampling meshes:

```wl
In[1]:= {RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> Full], RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> All]}

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

---

Use 10 mesh lines in each direction:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10]

Out[1]= [image]
```

---

Use 3 mesh lines in the $x$ direction and 6 mesh lines in the $y$ direction:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> {3, 6}]

Out[1]= [image]
```

---

Use mesh lines at specific values:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> {{-1 / 2, 1 / 2}, {0}}]

Out[1]= [image]
```

---

Use different styles for different mesh lines:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> {{{-1 / 2, Red}, {1 / 2, Red}}, {{0, Dashed}}}]

Out[1]= [image]
```

---

Mesh lines apply to the whole region, not each component:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -1, 1}, {y, -1, 1}, Mesh -> 10]

Out[1]= [image]
```

#### MeshFunctions (2)

Mesh lines in the $x$ and $y$ directions:

```wl
In[1]:= {RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshFunctions -> {#1&}], RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshFunctions -> {#2&}]}

Out[1]= [image]
```

---

Mesh lines at fixed radii from the origin:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshFunctions -> {Norm[{#1, #2}]&}]

Out[1]= [image]
```

#### MeshShading (4)

Use ``None`` to remove regions:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 8, MeshFunctions -> {#1 - #2&}, MeshShading -> {Red, None}]

Out[1]= [image]
```

---

Lay a checkerboard pattern over a region:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshShading -> {{Red, Yellow}, {Pink, Orange}}]

Out[1]= [image]
```

---

``MeshShading`` has a higher priority than ``PlotStyle``:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, PlotStyle -> Blue, MeshShading -> {{Automatic, Green}, {Green, Automatic}}]

Out[1]= [image]
```

---

``MeshShading`` has a higher priority than ``ColorFunction`` :

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, Mesh -> 10, MeshShading -> {{Automatic, None}, {None, Automatic}}, ColorFunction -> "DarkRainbow"]

Out[1]= [image]
```

#### MeshStyle (2)

Use red mesh lines:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, MeshStyle -> Red, Mesh -> 5]

Out[1]= [image]
```

---

Use red mesh lines in the $x$ direction and dashed mesh lines in the $y$ direction:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, MeshStyle -> {Red, Dashed}, Mesh -> 5]

Out[1]= [image]
```

#### PerformanceGoal (2)

Generate a higher-quality plot:

```wl
In[1]:= Timing[RegionPlot[Sin[x]Sin[y] > 0.1, {x, -5, 5}, {y, -5, 5}, PerformanceGoal -> "Quality"]]

Out[1]= [image]
```

---

Emphasize performance, possibly at the cost of quality:

```wl
In[1]:= Timing[RegionPlot[Sin[x]Sin[y] > 0.1, {x, -5, 5}, {y, -5, 5}, PerformanceGoal -> "Speed"]]

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

#### PlotLegends (8)

Use legends:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}, PlotLegends -> All]

Out[1]= [image]
```

---

Use legends for multiple regions:

```wl
In[1]:= RegionPlot[{Sin[x]Sin[y] > 0.1, Cos[x]Cos[y] > 0.2}, {x, -5, 5}, {y, -5, 5}, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Use automatic legends for a gradient colored region:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 < 1, {x, -1, 1}, {y, -1, 1}, ColorFunction -> "DarkRainbow", PlotLegends -> Automatic]

Out[1]= [image]
```

---

``PlotLegends`` automatically picks up styles:

```wl
In[1]:= RegionPlot[{Sin[x]Sin[y] > 0.1, Cos[x]Cos[y] > 0.2}, {x, -5, 5}, {y, -5, 5}, PlotStyle -> 96, PlotLegends -> Automatic]

Out[1]= [image]
```

---

Use functions as legend texts:

```wl
In[1]:= RegionPlot[1 < Abs[x + I y] < 2, {x, -2, 2}, {y, -2, 2}, PlotLegends -> "AllExpressions"]

Out[1]= [image]

In[2]:= RegionPlot[{Sin[x]Sin[y] > 0.1, Cos[x]Cos[y] > 0.2}, {x, -5, 5}, {y, -5, 5}, PlotLegends -> "Expressions"]

Out[2]= [image]
```

---

Specify legend texts:

```wl
In[1]:= RegionPlot[{(x + 1) ^ 2 + y ^ 2 < 2, (x - 1) ^ 2 + y ^ 2 < 2}, {x, -3, 3}, {y, -3, 3}, PlotLegends -> {"f1", "f2"}]

Out[1]= [image]
```

---

Use ``Placed`` to change legend position:

```wl
In[1]:= Table[RegionPlot[{(x + 1) ^ 2 + y ^ 2 < 2, (x - 1) ^ 2 + y ^ 2 < 2}, {x, -3, 3}, {y, -3, 3}, PlotLegends -> Placed[Automatic, pos], PlotLabel -> pos], {pos, {Before, After}}]

Out[1]= [image]

In[2]:= Table[RegionPlot[{(x + 1) ^ 2 + y ^ 2 < 2, (x - 1) ^ 2 + y ^ 2 < 2}, {x, -3, 3}, {y, -3, 3}, PlotLegends -> Placed[Automatic, pos], PlotLabel -> pos], {pos, {Above, Below}}]

Out[2]= [image]
```

---

Use ``SwatchLegend`` to change legend appearance:

```wl
In[1]:= RegionPlot[{Sin[x]Sin[y] > 0.1, Cos[x]Cos[y] > 0.2}, {x, -5, 5}, {y, -5, 5}, PlotLegends -> SwatchLegend[Automatic, {"f1", "f2"}, LegendFunction -> "Frame", LegendLabel -> "ℛ"]]

Out[1]= [image]
```

#### PlotPoints (1)

Use more initial points to get smoother regions:

```wl
In[1]:= Table[RegionPlot[Sin[x]Sin[y] > 0, {x, -5, 5}, {y, -5, 5}, MaxRecursion -> 0, PlotPoints -> pp], {pp, {5, 10, 20, 50}}]

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

#### PlotRange (2)

Show the region over the full $x$, $y$ range:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}]

Out[1]= [image]
```

---

Automatically compute the $x$, $y$ range:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 1}, {y, -1.5, 1.5}, PlotRange -> Automatic]

Out[1]= [image]
```

#### PlotStyle (5)

Regions are shown in light blue:

```wl
In[1]:= RegionPlot[(x + 1) ^ 2 + y ^ 2 < 2 || (x - 1) ^ 2 + y ^ 2 < 2, {x, -3, 3}, {y, -3, 3}]

Out[1]= [image]
```

---

Use ``None`` to just show the boundary of the region:

```wl
In[1]:= RegionPlot[(x + 1) ^ 2 + y ^ 2 < 2 || (x - 1) ^ 2 + y ^ 2 < 2, {x, -3, 3}, {y, -3, 3}, PlotStyle -> None]

Out[1]= [image]
```

---

Use light orange:

```wl
In[1]:= RegionPlot[(x + 1) ^ 2 + y ^ 2 < 2 || (x - 1) ^ 2 + y ^ 2 < 2, {x, -3, 3}, {y, -3, 3}, PlotStyle -> LightOrange]

Out[1]= [image]
```

---

Distinct colors are used for different regions:

```wl
In[1]:= RegionPlot[{(x + 1) ^ 2 + y ^ 2 < 2, (x - 1) ^ 2 + y ^ 2 < 2}, {x, -3, 3}, {y, -3, 3}]

Out[1]= [image]
```

---

Use transparent colors for different regions:

```wl
In[1]:= RegionPlot[{(x + 1) ^ 2 + y ^ 2 < 2, (x - 1) ^ 2 + y ^ 2 < 2}, {x, -3, 3}, {y, -3, 3}, PlotStyle -> {Directive[Yellow, Opacity[0.4]], Directive[Green, Opacity[0.4]]}]

Out[1]= [image]
```

#### PlotTheme (2)

Use a theme with simple ticks and grid lines in a bright color scheme:

```wl
In[1]:= RegionPlot[(x + 1) ^ 2 + y ^ 2 < 2 || (x - 1) ^ 2 + y ^ 2 < 2, {x, -3, 3}, {y, -3, 3}, PlotTheme -> "Business"]

Out[1]= [image]
```

---

Change the color scheme:

```wl
In[1]:= RegionPlot[(x + 1) ^ 2 + y ^ 2 < 2 || (x - 1) ^ 2 + y ^ 2 < 2, {x, -3, 3}, {y, -3, 3}, PlotTheme -> "Business", PlotStyle -> 16]

Out[1]= [image]
```

#### ScalingFunctions (5)

By default, plots have linear scales in each direction:

```wl
In[1]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -5, 5}, {y, -5, 5}]

Out[1]= [image]
```

---

Scale the ``x`` axis to go from positive to negative instead:

```wl
In[1]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -5, 5}, {y, -5, 5}, ScalingFunctions -> {"Reverse", None}]

Out[1]= [image]
```

---

Use a sign-aware log scale for the ``y`` axis:

```wl
In[1]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -5, 5}, {y, -5, 5}, ScalingFunctions -> {None, "SignedLog"}]

Out[1]= [image]

In[2]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -5, 5}, {y, -5, 5}]

Out[2]= [image]
```

---

Domain that contains ``Infinity`` is scaled automatically:

```wl
In[1]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -Infinity, Infinity}, {y, -Infinity, Infinity}]

Out[1]= [image]
```

---

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

```wl
In[1]:= RegionPlot[x ^ 3 + y ^ 4 > 1, {x, -Infinity, Infinity}, {y, -Infinity, Infinity}, ScalingFunctions -> {"Reverse", None}]

Out[1]= [image]
```

#### TextureCoordinateFunction (2)

Textures use scaled $x$ and $y$ coordinates by default:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, PlotStyle -> Texture[ExampleData[{"ColorTexture", "MultiSpiralsPattern"}]]]

Out[1]= [image]
```

---

Use unscaled coordinates:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, TextureCoordinateScaling -> False, PlotStyle -> Texture[ExampleData[{"ColorTexture", "MultiSpiralsPattern"}]]]

Out[1]= [image]
```

#### TextureCoordinateScaling (1)

Use scaled or unscaled coordinates for textures:

```wl
In[1]:= texture = ArrayPlot[{{1, 1, 1, 2, 1, 1}, {2, 0, 0, 2, 0, 0}, {2, 0, 0, 2, 0, 0}, {2, 1, 1, 1, 1, 1}, {2, 0, 0, 2, 0, 0}, {2, 0, 0, 2, 0, 0}}, ColorRules -> {1 -> Red, 2 -> Blue, 0 -> White}, Frame -> False, PlotRangePadding -> None, ImagePadding -> None, ImageSize -> 100]

Out[1]= [image]

In[2]:= Table[RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, TextureCoordinateScaling -> s, PlotStyle -> Texture[texture], PlotLabel -> s], {s, {True, False}}]

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

#### Ticks (4)

Ticks are placed automatically in each plot:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Use ``Ticks -> None`` to not draw any tick marks:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, Ticks -> None]

Out[1]= [image]
```

---

Place tick marks at specific positions:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, Ticks -> {{-2, .5, 2}, {-2, 1, 2}}]

Out[1]= [image]
```

---

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

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, Ticks -> {{{-2, -a}, {.5, b}, {2, a}}, {{-2, -a}, {1, c}, {2, a}}}]

Out[1]= [image]
```

#### TicksStyle (4)

Specify overall tick style, including the tick labels:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, TicksStyle -> Directive[Red, Bold]]

Out[1]= [image]
```

---

Specify tick style for each of the axes:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, TicksStyle -> {Directive[Red, 16], Directive[Blue, 16]}]

Out[1]= [image]
```

---

Specify tick marks with scaled lengths:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, Ticks -> {{{-2, -a, .03}, {.5, b, .05}, {2, a, .03}}, {{-2, -a, .03}, {1, c, .03}, {2, a, .08}}}]

Out[1]= [image]
```

---

Customize each tick with position, length, labeling and styling:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -2, 2}, {y, -2, 2}, Frame -> False, Axes -> True, Ticks -> {{{-2, -a, .02, Directive[Thick, Darker@Green]}, {.3, b, .15, Directive[Thick, Blue]}, {2, a, .01, Directive[Thick, Red]}}, {{-2, -a, .03, Directive[Thick, Blue]}, {1, c, .03, Directive[Thick, Blue]}, {2, a, .03, Directive[Thick, Blue]}}}]

Out[1]= [image]
```

### Applications (8)

Find the intersection of two half-spaces:

```wl
In[1]:= RegionPlot[x ≤ 2y + 1 && y > x - 1, {x, -2, 2}, {y, -2, 2}, PlotPoints -> 35]

Out[1]= [image]
```

---

Simple regions including a disk:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 ≤ 1, {x, -1, 1}, {y, -1, 1}]

Out[1]= [image]
```

Disk annulus:

```wl
In[2]:= RegionPlot[1 / 4 ≤ x ^ 2 + y ^ 2 ≤ 1, {x, -1, 1}, {y, -1, 1}]

Out[2]= [image]
```

Ellipse:

```wl
In[3]:= RegionPlot[x ^ 2 + (2y) ^ 2 ≤ 1, {x, -1, 1}, {y, -1, 1}]

Out[3]= [image]
```

Ellipse annulus:

```wl
In[4]:= RegionPlot[1 / 4 ≤ x ^ 2 + (2y) ^ 2 ≤ 1, {x, -1, 1}, {y, -1, 1}]

Out[4]= [image]
```

Disk segment:

```wl
In[5]:= RegionPlot[x ^ 2 + y ^ 2 ≤ 1 && y ≥ 0 && y ≥ -x, {x, -1, 1}, {y, -1, 1}]

Out[5]= [image]
```

Disk segment annulus:

```wl
In[6]:= RegionPlot[1 / 4 ≤ x ^ 2 + y ^ 2 ≤ 1 && y ≥ 0 && y ≥ -x, {x, -1, 1}, {y, -1, 1}]

Out[6]= [image]
```

---

Illustrate set operations:

```wl
In[1]:=
a = (-(1/2) + x)^2 + y^2 < 1;
b = ((1/2) + x)^2 + y^2 < 1;

In[2]:= Table[RegionPlot[f[a, b], {x, -2, 2}, {y, -2, 2}, PlotLabel -> f], {f, {And, Or, Xor, Implies, Nand, Nor}}]

Out[2]= [image]
```

---

Visualize regions in the complex plane:

```wl
In[1]:= RegionPlot[1 < Abs[x + I y] < 2, {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]

In[2]:= RegionPlot[1 < Abs[ ((x + I y) - 2/2(x + I y) - 1)] < 2, {x, -2, 2}, {y, -2, 2}]

Out[2]= [image]

In[3]:= Table[Block[{z = x + I y}, RegionPlot[Abs[(z - I)(z + I)(z - 1)(z + 1)] < r, {x, -2, 2}, {y, -2, 2}]], {r, {1 / 2, 1, 3 / 2}}]

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

---

Identify where a function is real-valued:

```wl
In[1]:= RegionPlot[MatchQ[Sqrt[x  - y ^ 3], _Real], {x, -2, 2}, {y, -2, 2}]

Out[1]= [image]
```

---

Integrate over a region that contains parameters:

```wl
In[1]:= Integrate[Boole[x ^ 2 + y ^ 2 < a], {x, 0, 1}, {y, 0, 1}]

Out[1]=
Piecewise[{{1, a >= 2}, {(a*Pi)/4, Inequality[0, Less, a, LessEqual, 1]}, 
  {(1/2)*(2*Sqrt[-1 + a] + a*ArcCsc[Sqrt[a]] - a*ArcTan[Sqrt[-1 + a]]), 1 < a < 2}}, 0]
```

Visualize the regions for the three different cases:

```wl
In[2]:= Table[RegionPlot[x ^ 2 + y ^ 2 < a, {x, 0, 1}, {y, 0, 1}, FrameTicks -> None], {a, {1 / 2, 3 / 2, 5 / 2}}]

Out[2]= [image]
```

---

Absolute stability regions for Euler forward:

```wl
In[1]:= euler = PadeApproximant[Exp[z], {z, 0, {1, 0}}]

Out[1]= 1 + z

In[2]:= Block[{z = u + I v}, RegionPlot[Abs[euler] < 1, {u, -4, 4}, {v, -4, 4}]]

Out[2]= [image]
```

Stability regions for Euler backward and Tustin or midpoint rules:

```wl
In[3]:= Block[{z = u + I v}, RegionPlot[Abs[#] < 1, {u, -4, 4}, {v, -4, 4}]]& /@ {PadeApproximant[Exp[z], {z, 0, {0, 1}}], PadeApproximant[Exp[z], {z, 0, {1, 1}}]}

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

Stability regions for explicit Runge–Kutta rules of order 2, 3, 4, and 5:

```wl
In[4]:= Block[{z = u + I v}, RegionPlot[Abs[#] < 1, {u, -4, 4}, {v, -4, 4}]]& /@ Table[PadeApproximant[Exp[z], {z, 0, {n, 0}}], {n, 2, 5}]

Out[4]= [image]
```

---

Relative stability or order-stars regions for ``{0, n}`` Padé approximants:

```wl
In[1]:= Block[{z = u + I v}, RegionPlot[Abs[# / Exp[z]] > 1, {u, -4, 4}, {v, -4, 4}]]& /@ Table[PadeApproximant[Exp[z], {z, 0, {0, n}}], {n, 2, 5}]

Out[1]= [image]
```

Order-star regions for ``{n, 0}`` Padé approximants:

```wl
In[2]:= Block[{z = u + I v}, RegionPlot[Abs[# / Exp[z]] > 1, {u, -4, 4}, {v, -4, 4}]]& /@ Table[PadeApproximant[Exp[z], {z, 0, {n, 0}}], {n, 2, 5}]

Out[2]= [image]
```

### Properties & Relations (9)

``RegionPlot`` samples more points where it needs to:

```wl
In[1]:= RegionPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2, {x, -1.5, 0.5}, {y, -1.1, 1.1}, Mesh -> All]

Out[1]= [image]
```

---

Use ``RegionPlot3D`` for volumes:

```wl
In[1]:= RegionPlot3D[x ^ 2 + y ^ 2 < z ^ 2 && x ^ 2 + y ^ 2 + z ^ 2 < 4, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, PlotPoints -> 35]

Out[1]= [image]
```

---

Use ``ContourPlot`` and ``ContourPlot3D`` for systems of equalities:

```wl
In[1]:= ContourPlot[Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] == 2, {x, -1.5, 0.5}, {y, -1.1, 1.1}]//Quiet

Out[1]= [image]

In[2]:= ContourPlot3D[-(x ^ 4 + y ^ 4 + z ^ 4) + (x ^ 2 + y ^ 2 + z ^ 2) == 1 / 2, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Mesh -> None, ContourStyle -> Orange]

Out[2]= [image]
```

---

Use ``ComplexRegionPlot`` for regions in the complex plane:

```wl
In[1]:= ComplexRegionPlot[Re[z ^ 3] > Im[z ^ 3], {z, 2}]

Out[1]= [image]
```

---

Use ``RegionFunction`` to constrain other plots:

```wl
In[1]:= DensityPlot[Sin[x y], {x, -1.5, 0.5}, {y, -1.1, 1.1}, RegionFunction -> Function[{x, y, z}, Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2]]

Out[1]= [image]

In[2]:= Plot3D[Sin[x y], {x, -1.5, 0.5}, {y, -1.1, 1.1}, RegionFunction -> Function[{x, y, z}, Abs[Nest[(# ^ 2 + x + I y)&, x + I y, 8]] < 2]]

Out[2]= [image]
```

---

Use ``ParametricPlot`` for plane parametric curves and regions:

```wl
In[1]:= {ParametricPlot[{Cos[θ], Sin[θ]}, {θ, 0, 2Pi}], ParametricPlot[{r Cos[θ], r Sin[θ]}, {θ, 0, 2Pi}, {r, 1 / 2, 1}]}

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

---

Use ``Integrate`` or ``NIntegrate`` to integrate over regions:

```wl
In[1]:= Integrate[x ^ 2Boole[1 < x ^ 2 - y ^ 2 < 4 && x y < 1 && x > 0 && y > 0], {x, -∞, ∞}, {y, -∞, ∞} ]

Out[1]= (1/16) (16 + 6 Sqrt[5] + 32 ArcCoth[2 + Sqrt[5]] - ArcSinh[2] - 8 Root[-1 - #1^2 + #1^4 & , 2, 0]^2)

In[2]:= NIntegrate[x ^ 2 Boole[1 < x ^ 2 - y ^ 2 < 4 && x y < 1 && x > 0 && y > 0], {x, -∞, ∞}, {y, -∞, ∞} ]

Out[2]= 1.42049
```

The integration region:

```wl
In[3]:= RegionPlot[1 < x ^ 2 - y ^ 2 < 4 && x y < 1 && x > 0 && y > 0, {x, 1, 5 / 2}, {y, 0, 1}]

Out[3]= [image]
```

---

Use ``Maximize``, ``NMaximize``, or ``FindMaximum`` to optimize over regions:

```wl
In[1]:= Maximize[{x ^ 2 + y, 1 ≤ x ^ 2 - y ^ 2 ≤ 4 && x y ≤ 1 && x ≥ 0 && y ≥ 0}, {x, y}]

Out[1]= {-Root[76 + 28*#1 + 18*#1^2 + 8*#1^3 + #1^4 & , 1, 0], {x -> Root[-1 - 4*#1^2 + #1^4 & , 2, 0], y -> -Root[-1 - 4*#1^2 + #1^4 & , 2, 0]^2 - Root[76 + 28*#1 + 18*#1^2 + 8*#1^3 + #1^4 & , 1, 0]}}

In[2]:= NMaximize[{x ^ 2 + y, 1 ≤ x ^ 2 - y ^ 2 ≤ 4 && x y ≤ 1 && x ≥ 0 && y ≥ 0}, {x, y}]

Out[2]= {4.72194, {x -> 2.05817, y -> 0.485868}}

In[3]:= FindMaximum[{x ^ 2 + y, 1 ≤ x ^ 2 - y ^ 2 ≤ 4 && x y ≤ 1 && x ≥ 0 && y ≥ 0}, {x, y}]

Out[3]= {4.72194, {x -> 2.05817, y -> 0.485868}}
```

---

Use ``Reduce`` to get a cylindrical representation of the region:

```wl
In[1]:= Reduce[1 ≤ x ^ 2 - y ^ 2 ≤ 4 && x y ≤ 1 && x ≥ 0 && y ≥ 0, {x, y}]

Out[1]= (x == 1 && y == 0) || (1 < x ≤ Root[-1 - #1^2 + #1^4 & , 2, 0] && 0 ≤ y ≤ Sqrt[-1 + x^2]) || (Root[-1 - #1^2 + #1^4 & , 2, 0] < x ≤ 2 && 0 ≤ y ≤ (1/x)) || (2 < x < Root[-1 - 4*#1^2 + #1^4 & , 2, 0] && Sqrt[-4 + x^2] ≤ y ≤ (1/x)) || (x == Root[-1 - 4*#1^2 + #1^4 & , 2, 0] && y == (1/x))
```

Use ``FindInstance`` to find specific samples in regions:

```wl
In[2]:= FindInstance[1 ≤ x ^ 2 - y ^ 2 ≤ 4 && x y ≤ 1 && x ≥ 0 && y ≥ 0, {x, y}]

Out[2]= {{x -> 2, y -> (1/4)}}
```

### Possible Issues (2)

``RegionPlot`` will only visualize two-dimensional regions:

```wl
In[1]:= RegionPlot[x ^ 2 + y ^ 2 == 1, {x, -1, 1}, {y, -1, 1}]

Out[1]= [image]
```

Use ``ContourPlot`` to visualize one-dimensional regions:

```wl
In[2]:= ContourPlot[x ^ 2 + y ^ 2 == 1, {x, -1, 1}, {y, -1, 1}]

Out[2]= [image]
```

---

Piecewise constant functions can have two-dimensional level sets:

```wl
In[1]:= RegionPlot[Mod[Floor[x ]Floor[y], 2] == 1, {x, 0, 10}, {y, 0, 10}, PlotPoints -> 40]

Out[1]= [image]
```

### Neat Examples (2)

Overlay colors on a transcendental region:

```wl
In[1]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, ColorFunction -> "Rainbow"]

Out[1]= [image]

In[2]:= RegionPlot[Sin[x]Sin[y] > 1 / 10, {x, -5, 5}, {y, -5, 5}, Mesh -> 30, MeshShading -> {{Black, Automatic}, {Automatic, Black}}, ColorFunction -> "DarkRainbow"]

Out[2]= [image]
```

---

Exclusive OR of five disks:

```wl
In[1]:= disk[m_, n_] := Block[{x0 = 1 / 2Cos[m 2Pi / n], y0 = 1 / 2Sin[m 2Pi / n]}, (x - x0) ^ 2 + (y - y0) ^ 2 < 1]

In[2]:= disk[n_] := Apply[Xor, Table[disk[m, n], {m, 0, n - 1}]]

In[3]:= RegionPlot[disk[5], {x, -2, 2}, {y, -2, 2}, FrameTicks -> None]

Out[3]= [image]
```

## See Also

* [`ContourPlot`](https://reference.wolfram.com/language/ref/ContourPlot.en.md)
* [`DensityPlot`](https://reference.wolfram.com/language/ref/DensityPlot.en.md)
* [`RegionPlot3D`](https://reference.wolfram.com/language/ref/RegionPlot3D.en.md)
* [`RegionFunction`](https://reference.wolfram.com/language/ref/RegionFunction.en.md)
* [`ParametricPlot`](https://reference.wolfram.com/language/ref/ParametricPlot.en.md)
* [`Reduce`](https://reference.wolfram.com/language/ref/Reduce.en.md)
* [`FindInstance`](https://reference.wolfram.com/language/ref/FindInstance.en.md)
* [`Boole`](https://reference.wolfram.com/language/ref/Boole.en.md)

## Related Guides

* [Function Visualization](https://reference.wolfram.com/language/guide/FunctionVisualization.en.md)
* [Precollege Education](https://reference.wolfram.com/language/guide/PrecollegeEducation.en.md)

## History

* [Introduced in 2007 (6.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn60.en.md) \| [Updated in 2010 (8.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn80.en.md) ▪ [2012 (9.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn90.en.md) ▪ [2014 (10.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn100.en.md) ▪ [2019 (12.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn120.en.md) ▪ [2021 (13.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn130.en.md) ▪ [2022 (13.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn131.en.md)