plots streamlines for the vector field given as an array of vectors.

Details and Options

  • ListStreamPlot3D is known as a 3D stream plot or 3D streamline plot.
  • ListStreamPlot3D plots streamlines that show the local direction of the vector field at each point, effectively solving the system of differential equations , , and then plotting .
  • By default, the direction of the vector field is indicated by the paths of the streamlines, and the magnitude is indicated by the color of the streamlines.
  • The array represents vectors in a volume, where by default, the point {k,j,i} is taken to have the vector arrayi,j,k with 1ir, 1js and 1kt for an array of dimension {r,s,t,3}.
  • ListStreamPlot3D by default shows enough streamlines to achieve a roughly uniform density throughout the plot and shows no background scalar field.
  • ListStreamPlot3D has the same options as Graphics3D, with the following additions and changes:
  • BoxRatios{1,1,1}ratio of height to width
    MethodAutomaticmethods to use for the plot
    PerformanceGoal$PerformanceGoalaspects of performance to try to optimize
    PlotLegendsNonelegends to include
    PlotRange{Full,Full,Full}range of x, y, z values to include
    PlotRangePaddingAutomatichow much to pad the range of values
    PlotTheme$PlotThemeoverall theme for the plot
    RegionBoundaryStyleAutomatichow to style plot region boundaries
    RegionFunctionTrue&determine what region to include
    StreamColorFunctionAutomatichow to color streamlines
    StreamColorFunctionScalingTruewhether to scale the argument to StreamColorFunction
    StreamMarkersAutomaticshape to use for streams
    StreamPointsAutomaticthe number or placement of streamlines
    StreamScaleNonehow to scale the sizes of streamlines
    StreamStyleAutomatichow to draw streamlines
  • The arguments supplied to functions in RegionFunction and ColorFunction are x,y,z,vx,vy,vz,Norm[{vx,vy,vz}].
  • Possible settings for StreamMarkers include:
  • "Arrow"lines with 2D arrowheads
    "Arrow3D"tubes with 3D arrowheads
    "Ribbon"flat ribbons
    "ArrowRibbon"ribbons with built-in arrowheads
  • With StreamScaleAutomatic and "arrow" stream markers, the streamlines are split into segments to make it easier to see the direction of the streamlines.
  • Possible settings for StreamScale are:
  • Automaticautomatically determine the streamline segments
    Fullshow the streamline as one piece
    Tiny,Small,Medium,Largenamed settings for how long the segments should be
    {len,npts,ratio}use explicit specification of streamline segmentation
  • The length len of streamline segments can be one of the following forms:
  • Automaticautomatically determine the length
    Noneshow the streamline as one piece
    Tiny,Small,Medium,Largeuse named segment lengths
    suse a length s that is a fraction of the graphic size
  • The number of points npts used to draw each segment can be Automatic or a specific number of points.
  • The aspect ratio ratio specifies how wide the cross section of a streamline is relative to the streamline segment.


open allclose all

Basic Examples  (4)

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

Include a legend showing the field strength:

Use tubes to represent the streamlines:

Specify the range of the data:

Scope  (11)

Sampling  (3)

Specify the density of seed points for the streamlines:

Specify specific seed points for the streamlines:

Plot streamlines over a specified region:

Presentation  (8)

Streamlines are drawn as lines by default:

Use 3D tubes for the streamlines:

Use flat ribbons:

Use "arrow" versions of the stream markers to indicate the direction of flow along the streamlines:

Arrows on tubes:

Ribbons are turned into arrows by tapering the heads and notching the tails of the streamlines:

Use a single color for the streamlines:

Use a named color gradient for the streamlines:

Include a legend for the field magnitude:

Use StreamScale to split streamlines into multiple shorter line segments:

Increase the number of points in each segment and increase the marker aspect ratio:

Use a theme:

Options  (43)

BoxRatios  (2)

By default, BoxRatios is set to Automatic:

Make the box twice as long in the x direction:

DataRange  (2)

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

Specify the data range for the domain:

PlotLegends  (3)

No legends are included by default:

Include a legend that indicates the vector field norm:

Specify the location of the legend:

PlotTheme  (1)

Specify a theme:

RegionBoundaryStyle  (4)

Show the region defined by a RegionFunction:

