---
title: "ListVectorPlot"
language: "en"
type: "Symbol"
summary: "ListVectorPlot[varr] generates a vector plot from an array varr of vectors. ListVectorPlot[{{{x1, y1}, {vx1, vy1}}, ...}] generates a vector plot from vectors {vxi, vyi} given at specified points {xi, yi}. ListVectorPlot[{data1, data2, ...}] plots data for several vector fields."
keywords: 
- list vector plot
- plot vector field
- visualize vector field
- arrow plot
- phase portrait
- quiver
- quiver plot
canonical_url: "https://reference.wolfram.com/language/ref/ListVectorPlot.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Vector Visualization"
    link: "https://reference.wolfram.com/language/guide/VectorVisualization.en.md"
  - 
    title: "Data Visualization"
    link: "https://reference.wolfram.com/language/guide/DataVisualization.en.md"
  - 
    title: "Vector Analysis"
    link: "https://reference.wolfram.com/language/guide/VectorAnalysis.en.md"
related_functions: 
  - 
    title: "ListStreamPlot"
    link: "https://reference.wolfram.com/language/ref/ListStreamPlot.en.md"
  - 
    title: "ListVectorPlot3D"
    link: "https://reference.wolfram.com/language/ref/ListVectorPlot3D.en.md"
  - 
    title: "ListStreamPlot3D"
    link: "https://reference.wolfram.com/language/ref/ListStreamPlot3D.en.md"
  - 
    title: "ListStreamDensityPlot"
    link: "https://reference.wolfram.com/language/ref/ListStreamDensityPlot.en.md"
  - 
    title: "VectorPlot"
    link: "https://reference.wolfram.com/language/ref/VectorPlot.en.md"
  - 
    title: "ListSliceVectorPlot3D"
    link: "https://reference.wolfram.com/language/ref/ListSliceVectorPlot3D.en.md"
  - 
    title: "GeoVectorPlot"
    link: "https://reference.wolfram.com/language/ref/GeoVectorPlot.en.md"
  - 
    title: "ComplexVectorPlot"
    link: "https://reference.wolfram.com/language/ref/ComplexVectorPlot.en.md"
---
# ListVectorPlot

ListVectorPlot[varr] generates a vector plot from an array varr of vectors.

ListVectorPlot[{{{x1, y1}, {vx1, vy1}}, …}] generates a vector plot from vectors {vxi, vyi} given at specified points {xi, yi}.

ListVectorPlot[{data1, data2, …}] plots data for several vector fields.

## Details and Options

* ``ListVectorPlot`` is also known as field plot and direction plot.

* ``ListVectorPlot`` displays a vector field $\left\{v_x,v_y\right\}$ by drawing arrows normalized to a fixed length. The arrows are colored by default according to the magnitude $s=\left\| \left\{v_x,v_y\right\}\right\|$ of the vector field.

* The plot visualizes the set $\left\{\left.\left\{v_x,v_y\right\}\right|\{x,y\}\in \text{reg}\right\}$, where $\text{reg}$ is the region for which $\left\{v_x,v_y\right\}$ is defined.

[image]

* ``ListVectorPlot`` interpolates the data into field functions $\left\{v_x(x,y),v_y(x,y)\right\}$.

* For regular data, the vector field $\left\{v_x,v_y\right\}$ has value ``varr[[i, j]]`` at $\{x,y\}=\{i,j\}$.

* For irregular data, the vector field $\left\{v_x,v_y\right\}$ has value ``{vxi, vyi}`` at $\{x,y\}=\left\{\text{\textit{$x$}}_{\text{\textit{$i$}}},\text{\textit{$y$}}_{\text{\textit{$i$}}}\right\}$.

[image]

* ``ListVectorPlot[varr]`` arranges successive rows of ``varr`` up the page and successive columns across.

* ``ListVectorPlot`` by default interpolates the data given and plots vectors for the vector field at a specified grid of positions.

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

|                             |                   |                                                      |
| --------------------------- | ----------------- | ---------------------------------------------------- |
| AspectRatio                 | 1                 | ratio of height to width                             |
| ClippingStyle               | Automatic         | how to display arrows outside the vector range       |
| DataRange                   | Automatic         | the range of x and y values to assume for data       |
| Frame                       | True              | whether to draw a frame around the plot              |
| FrameTicks                  | Automatic         | frame tick marks                                     |
| Method                      | Automatic         | methods to use for the plot                          |
| PerformanceGoal             | \$PerformanceGoal | aspects of performance to try to optimize            |
| PlotLayout                  | Automatic         | how to position fields                               |
| PlotLegends                 | None              | legends for vector fields                            |
| PlotRange                   | {Full, Full}      | range of x, y values to include                      |
| PlotRangePadding            | Automatic         | how much to pad the range of values                  |
| PlotTheme                   | \$PlotTheme       | overall theme for the plot                           |
| RegionFunction              | (True&)           | determine what region to include                     |
| RegionBoundaryStyle         | Automatic         | how to style plot region boundaries                  |
| RegionFillingStyle          | Automatic         | how to style plot region interiors                   |
| ScalingFunctions            | None              | how to scale individual coordinates                  |
| VectorAspectRatio           | Automatic         | width to length ratio for arrows                     |
| VectorColorFunction         | Automatic         | how to color arrows                                  |
| VectorColorFunctionScaling  | True              | whether to scale the argument to VectorColorFunction |
| VectorMarkers               | Automatic         | shape to use for arrows                              |
| VectorPoints                | Automatic         | the number or placement of arrows                    |
| VectorRange                 | Automatic         | range of vector lengths to show                      |
| VectorScaling               | None              | how to scale the sizes of arrows                     |
| VectorSizes                 | Automatic         | sizes of displayed arrows                            |
| VectorStyle                 | Automatic         | how to draw vectors                                  |

* The individual arrows are scaled to fit inside bounding circles around each point.

[image]

* With the setting ``VectorPoints -> All``, ``ListVectorPlot`` instead shows vectors associated with the particular vector field data points given.