Use None to avoid showing the boundary:

Specify the color of the region boundary:

The boundaries of full rectangular regions are not shown:

RegionFunction  (4)

Plot streamlines in a restricted region:

Plot streams only where the field magnitude exceeds a given threshold:

Region functions depend, in general, on seven arguments:

Use RegionBoundaryStyleNone to avoid showing the boundary:

StreamColorFunction  (4)

Color the streams by their norm:

Use any named color gradient from ColorData:

Color the streamlines according to their x value:

Use StreamColorFunctionScalingFalse to get unscaled values:

StreamColorFunctionScaling  (2)

By default, scaled values are used:

Use StreamColorFunctionScalingFalse to get unscaled values:

StreamMarkers  (5)

By default, lines are used:

Draw the streamlines as tubes:

Draw them as flat ribbons:

"Arrow" stream markers automatically break the streamlines into shorter segments:

Use 3D arrowheads on tubes:

Use directional ribbons:

Make segmented markers continuous:

Break continuous markers into segments:

StreamPoints  (4)

Use automatically determined stream points to seed the curves:

Specify a maximum number of streamlines:

Give specific seed points for the streams:

Use coarsely spaced streamlines:

Use more finely spaced streamlines:

StreamScale  (9)

Segmented markers have default lengths, numbers of points and aspect ratios:

Modify the lengths of the segments:

Specify the number of sample points in each segment:

Modify the aspect ratios for the stream markers:

Make segmented markers continuous:

Break continuous markers into segments:

The aspect ratio controls the thickness of ribbons and tubes:

The aspect ratio controls the sizes of arrowheads:

Use three points in each segment:

StreamStyle  (3)

Change the appearance of the streamlines:

StreamColorFunction takes precedence over StreamStyle:

Use StreamColorFunctionNone to specify a streamline color with StreamStyle:

Applications  (2)

Numerically compute the electric field at a sampling of points under the influence of two thin wires of finite length with equal constant charge densities and opposite signs:

Visualize the electric field along with the positively charged (black) and the negatively charged (red) wires:

Visualize time-independent heat flow in a unit cube. Consider the steady-state heat equation for the temperature on the unit cube with on the face, insulated on the , , and faces, inside a centered disk of radius 0.3 on the face and outside the disk as shown in the following:

Use finite differences to discretize the heat equation :

Specify boundary conditions for on the and faces:

Specify the insulated boundary conditions for on the other faces:

Solve the system of equations:

Use finite differences to approximate the heat flux:

Generate seed points for the streamlines on the face:

Generate seed points for the streamlines in the red disk on the face:

Visualize the heat flow. The boundary temperatures are specified in the legend, and the blank faces of the cube are insulated:

Properties & Relations  (8)

Use StreamPlot3D and VectorPlot3D to visualize functions:

Plot vectors along surfaces with ListSliceVectorPlot3D:

Use ListVectorPlot3D to plot a 3D field as discrete vectors:

Use ListVectorPlot for plotting 2D vectors:

Use ListStreamPlot to plot with streamlines instead of vectors:

Use ListVectorDensityPlot to add a density plot of the scalar field:

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

Use GeoVectorPlot to plot vectors on a map:

Possible Issues  (2)

Tube StreamMarkers can be distorted by the BoxRatios:

Carefully adjusting the BoxRatios can eliminate the tube distortion:

The colors of "Arrow" and "Arrow3D" stream markers are determined at the tip of the arrow, which can result in inconsistent colors for long arrows:

Wolfram Research (2021), ListStreamPlot3D, Wolfram Language function,


Wolfram Research (2021), ListStreamPlot3D, Wolfram Language function,


@misc{reference.wolfram_2021_liststreamplot3d, author="Wolfram Research", title="{ListStreamPlot3D}", year="2021", howpublished="\url{}", note=[Accessed: 22-June-2021 ]}


@online{reference.wolfram_2021_liststreamplot3d, organization={Wolfram Research}, title={ListStreamPlot3D}, year={2021}, url={}, note=[Accessed: 22-June-2021 ]}


Wolfram Language. 2021. "ListStreamPlot3D." Wolfram Language & System Documentation Center. Wolfram Research.


Wolfram Language. (2021). ListStreamPlot3D. Wolfram Language & System Documentation Center. Retrieved from