* ``VectorScaling`` scales the magnitudes of the vectors into the range of arrow sizes ``smin`` to ``smax`` given by ``VectorSizes``.

* ``VectorScaling -> Automatic`` will scale the arrow lengths depending on the vector magnitudes:

[image]

* Possible settings for ``PlotLayout`` that show a single group of vectors in multiple plot panels include:

|                                       |                                                     |
| ------------------------------------- | --------------------------------------------------- |
| "Column"                              | use separate group of vectors in a column of panels |
| "Row"                                 | use separate group of vectors in a row of panels    |
| {"Column", k}, {"Row", k}             | use k columns or rows                               |
| {"Column", UpTo[k]}, {"Row", UpTo[k]} | use at most k columns or rows                       |

[image]

* The arrow markers given by ``VectorMarkers`` are drawn inside a box whose width and length are in the proportion $w/l$ specified by ``VectorAspectRatio``.

* Common markers include:

|         |           |                                             |
| ------- | --------- | ------------------------------------------- |
| [image] | "Segment" | line segment aligned in the field direction |
| [image] | "PinDart" | pin dart aligned along the field            |
| [image] | "Dart"    | dart-shaped marker                          |
| [image] | "Drop"    | drop-shaped marker                          |

* ``VectorColorFunction -> None`` will draw the arrows with the style specified by ``VectorStyle``.

* The arguments supplied to functions in ``RegionFunction`` and ``VectorColorFunction`` are ``x``, ``y``, ``vx``, ``vy``, ``Norm[{vx, vy}]``.

* Possible settings for ``ScalingFunctions`` are:

{Subscript[``s``, ``x``], Subscript[``s``, ``y``]}	scale ``x`` and ``y`` axes

* 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                                      |

### 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                                          |
| ClippingStyle              | Automatic         | how to display arrows outside the vector range                                     |
| ContentSelectable          | Automatic         | whether to allow contents to be selected                                           |
| CoordinatesToolOptions     | Automatic         | detailed behavior of the coordinates tool                                          |
| DataRange                  | Automatic         | the range of x and y values to assume for data                                     |
| Epilog                     | {}                | primitives rendered after the main plot                                            |
| 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 tick marks                                                                   |
| FrameTicksStyle            | {}                | style specifications for frame ticks                                               |
| GridLines                  | None              | grid lines to draw                                                                 |
| GridLinesStyle             | {}                | style specifications for grid lines                                                |
| ImageMargins               | 0.                | the margins to leave around the graphic                                            |
| ImagePadding               | All               | what extra padding to allow for labels etc.                                        |
| ImageSize                  | Automatic         | the absolute size at which to render the graphic                                   |
| LabelStyle                 | {}                | style specifications for labels                                                    |
| Method                     | Automatic         | methods to use for the plot                                                        |
| PerformanceGoal            | \$PerformanceGoal | aspects of performance to try to optimize                                          |
| PlotLabel                  | None              | an overall label for the plot                                                      |
| PlotLayout                 | Automatic         | how to position fields                                                             |
| PlotLegends                | None              | legends for vector fields                                                          |
| PlotRange                  | {Full, Full}      | range of x, y values to include                                                    |
| PlotRangeClipping          | False             | whether to clip at the plot range                                                  |
| PlotRangePadding           | Automatic         | how much to pad the range of values                                                |
| PlotRegion                 | Automatic         | the final display region to be filled                                              |
| PlotTheme                  | \$PlotTheme       | overall theme for the plot                                                         |
| PreserveImageOptions       | Automatic         | whether to preserve image options when displaying new versions of the same graphic |
| Prolog                     | {}                | primitives rendered before the main plot                                           |
| RegionBoundaryStyle        | Automatic         | how to style plot region boundaries                                                |
| RegionFillingStyle         | Automatic         | how to style plot region interiors                                                 |
| RegionFunction             | (True&)           | determine what region to include                                                   |
| 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                                                |
| VectorAspectRatio          | Automatic         | width to length ratio for arrows                                                   |
| VectorColorFunction        | Automatic         | how to color arrows                                                                |
| VectorColorFunctionScaling | True              | whether to scale the argument to VectorColorFunction                               |
| VectorMarkers              | Automatic         | shape to use for arrows                                                            |
| VectorPoints               | Automatic         | the number or placement of arrows                                                  |
| VectorRange                | Automatic         | range of vector lengths to show                                                    |
| VectorScaling              | None              | how to scale the sizes of arrows                                                   |
| VectorSizes                | Automatic         | sizes of displayed arrows                                                          |
| VectorStyle                | Automatic         | how to draw vectors                                                                |

---

## Examples (133)

### Basic Examples (4)

Plot the vector field interpolated from a specified set of vectors:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}]]

Out[1]= [image]
```

---

Include a legend showing the vector magnitudes:

```wl
In[1]:= data = Table[{{x, y}, {y, -x}}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, PlotLegends -> Automatic]

Out[2]= [image]
```

---

Use a drop-shaped marker to represent the vectors:

```wl
In[1]:= ListVectorPlot[Table[{x + y, y - x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorMarkers -> "Drop"]

Out[1]= [image]
```

---

Use a multi-panel layout to show multiple vector fields at the same time:

```wl
In[1]:= ListVectorPlot[{IconizedObject[«data1»], IconizedObject[«data2»]}, PlotLayout -> "Row"]

Out[1]= [image]
```

### Scope (16)

#### Sampling (6)

Plot vectors for a regular collection of vectors, and give a data range for the domain:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}]

Out[1]= [image]
```

---

Plot an irregular collection of vectors:

```wl
In[1]:= data = Table[{{x, y} = RandomReal[{-3, 3}, {2}], {y, -x}}, {200}];

In[2]:= ListVectorPlot[data]

Out[2]= [image]
```

Show all of the specified field vectors:

```wl
In[3]:= ListVectorPlot[data, VectorPoints -> All]

Out[3]= [image]
```

Explicitly set the number of vectors in each direction:

```wl
In[4]:= ListVectorPlot[data, VectorPoints -> {4, 7}]

Out[4]= [image]
```

---

Specify a list of points for showing field vectors:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, VectorSizes -> Large, VectorPoints -> RandomReal[{-3, 3}, {300, 2}]]

Out[1]= [image]
```

---

Plot a vector field with vectors placed with specified densities:

```wl
In[1]:= data = Table[{y, -x}, {x, -2, 2, 0.2}, {y, -2, 2, 0.2}];

In[2]:= Table[ListVectorPlot[data, PlotLabel -> p, VectorPoints -> p], {p, {5, Coarse, Automatic, Fine}}]

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

---

Plot the vectors that go through a set of seed points:

```wl
In[1]:=
points = {{-1, -1}, {-1, 1}, {0, 0}, {1, -1}, {1, 1}};
data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -2, 2, 0.2}, {y, -2, 2, 0.2}];

In[2]:= ListVectorPlot[data, DataRange -> {{-2, 2}, {-2, 2}}, VectorPoints -> points, Epilog -> {Red, PointSize[Medium], Point[points]}]

Out[2]= [image]
```

---

Plot vectors over a specified region:

```wl
In[1]:= ListVectorPlot[Table[{{x, y} = RandomReal[{-3, 3}, {2}], {y, -x}}, {200}], RegionFunction -> Function[{x, y, vx, vy, n}, x y < 0]]

Out[1]= [image]
```

#### Presentation (10)

Plot a vector field with arrows scaled according to their magnitudes:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorScaling -> Automatic]

Out[1]= [image]
```

---

Use a single color for the arrows:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorColorFunction -> None]

Out[1]= [image]
```

---

Plot a vector field with arrows of specified size:

```wl
In[1]:= data = Table[{x, -y}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorColorFunction -> "BrightBands", PlotLabel -> s, VectorSizes -> s], {s, {Small, Medium, Large, 0.5}}]

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

---

Plot a vector field with arrows colored according to the magnitude of the field:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorColorFunction -> "Rainbow"]

Out[1]= [image]
```

---

Set the style for multiple vector fields:

```wl
In[1]:=
data1 = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];
data2 = Table[{-(1 + x - y ^ 2), -1 - x ^ 2 + y}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[{data1, data2}, VectorPoints -> 8, VectorMarkers -> {"Drop", "Dart"}]

Out[2]= [image]
```

---

Apply vector style:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorPoints -> 8, VectorStyle -> Arrowheads[{{0.03, Automatic, Graphics[Circle[]]}}]]

Out[2]= [image]
```

---

Use a named appearance to draw the vectors:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorMarkers -> "Drop"]

Out[2]= [image]
```

Style the vectors as well:

```wl
In[3]:= ListVectorPlot[data, VectorMarkers -> "Drop", VectorColorFunction -> None, VectorStyle -> Red]

Out[3]= [image]
```

---

Use a theme with more detail:

```wl
In[1]:=
data1 = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];
data2 = Table[{-(1 + x - y ^ 2), -1 - x ^ 2 + y}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[{data1, data2}, PlotTheme -> "Detailed"]

Out[2]= [image]
```

Combine the theme with a specific style for the vectors:

```wl
In[3]:= ListVectorPlot[{data1, data2}, PlotTheme -> "Detailed", VectorMarkers -> "Dart"]

Out[3]= [image]
```

---

Show multiple vector fields in separate panels:

```wl
In[1]:= ListVectorPlot[{IconizedObject[«field1»], IconizedObject[«field1»]}, PlotLayout -> "Row"]

Out[1]= [image]
```

Use a column instead of a row:

```wl
In[2]:= ListVectorPlot[{IconizedObject[«field1»], IconizedObject[«field1»]}, PlotLayout -> "Column"]

Out[2]= [image]
```

---

Use a log scale in the ``y`` direction:

```wl
In[1]:= ListVectorPlot[Table[{y, x + y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], ScalingFunctions -> {None, "Log"}]

Out[1]= [image]
```

### Options (95)

#### AspectRatio (3)

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

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»]]

Out[1]= [image]
```

---

Use numerical value to specify the height to width ratio:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], AspectRatio -> 1 / GoldenRatio]

Out[1]= [image]
```

---

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

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], AspectRatio -> Automatic]

Out[1]= [image]
```

#### Axes (4)

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

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»]]

Out[1]= [image]
```

---

Use axes instead of a frame:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

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

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesOrigin -> {1, 1}]

Out[1]= [image]
```

---

Turn each axis on individually:

```wl
In[1]:= {ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> {True, False}], ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> {False, True}]}

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

#### AxesLabel (3)

No axes labels are drawn by default:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Place a label on the $y$ axis:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesLabel -> y]

Out[1]= [image]
```

---

Specify axes labels:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesLabel -> {x, y}]

Out[1]= [image]
```

#### AxesOrigin (2)

The position of the axes is determined automatically:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True]

Out[1]= [image]
```

---

Specify an explicit origin for the axes:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesOrigin -> {1, 1}]

Out[1]= [image]
```

#### AxesStyle (4)

Change the style for the axes:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesStyle -> Red]

Out[1]= [image]
```

---

Specify the style of each axis:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesStyle -> {Red, Blue}]

Out[1]= [image]
```

---

Use different styles for the ticks and the axes:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesStyle -> Green, TicksStyle -> Black]

Out[1]= [image]
```

---

Use different styles for the labels and the axes:

```wl
In[1]:= ListVectorPlot[IconizedObject[«field»], Frame -> False, Axes -> True, AxesStyle -> Green, LabelStyle -> Black]

Out[1]= [image]
```

#### Background (1)

Use colored backgrounds:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], Background -> LightGray]

Out[1]= [image]
```

#### DataRange (1)

By default, the data range is taken to be the index range of the data array:

```wl
In[1]:=
data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.3}];
Dimensions[data]

Out[1]= {31, 21, 2}

In[2]:= ListVectorPlot[data]

Out[2]= [image]
```

Specify the data range for the domain:

```wl
In[3]:= ListVectorPlot[data, DataRange -> {{-3, 3}, {-3, 3}}]

Out[3]= [image]
```

#### EvaluationMonitor (1)

Count the number of times the vector field function is evaluated:

```wl
In[1]:= Block[{k = 0}, ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], EvaluationMonitor :> k++];k]

Out[1]= 250
```

#### ImageSize (5)

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

```wl
In[1]:= {ListVectorPlot[IconizedObject[«field»], ImageSize -> Tiny], ListVectorPlot[IconizedObject[«field»], ImageSize -> Small]}

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

---

Specify the width of the plot:

```wl
In[1]:= {ListVectorPlot[IconizedObject[«field»], ImageSize -> 150], ListVectorPlot[IconizedObject[«field»], AspectRatio -> 1.5, ImageSize -> 150]}

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

Specify the height of the plot:

```wl
In[2]:= {ListVectorPlot[IconizedObject[«field»], ImageSize -> {Automatic, 150}], ListVectorPlot[IconizedObject[«field»], AspectRatio -> 2, ImageSize -> {Automatic, 150}]}

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

---

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

```wl
In[1]:= {ListVectorPlot[IconizedObject[«field»], ImageSize -> UpTo[200]], ListVectorPlot[IconizedObject[«field»], 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]:= ListVectorPlot[IconizedObject[«field»], ImageSize -> {300, 200}, Background -> LightBlue]

Out[1]= [image]
```

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

```wl
In[2]:= ListVectorPlot[IconizedObject[«field»], AspectRatio -> Full, ImageSize -> {300, 200}, Background -> LightBlue]

Out[2]= [image]
```

---

Use maximum sizes for the width and height:

```wl
In[1]:= {ListVectorPlot[IconizedObject[«field»], ImageSize -> {UpTo[150], UpTo[100]}], ListVectorPlot[IconizedObject[«field»], AspectRatio -> 2, ImageSize -> {UpTo[150], UpTo[100]}]}

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

#### PerformanceGoal (2)

Generate a higher-quality plot:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], PerformanceGoal -> "Quality"]

Out[1]= [image]
```

---

Emphasize performance, possibly at the cost of quality:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], PerformanceGoal -> "Speed"]

Out[1]= [image]
```

#### PlotLayout (3)

Place each field in a separate panel using shared axes:

```wl
In[1]:= ListVectorPlot[{IconizedObject[«x + y»], IconizedObject[«-x + y»]}, ImageSize -> Medium, PlotLayout -> "Column"]

Out[1]= [image]
```

Use a row instead of a column:

```wl
In[2]:= ListVectorPlot[{IconizedObject[«x + y»], IconizedObject[«-x + y»]}, ImageSize -> Medium, PlotLayout -> "Row"]

Out[2]= [image]
```

---

Use multiple columns or rows:

```wl
In[1]:= ListVectorPlot[{IconizedObject[«x + y»], IconizedObject[«-x»], IconizedObject[«y»], IconizedObject[«-x + y»]}, ImageSize -> Medium, PlotLayout -> {"Column", 2}]

Out[1]= [image]
```

---

Prefer full columns or rows:

```wl
In[1]:= ListVectorPlot[{IconizedObject[«x + y»], IconizedObject[«-x»], IconizedObject[«y»], IconizedObject[«x»], IconizedObject[«-x + y»], IconizedObject[«0»]}, ImageSize -> Medium, PlotLayout -> {"Column", UpTo[4]}]

Out[1]= [image]

In[2]:= ListVectorPlot[{IconizedObject[«x + y»], IconizedObject[«-x»], IconizedObject[«y»], IconizedObject[«x»], IconizedObject[«-x + y»], IconizedObject[«0»]}, ImageSize -> Medium, PlotLayout -> {"Column", 4}]

Out[2]= [image]
```

#### PlotLegends (2)

No legends are included by default:

```wl
In[1]:= ListVectorPlot[Table[{y, Exp[-x]}, {x, -3, 3, 0.3}, {y, -3, 3, 0.3}]]

Out[1]= [image]
```

---

Include a legend to show the color range of vector norms:

```wl
In[1]:= ListVectorPlot[Table[{y, Exp[-x]}, {x, -3, 3, 0.3}, {y, -3, 3, 0.3}], PlotLegends -> Automatic]

Out[1]= [image]
```

Add legends with placeholder text:

```wl
In[2]:=
data1 = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];
data2 = Table[{x, y}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[3]:= ListVectorPlot[{data1, data2}, VectorColorFunction -> None, PlotLegends -> Automatic]

Out[3]= [image]
```

Specify labels for the legend:

```wl
In[4]:= ListVectorPlot[{data1, data2}, PlotLegends -> {"one", "two"}, VectorColorFunction -> None]

Out[4]= [image]
```

Place the legend below the plot:

```wl
In[5]:= ListVectorPlot[{data1, data2}, VectorColorFunction -> None, PlotLegends -> Placed[{"one", "two"}, Below]]

Out[5]= [image]
```

Control the appearance of the legend:

```wl
In[6]:= ListVectorPlot[{data1, data2}, VectorColorFunction -> None, PlotLegends -> SwatchLegend[{"one", "two"}, LegendMarkerSize -> {40, 10}]]

Out[6]= [image]
```

#### PlotRange (7)

The full plot range is used by default:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], PlotRange -> Full]

Out[1]= [image]
```

---

Specify an explicit limit for both $x$ and $y$ ranges:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> 2]

Out[1]= [image]
```

---

Specify an explicit $x$ range:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> {{-1, 2}, Automatic}]

Out[1]= [image]
```

---

Specify an explicit $x$ minimum range:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> {{0, Full}, Automatic}]

Out[1]= [image]
```

---

Specify an explicit $y$ range:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> {Full, {0, 2}}]

Out[1]= [image]
```

---

Specify an explicit $y$ maximum range:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> {Full, {Full, 5}}]

Out[1]= [image]
```

---

Specify different $x$ and $y$ ranges:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], DataRange -> {{-3, 3}, {-3, 3}}, PlotRange -> {{-2, 1.5}, {-1, 2}}]

Out[1]= [image]
```

#### PlotTheme (1)

Use a theme with gridlines, dark background and bold colors:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, PlotTheme -> "Marketing"]

Out[2]= [image]
```

Change the ``VectorColorFunction`` :

```wl
In[3]:= ListVectorPlot[data, PlotTheme -> "Marketing", VectorColorFunction -> Hue]

Out[3]= [image]
```

#### RegionBoundaryStyle (5)

Show the region defined by a region function:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x + y > 0], DataRange -> {{-1, 1}, {-1, 1}}]

Out[1]= [image]
```

---

The boundaries of full rectangular regions are not shown:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}]]

Out[1]= [image]
```

---

Use ``None`` to not show the boundary:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionBoundaryStyle -> None]

Out[1]= [image]
```

Omit the interior filling as well:

```wl
In[2]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionBoundaryStyle -> None, RegionFillingStyle -> None]

Out[2]= [image]
```

---

Specify a style for the boundary:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionBoundaryStyle -> Red]

Out[1]= [image]
```

---

Specify a style for full rectangular regions:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionBoundaryStyle -> Red]

Out[1]= [image]
```

#### RegionFillingStyle (5)

Show the region defined by a region function:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x + y > 0], DataRange -> {{-1, 1}, {-1, 1}}]

Out[1]= [image]
```

---

The interior of full rectangular regions are not shown:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}]]

Out[1]= [image]
```

---

Use ``None`` to not show the interior filling:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionFillingStyle -> None]

Out[1]= [image]
```

Omit the boundary curve as well:

```wl
In[2]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionBoundaryStyle -> None, RegionFillingStyle -> None]

Out[2]= [image]
```

---

Specify a style for the interior filling:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFunction -> Function[{x, y}, x^2 + y^2 < 1], DataRange -> {{-1, 1}, {-1, 1}}, RegionFillingStyle -> Gray]

Out[1]= [image]
```

---

Specify a style for full rectangular region:

```wl
In[1]:= ListVectorPlot[Table[{x, y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], RegionFillingStyle -> Gray]

Out[1]= [image]
```

#### RegionFunction (3)

Plot vectors only over certain quadrants:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, DataRange -> {{-3, 3}, {-3, 3}}, RegionFunction -> Function[{x, y, vx, vy, n}, x y < 0]]

Out[2]= [image]
```

---

Plot vectors only over regions where the field magnitude is above a given threshold:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, DataRange -> {{-3, 3}, {-3, 3}}, RegionFunction -> Function[{x, y, vx, vy, n}, n > 6]]

Out[2]= [image]
```

---

Use any logical combination of conditions:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, DataRange -> {{-3, 3}, {-3, 3}}, RegionFunction -> Function[{x, y, vx, vy, n}, 4 < n < 9 || 0 < n < 2]]

Out[2]= [image]
```

#### ScalingFunctions (3)

By default, linear scales are used:

```wl
In[1]:= ListVectorPlot[Table[{y, x - y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}]]

Out[1]= [image]
```

---

Use a log scale in the ``y`` direction:

```wl
In[1]:= ListVectorPlot[Table[{y, x - y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], ScalingFunctions -> {None, "Log"}]

Out[1]= [image]
```

---

Reverse the direction of the ``y`` direction:

```wl
In[1]:= ListVectorPlot[Table[{y, x - y}, {x, -1, 1, 0.1}, {y, -1, 1, 0.1}], ScalingFunctions -> {None, "Reverse"}]

Out[1]= [image]
```

#### VectorColorFunction (4)

Color the vectors according to their norms:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> Hue]

Out[2]= [image]
```

---

Use any named color gradient from ``ColorData``:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> "Rainbow"]

Out[2]= [image]
```

---

Color the vectors according to their $x$ values:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> Function[{x, y, vx, vy, n}, ColorData["ThermometerColors"][x]]]

Out[2]= [image]
```

---

Use ``VectorColorFunctionScaling -> False`` to get unscaled values:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> Function[{x, y, vx, vy, n}, ColorData[22][Round[n]]], VectorColorFunctionScaling -> False]

Out[2]= [image]
```

#### VectorColorFunctionScaling (4)

By default, scaled values are used:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorColorFunction -> Hue]

Out[1]= [image]
```

---

Use ``VectorColorFunctionScaling -> False`` to get unscaled values:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> Function[{x, y, vx, vy, n}, ColorData[22][Round[n]]], VectorColorFunctionScaling -> False]

Out[2]= [image]
```

---

Use unscaled coordinates in the $x$ direction and scaled coordinates in the $y$ direction:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:=
ListVectorPlot[data, VectorColorFunction -> Function[{x, y, vx, vy, n}, Hue[x, y, 1]], VectorColorFunctionScaling -> {False, True}, 
	DataRange -> {{0, 1}, {0, 1}}]

Out[2]= [image]
```

---

Explicitly specify the scaling for each color function argument:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorColorFunction -> Function[{x, y, vx, vy, n}, Hue[n, y, 1]], VectorColorFunctionScaling -> {True, True, True, True, False}]

Out[2]= [image]
```

#### VectorMarkers (9)

Vectors are drawn as arrows by default:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data]

Out[2]= [image]
```

---

Use a named appearance to draw the vectors:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, VectorMarkers -> "Drop"]

Out[2]= [image]
```

---

Use different markers for different vector fields:

```wl
In[1]:=
data1 = Table[{{x, y}, {y, -x}}, {x, -5, 5}, {y, -5, 5}];
data2 = Table[{{x, y}, {x, y}}, {x, -5, 5}, {y, -5, 5}];

In[2]:= ListVectorPlot[{data1, data2}, VectorMarkers -> {"Drop", "Dart"}]

Out[2]= [image]
```

---

By default, markers are centered on vector points:

```wl
In[1]:= data = Table[{{x, y}, {y, -x}}, {x, -5, 5}, {y, -5, 5}];

In[2]:= pts = Tuples[Range[-5, 5], 2];

In[3]:= ListVectorPlot[data, VectorMarkers -> "Arrow", VectorPoints -> pts, Epilog -> {Red, Point[pts]}]

Out[3]= [image]
```

Start the vectors at the points:

```wl
In[4]:= ListVectorPlot[data, VectorMarkers -> Placed["Arrow", "Start"], VectorPoints -> pts, Epilog -> {Red, Point[pts]}]

Out[4]= [image]
```

End the vectors at the points:

```wl
In[5]:= ListVectorPlot[data, VectorMarkers -> Placed["Arrow", "End"], VectorPoints -> pts, Epilog -> {Red, Point[pts]}]

Out[5]= [image]
```

---

Arrow vector markers:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorPoints -> 8, PlotLabel -> s, VectorMarkers -> s], {s, {"Arrow", "DotArrow", "ArrowArrow"}}]

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

---

Circular vector markers:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorPoints -> 10, PlotLabel -> s, VectorStyle -> s], {s, {"Circle", "Disk", "CircleArrow"}}]

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

---

Dart vector markers:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorPoints -> 8, PlotLabel -> s, VectorStyle -> s], {s, {"Dart", "PinDart", "DoubleDart"}}]

Out[2]= [image]
```

---

Vector markers with dots:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorPoints -> 8, PlotLabel -> s, VectorStyle -> s], {s, {"BarDot", "Dot", "DotArrow", "DotDot"}}]

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

---

Pointer vector markers:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, VectorPoints -> 8, PlotLabel -> s, VectorStyle -> s], {s, {"Drop", "Pointer", "BackwardPointer", "Toothpick"}}]

Out[2]= [image]
```

#### VectorPoints (8)

Use automatically determined vector points:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}], VectorPoints -> Automatic]

Out[1]= [image]
```

---

Show all of the specified field vectors:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}], VectorPoints -> All]

Out[1]= [image]
```

---

Use symbolic names to specify the set of field vectors:

```wl
In[1]:= data = Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, PlotLabel -> k, VectorPoints -> k], {k, {Fine, Coarse}}]

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

---

Create a regular grid of field vectors with the same number of arrows for $x$ and $y$ :

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorPoints -> 5]

Out[1]= [image]
```

---

Create a regular grid of field vectors with a different number of arrows for $x$ and $y$ :

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorPoints -> {4, 7}]

Out[1]= [image]
```

---

Specify a list of points for showing field vectors:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[data, DataRange -> {{-3, 3}, {-3, 3}}, VectorPoints -> RandomReal[{-3, 3}, {300, 2}], VectorSizes -> Large]

Out[2]= [image]
```

---

Use a different number of field vectors on a hexagonal grid:

```wl
In[1]:= data = Table[{y ^ 2, x ^ 2 - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= Table[ListVectorPlot[data, PlotLabel -> n, VectorPoints -> n, VectorSizes -> Medium], {n, 5, 20, 5}]

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

---

The location for vectors is given in the middle of the drawn vector:

```wl
In[1]:=
data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -2, 2, 0.2}, {y, -2, 2, 0.2}];
points = {{-1, -1}, {-1, 1}, {0, 0}, {1, -1}, {1, 1}};

In[2]:= ListVectorPlot[data, DataRange -> {{-2, 2}, {-2, 2}}, VectorPoints -> points, VectorSizes -> 1, Epilog -> {Red, PointSize[Medium], Point[points]}]

Out[2]= [image]
```

#### VectorRange (4)

The clipping of vectors with very small or very large magnitudes is done automatically:

```wl
In[1]:= ListVectorPlot[Table[({x, y}/Norm[{x, y}]^3), {x, -3, 3, 0.35}, {y, -3, 3, 0.35}], VectorRange -> Automatic]

Out[1]= [image]
```

---

Specify the range of vector norms:

```wl
In[1]:= ListVectorPlot[Table[({x, y}/Norm[{x, y}]^3), {x, -3, 3, 0.35}, {y, -3, 3, 0.35}], VectorRange -> {0.1, 2}]

Out[1]= [image]
```

---

Suppress the clipped vectors:

```wl
In[1]:= ListVectorPlot[Table[({x, y}/Norm[{x, y}]^3), {x, -3, 3, 0.35}, {y, -3, 3, 0.35}], VectorRange -> {0.1, 2}, ClippingStyle -> None]

Out[1]= [image]
```

---

Show all the vectors:

```wl
In[1]:= ListVectorPlot[Table[({x, y}/Norm[{x, y}]^3), {x, -3, 3, 0.35}, {y, -3, 3, 0.35}], VectorRange -> All]

Out[1]= [image]
```

#### VectorScaling (2)

Use automatically determined vector scales:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.5}, {y, -3, 3, 0.5}], VectorScaling -> Automatic]

Out[1]= [image]
```

---

With the vector scaling function set to ``None``, all vectors have the same size:

```wl
In[1]:= ListVectorPlot[Table[{y, -x}, {x, -3, 3, 0.5}, {y, -3, 3, 0.5}], VectorScaling -> None]

Out[1]= [image]
```

#### VectorSizes (2)

The size of the displayed vector is determined automatically:

```wl
In[1]:= ListVectorPlot[Table[{y - x(1 - x^2 - y^2)^2, -x - y(1 - x^2 - y^2)^2}, {x, -3, 3, 0.1}, {y, -3, 3, 0.1}], VectorScaling -> Automatic, VectorSizes -> Automatic]

Out[1]= [image]
```

---

Specify the range of arrow lengths:

```wl
In[1]:= ListVectorPlot[Table[{y - x(1 - x^2 - y^2)^2, -x - y(1 - x^2 - y^2)^2}, {x, -3, 3, 0.1}, {y, -3, 3, 0.1}], VectorScaling -> Automatic, VectorSizes -> {0, 1}]

Out[1]= [image]
```

#### VectorStyle (7)

``VectorColorFunction`` has precedence over ``VectorStyle`` for colors:

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorStyle -> Red]

Out[1]= [image]
```

---

Use ``VectorColorFunction`` -> ``None`` to style the displayed vectors with ``VectorStyle`` :

```wl
In[1]:= ListVectorPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}], VectorStyle -> Red, VectorColorFunction -> None]

Out[1]= [image]
```

---

Set the style for multiple vector fields:

```wl
In[1]:=
data1 = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];
data2 = Table[{-(1 + x - y ^ 2), -1 - x ^ 2 + y}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorPlot[{data1, data2}, VectorPoints -> 8, VectorStyle -> {Red, Blue}, VectorColorFunction -> None]

Out[2]= [image]
```

---

Use ``Arrowheads`` to specify an explicit style of the arrowheads:

```wl
In[1]:= data = Table[{x, y}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}];

In[2]:= ListVectorPlot[data, VectorPoints -> 8, PlotRange -> All, VectorStyle -> Arrowheads[{{0.03, Automatic, Graphics[Circle[]]}}]]

Out[2]= [image]
```

---

Specify both arrow tail and head:

```wl
In[1]:= data = Table[{x, y}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}];

In[2]:= ListVectorPlot[data, VectorPoints -> 8, PlotRange -> All, VectorStyle -> Arrowheads[{{0.03, Automatic, Graphics[Rectangle[{-0.5, -0.5}, {0.5, 0.5}]]}, {0.03, Automatic, Graphics[Circle[]]}}]]

Out[2]= [image]
```

---

Graphics primitives without ``Arrowheads`` are scaled based on the ``VectorSizes`` :

```wl
In[1]:= data = Table[{x, y}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}];

In[2]:= ListVectorPlot[data, VectorPoints -> 8, PlotRange -> All, VectorStyle -> Graphics[Circle[]], VectorSizes -> {0.5, 0.9}]

Out[2]= [image]
```

---

Change the scaling using the ``VectorSizes`` option:

```wl
In[1]:= data = Table[{x, y}, {x, -1, 1, 0.2}, {y, -1, 1, 0.2}];

In[2]:= ListVectorPlot[data, VectorPoints -> 8, PlotRange -> All, VectorStyle -> Graphics[Circle[]], VectorSizes -> {0.2, 0.4}]

Out[2]= [image]
```

### Applications (3)

Hamiltonian vector field of $\sin (x y)$ :

```wl
In[1]:= data = Table[Evaluate@{D[Sin[x y], {y}], -D[Sin[x y], {x}]}, {x, 0, 2Pi}, {y, 0, 2Pi}];

In[2]:= ListVectorPlot[data]

Out[2]= [image]
```

---

Visualize the first horizontal and vertical Gaussian derivatives of an image:

```wl
In[1]:= image = ColorConvert[Rasterize[π, ImageSize -> 40, RasterSize -> 40], "Grayscale"]

Out[1]= [image]

In[2]:= {dx, dy} = Table[ImageAdjust@GaussianFilter[image, {6, 2}, δ], {δ, {{1, 0}, {0, 1}}}]

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

Combine the vertical and horizontal Gaussian derivatives:

```wl
In[3]:= data = Reverse /@ Transpose[2ImageData /@ {dx, dy} - 1, {3, 2, 1}];

In[4]:= ListVectorPlot[data, VectorPoints -> 30]

Out[4]= [image]
```

---

Characterize linear planar systems interactively:

```wl
In[1]:=
Manipulate[Row[{Text["m"] == MatrixForm[m], ListVectorPlot[Table[Evaluate[m.{x, y}], {x, -1, 1}, {y, -1, 1}], VectorSizes -> 1, VectorColorFunction -> "Rainbow", ImageSize -> Small]}], {{m, (|   |   |
| - | - |
| 1 | 0 |
| 0 | 2 |)}, {(|   |   |
| - | - |
| 1 | 0 |
| 0 | 2 |) -> "Nodal source", (|   |   |
| - | - |
| 1 | 1 |
| 0 | 1 |) -> "Degenerate source", (|    |   |
| -- | - |
| 0  | 1 |
| -1 | 1 |) -> "Spiral source", (|    |    |
| -- | -- |
| -1 | 0  |
| 0  | -2 |) -> "Nodal sink", (|    |    |
| -- | -- |
| -1 | 1  |
| 0  | -1 |) -> "Degenerate sink", (|    |    |
| -- | -- |
| 0  | 1  |
| -1 | -1 |) -> "Spiral sink", (|    |   |
| -- | - |
| 0  | 1 |
| -1 | 0 |) -> "Center", (|   |    |
| - | -- |
| 1 | 0  |
| 0 | -2 |) -> "Saddle"}}]

Out[1]= DynamicModule[«8»]
```

### Properties & Relations (15)

Use ``VectorPlot`` to plot functions:

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

Out[1]= [image]
```

Use ``StreamPlot`` to plot streams instead of vectors:

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

Out[2]= [image]
```

---

Use ``ListStreamPlot`` to plot data with streamlines instead of vectors :

```wl
In[1]:= ListStreamPlot[Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}]]

Out[1]= [image]
```

---

Use ``VectorDensityPlot`` to add a density plot of a scalar field:

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

Out[1]= [image]
```

Use ``StreamDensityPlot`` to use streams instead of vectors:

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

Out[2]= [image]
```

---

Use ``ListVectorDensityPlot`` for plotting data with a density plot of the scalar field:

```wl
In[1]:= data = Table[{{x, y} = RandomReal[{-1.5, 1.5}, {2}], {{y, x - x ^ 3}, Abs[x + y]}}, {300}];

In[2]:= ListVectorDensityPlot[data]

Out[2]= [image]
```

Use ``ListStreamDensityPlot`` to plot streams instead of vectors:

```wl
In[3]:= ListStreamDensityPlot[data]

Out[3]= [image]
```

---

Use ``ListLineIntegralConvolutionPlot`` to plot the line integral convolution of vector field data:

```wl
In[1]:= data = Table[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, -3, 3, .2}, {y, -3, 3, .2}];

In[2]:= ListLineIntegralConvolutionPlot[data]

Out[2]= [image]
```

---

Use ``VectorDisplacementPlot`` to visualize the effect of a displacement vector field on a specified region:

```wl
In[1]:= VectorDisplacementPlot[{-1 - x ^ 2 + y, 1 + x - y ^ 2}, {x, y}∈Annulus[], VectorPoints -> Automatic]

Out[1]= [image]
```

---

Use ``ListVectorDisplacementPlot`` to visualize the effect of displacement field data on a region:

```wl
In[1]:= data = Table[{{x, y}, {x + y, 1 + x - y}}, {x, -3, 3, 0.2}, {y, -3, 3, 0.2}];

In[2]:= ListVectorDisplacementPlot[data, Polygon[{{3, 3}, {0, 1}, {-3, 3}, {-3, -3}, {0, -1}, {3, -3}}], VectorPoints -> Automatic]

Out[2]= [image]
```

---

Use ``VectorPlot3D`` and ``StreamPlot3D`` to visualize 3D vector fields:

```wl
In[1]:= {VectorPlot3D[{z, x, x + y}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}], StreamPlot3D[{z, x, x + y}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}]}

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

---

Use ``ListVectorPlot3D`` and ``ListStreamPlot3D`` to visualize 3D vector field data:

```wl
In[1]:= data = Table[{z, -x, y}, {x, -1, 1, .1}, {y, -1, 1, .1}, {z, -1, 1, .1}];

In[2]:= {ListVectorPlot3D[data], ListStreamPlot3D[data]}

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

---

Plot vectors on surfaces with ``SliceVectorPlot3D`` :

```wl
In[1]:= SliceVectorPlot3D[{-y, x, z}, Sphere[], {x, -1, 1}, {y, -1, 1}, {z, -1, 1}]

Out[1]= [image]
```

---

Plot data vectors on surfaces with ``ListSliceVectorPlot3D`` :

```wl
In[1]:= ListSliceVectorPlot3D[Table[{-y, x, z}, {x, -1, 1, .1}, {y, -1, 1, .1}, {z, -1, 1, .1}], Sphere[], DataRange -> {{-1, 1}, {-1, 1}, {-1, 1}}]

Out[1]= [image]
```

---

Plot complex functions as a vector field with ``ComplexVectorPlot`` :

```wl
In[1]:= ComplexVectorPlot[z + 1 / z, {z, 2}]

Out[1]= [image]
```

Plot streams instead of vectors with ``ComplexStreamPlot`` :

```wl
In[2]:= ComplexStreamPlot[z^2 + 1, {z, 2}]

Out[2]= [image]
```

---

Use ``VectorDisplacementPlot3D`` to visualize the effect of a displacement vector field on a specified 3D region:

```wl
In[1]:= VectorDisplacementPlot3D[{-y, x, x + z}, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, VectorPoints -> "Boundary"]

Out[1]= [image]
```

---

Use ``ListVectorDisplacementPlot3D`` to visualize the effect of a 3D displacement vector field based on data:

```wl
In[1]:= data = Table[{{x, y, z}, {-y, x, x + z}}, {x, -2, 2}, {y, -2, 2}, {z, -2, 2}];

In[2]:= ListVectorDisplacementPlot3D[data, VectorPoints -> "Boundary"]

Out[2]= [image]
```

---

Use ``GeoVectorPlot`` to plot vectors on a map:

```wl
In[1]:=
GeoVectorPlot[GeoVector[GeoPosition[CompressedData["«6488»"]] -> 
  {{0.5706379232485146, Quantity[354.01686143622794, "AngularDegrees"]}, 
   {0.48751317221734114, Quantity[327.18610724051325, "AngularDegrees"]}, 
   {0.42407845478418604, Quantity[199.859344783 ... 904, "AngularDegrees"]}, 
   {0.9366099079317551, Quantity[357.70482317743733, "AngularDegrees"]}, 
   {0.8256817194791912, Quantity[242.07227508889662, "AngularDegrees"]}, 
   {0.2661401145642981, Quantity[152.90003252279325, "AngularDegrees"]}}]]

Out[1]= [image]
```

Use ``GeoStreamPlot`` to use streams instead of vectors:

```wl
In[2]:=
GeoStreamPlot[GeoVector[GeoPosition[CompressedData["«6488»"]] -> 
  {{0.5706379232485146, Quantity[354.01686143622794, "AngularDegrees"]}, 
   {0.48751317221734114, Quantity[327.18610724051325, "AngularDegrees"]}, 
   {0.42407845478418604, Quantity[199.859344783 ... 904, "AngularDegrees"]}, 
   {0.9366099079317551, Quantity[357.70482317743733, "AngularDegrees"]}, 
   {0.8256817194791912, Quantity[242.07227508889662, "AngularDegrees"]}, 
   {0.2661401145642981, Quantity[152.90003252279325, "AngularDegrees"]}}]]

Out[2]= [image]
```

## See Also

* [`ListStreamPlot`](https://reference.wolfram.com/language/ref/ListStreamPlot.en.md)
* [`ListVectorPlot3D`](https://reference.wolfram.com/language/ref/ListVectorPlot3D.en.md)
* [`ListStreamPlot3D`](https://reference.wolfram.com/language/ref/ListStreamPlot3D.en.md)
* [`ListStreamDensityPlot`](https://reference.wolfram.com/language/ref/ListStreamDensityPlot.en.md)
* [`VectorPlot`](https://reference.wolfram.com/language/ref/VectorPlot.en.md)
* [`ListSliceVectorPlot3D`](https://reference.wolfram.com/language/ref/ListSliceVectorPlot3D.en.md)
* [`GeoVectorPlot`](https://reference.wolfram.com/language/ref/GeoVectorPlot.en.md)
* [`ComplexVectorPlot`](https://reference.wolfram.com/language/ref/ComplexVectorPlot.en.md)

## Related Guides

* [Vector Visualization](https://reference.wolfram.com/language/guide/VectorVisualization.en.md)
* [Data Visualization](https://reference.wolfram.com/language/guide/DataVisualization.en.md)
* [Vector Analysis](https://reference.wolfram.com/language/guide/VectorAnalysis.en.md)

## History

* [Introduced in 2008 (7.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn70.en.md) \| [Updated in 2012 (9.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn90.en.md) ▪ [2014 (10.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn100.en.md) ▪ [2018 (11.3)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn113.en.md) ▪ [2020 (12.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn121.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)