# StreamDensityPlot

StreamDensityPlot[{{vx,vy},r},{x,xmin,xmax},{y,ymin,ymax}]

generates a stream plot of the vector field {vx,vy} as a function of x and y, superimposed on a background density plot of the scalar field r.

StreamDensityPlot[{vx,vy},{x,xmin,xmax},{y,ymin,ymax}]

takes the scalar field to be the norm of the vector field.

StreamDensityPlot[{{vx,vy},{wx,wy},,r},{x,xmin,xmax},{y,ymin,ymax}]

generates plots of several vector fields.

StreamDensityPlot[,{x,y}reg]

takes the variables {x,y} to be in the geometric region reg.

# Details and Options

• StreamDensityPlot plots streamlines that show the local direction of the vector field at every point.
• StreamDensityPlot generates a stream plot of the vector field {vx,vy}, superimposed on a background density plot of the scalar field r.
• StreamDensityPlot plots streamlines defined by and where is an interpolated function of the vector data and is an initial stream point. The streamline is the curve passing through point , and whose tangents correspond to the vector field at each point.
• The streamlines are drawn over a density plot of the scalar field , whose default value is the magnitude of the vector field.
• The streamlines are colored by default according to the magnitude of the vector field and have an arrow in the direction of increasing value of .
• StreamDensityPlot by default shows enough streamlines to achieve a roughly uniform density throughout the plot.
• StreamDensityPlot does not show streamlines at any positions for which the vi etc. do not evaluate to real numbers.
• StreamDensityPlot treats the variables x and y as local, effectively using Block.
• StreamDensityPlot has attribute HoldAll, and evaluates the vi etc. only after assigning specific numerical values to x and y.
• In some cases it may be more efficient to use Evaluate to evaluate the vi etc. symbolically before specific numerical values are assigned to x and y.
• StreamDensityPlot has the same options as Graphics, with the following additions and changes: [List of all options]
•  AspectRatio 1 ratio of height to width BoundaryStyle None how to draw RegionFunction boundaries BoxRatios Automatic effective 3D box ratios for simulated lighting ColorFunction Automatic how to color background densities ColorFunctionScaling True whether to scale arguments to ColorFunction EvaluationMonitor None expression to evaluate at every function evaluation Frame True whether to draw a frame around the plot FrameTicks Automatic frame tick marks LightingAngle None effective angle for simulated lighting MaxRecursion Automatic the maximum number of recursive subdivisions allowed for the scalar field Mesh None how many mesh lines to draw in the background MeshFunctions {#5&} how to determine the placement of mesh lines MeshShading None how to shade regions between mesh lines MeshStyle Automatic the style of mesh lines Method Automatic methods to use for the plot PerformanceGoal \$PerformanceGoal aspects of performance to try to optimize PlotLegends None legends to include 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 ScalingFunctions None how to scale individual coordinates StreamColorFunction Automatic how to color streamlines StreamColorFunctionScaling True whether to scale the argument to StreamColorFunction StreamMarkers Automatic shape to use for streams StreamPoints Automatic determine number, placement, and closeness of streamlines StreamScale Automatic determine sizes and segmenting of individual streamlines StreamStyle Automatic how to draw streamlines WorkingPrecision MachinePrecision precision to use in internal computations
• The arguments supplied to functions in MeshFunctions, RegionFunction, ColorFunction, and StreamColorFunction are x, y, vx, vy, r.
• The default setting MeshFunctions->{#5&} draws mesh lines for the scalar field r.
• Possible settings for ScalingFunctions are:
•  {sx,sy} scale x and y axes
• Common built-in scaling functions s include:
•  "Log" log scale with automatic tick labeling "Log10" base-10 log scale with powers of 10 for ticks "SignedLog" log-like scale that includes 0 and negative numbers "Reverse" reverse the coordinate direction "Infinite" 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 BoundaryStyle None how to draw RegionFunction boundaries BoxRatios Automatic effective 3D box ratios for simulated lighting ColorFunction Automatic how to color background densities ColorFunctionScaling True whether to scale arguments to ColorFunction ContentSelectable Automatic whether to allow contents to be selected CoordinatesToolOptions Automatic detailed behavior of the coordinates tool Epilog {} primitives rendered after the main plot EvaluationMonitor None expression to evaluate at every function evaluation 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 LightingAngle None effective angle for simulated lighting MaxRecursion Automatic the maximum number of recursive subdivisions allowed for the scalar field Mesh None how many mesh lines to draw in the background MeshFunctions {#5&} how to determine the placement of mesh lines MeshShading None how to shade regions between mesh lines MeshStyle Automatic the style of mesh lines 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 PlotLegends None legends to include 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 RegionFunction True& determine what region to include RotateLabel True whether to rotate y labels on the frame ScalingFunctions None how to scale individual coordinates StreamColorFunction Automatic how to color streamlines StreamColorFunctionScaling True whether to scale the argument to StreamColorFunction StreamMarkers Automatic shape to use for streams StreamPoints Automatic determine number, placement, and closeness of streamlines StreamScale Automatic determine sizes and segmenting of individual streamlines StreamStyle Automatic how to draw streamlines Ticks Automatic axes ticks TicksStyle {} style specifications for axes ticks WorkingPrecision MachinePrecision precision to use in internal computations

# Examples

open allclose all

## Basic Examples(4)

Plot the streamlines for a vector field with background based on field magnitude:

Add a legend for the scalar field:

Plot the streamlines for a vector field with background based on a logarithm of field magnitude:

Plot the streamlines for two fields with a background based on the first field's magnitude:

## Scope(24)

### Sampling(11)

Visualize streamlines for a vector field with the background based on :

Plot streamlines for two vector fields with background color based on the first field's magnitude:

Use Evaluate to evaluate the vector field symbolically before numeric assignment:

Plot a vector field with streamlines placed with specified densities:

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

Use both automatic and explicit seeding with styles for explicitly seeded streamlines:

Plot streamlines over a specified region:

Use a specific number of mesh lines:

Specify mesh lines:

The domain may be specified by a region:

The domain may be specified by a MeshRegion:

### Presentation(13)

Specify different dashings and arrowheads by settings to StreamScale:

Color the background scalar field with a color function:

Change the color function for the streamlines to reflect the field magnitude:

Apply a variety of streamline styles:

Use different themes for the plot:

Use a named appearance to draw the streamlines:

Style the streamlines as well:

Specify mesh lines with different styles:

Specify global mesh line styles:

Apply a variety of styles to region boundaries:

Include a legend for the scalar field:

Include a legend for the streamlines:

Reverse the y scale so it increases toward the bottom:

## Options(85)

### Background(1)

Use colored backgrounds:

### BoundaryStyle(2)

By default, region boundaries have no style:

Change the style of the boundary:

### ColorFunction(6)

Color the field magnitude using Hue:

Color using Hue based on :

Use any named color gradient from ColorData:

Use ColorData for predefined color gradients:

Specify a color function that blends two colors by the coordinate:

Use to get unscaled values:

### ColorFunctionScaling(4)

By default, scaled values are used:

Use to get unscaled values:

Use unscaled coordinates in the direction and scaled coordinates in the direction:

Explicitly specify the scaling for each color function argument:

### EvaluationMonitor(2)

Show where the vector field function is sampled:

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

### MaxRecursion(1)

Refine the plot where it changes quickly:

### Mesh(5)

By default, no mesh lines are displayed:

Show the final sampling mesh:

Use a specific number of mesh lines:

Specify mesh lines:

Use different styles for different mesh lines:

### MeshFunctions(3)

By default, mesh lines correspond to the magnitude of the field:

Use the value as the mesh function:

Use mesh lines corresponding to fixed distances from the origin:

Use None to remove regions:

Styles are used cyclically:

Use indexed colors from ColorData cyclically:

### MeshStyle(1)

Apply a variety of styles to the mesh lines:

### NormalsFunction(2)

Do not use normals in shading:

Randomly vary the effective normals:

### PerformanceGoal(2)

Generate a higher-quality plot:

Emphasize performance, possibly at the cost of quality:

### PlotLegends(4)

No legends are included, by default:

Include a legend for the scalar field:

Include a legend for the streamlines:

Control the placement of the legend:

### PlotRange(7)

The full plot range is used by default:

Specify an explicit limit for both and ranges:

Specify an explicit range:

Specify an explicit minimum range:

Specify an explicit range:

Specify an explicit maximum range:

Specify different and ranges:

### PlotTheme(2)

Use a monochrome theme:

Change the stream style:

### RegionFunction(3)

Plot streamlines only over certain quadrants:

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

Use any logical combination of conditions:

### StreamColorFunction(6)

Color streamlines according to the norm of the vector field:

Color streamlines according to a different scalar field:

Use any named color gradient from ColorData:

Use ColorData for predefined color gradients:

Specify a color function that blends two colors by the coordinate:

Use to get unscaled values:

### StreamColorFunctionScaling(4)

By default, scaled values are used:

Use to get unscaled values:

Use unscaled coordinates in the direction and scaled coordinates in the direction:

Explicitly specify the scaling for each color function argument:

### StreamMarkers(7)

Streamlines are drawn as arrows by default:

Use a named appearance to draw the streamlines:

Use different markers for different vector fields:

Named arrow styles:

Named dot styles:

Named pointer styles:

Named dart styles:

### StreamPoints(6)

Specify a maximum number of streamlines:

Use symbolic names to specify the number of streamlines:

Use both automatic and explicit seeding with styles for explicitly seeded streamlines:

Specify the minimum distance between streamlines:

Specify the minimum distance between streamlines at the start and end of a streamline:

Control the maximum length that each streamline can have:

### StreamScale(9)

Create full streamlines without segmentation:

Use curves for streamlines:

Use symbolic names to control the lengths of streamlines:

Specify segment lengths:

Specify an explicit dashing pattern for streamlines:

Specify the number of points rendered on each streamline segment:

Specify absolute aspect ratios relative to the longest line segment:

Specify relative aspect ratios relative to each line segment:

Scale the length of the arrows by the coordinate:

### StreamStyle(5)

StreamColorFunction has precedence over colors in StreamStyle:

Set StreamColorFunctionNone to specify colors with StreamStyle:

Apply a variety of styles to the streamlines:

Set the style for multiple vector fields:

## Applications(16)

Visualize a vector field with the background based on the field's divergence:

Visualize a vector field with the background based on the magnitude of the field's curl:

Show streamlines superimposed on the Hamiltonian for a 2D Hamiltonian system:

Check how closely NDSolve conserves the invariant:

Characterize linear planar systems interactively:

Use a stream plot as a background for an interactive differential equation demo:

Combine several examples into a tabbed view:

Mouse over the tabs to get a description of the field:

Quadratic system with two limit cycles:

Homoclinic loops:

Unfolding a double zero eigenvalue with odd symmetry:

Explore a parameterized vector field using Manipulate:

Vibrating membranes:

Unfolding a function and its gradient field:

Generate a list of rasterized plots for animation:

Animating a list of rasters instead of the original vector graphics may reduce memory usage:

Create an animation that shifts the streamline colors in the direction of the vector norms:

Explore various streamline styles and scales with several examples:

Generate icons to graphically represent field choices:

Click the field icons to switch field plots:

Generate a list of stream plots of varying :

Stack 2D stream plots in 3D:

## Properties & Relations(12)

Use ListStreamDensityPlot for plotting data:

Use StreamPlot for plotting only streamlines without a plot of the scalar field:

Use VectorDensityPlot to plot functions with vectors instead of streamlines:

Use ListVectorDensityPlot to plot data with vectors instead of streamlines:

Use VectorPlot to plot with vectors instead of streamlines without a plot of the scalar field:

Use VectorPlot3D to visualize 3D vector fields:

Use SliceVectorPlot3D to visualize 3D vector fields on a surface:

StreamDensityPlot samples more points where it needs to:

Scalar fields can be plotted by themselves with DensityPlot:

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

Plot complex functions as a vector field:

GeoStreamPlot plots streamlines on a map of the Earth:

## Properties & Relations(12)

Use VectorDensityPlot to plot with vectors instead of streamlines:

Use StreamPlot or VectorPlot for plotting functions without a density plot of the scalar field:

Use ListStreamDensityPlot to plot with data:

Use ListStreamPlot for plotting data without a density plot:

Use ListVectorPlot to plot vectors instead of streamlines:

Use ListVectorDensityPlot to add the density plot to the vectors:

Use VectorDisplacementPlot to visualize the deformation of a region associated with a displacement vector field:

Use ListVectorDisplacementPlot to visualize the same deformation based on data:

Use VectorDisplacementPlot3D to visualize the deformation of a 3D region associated with a displacement vector field:

Use ListVectorDisplacementPlot3D to visualize the same deformation based on data:

Use VectorPlot3D or StreamPlot3D to visualize a 3D vector field:

Use ListVectorPlot3D or ListStreamPlot3D to visualize the same 3D vector field based data:

Use SliceVectorPlot3D to visualize a 3D vector field data along a surface:

Use ListSliceVectorPlot3D to visualize the same 3D vector field data based on data:

StreamDensityPlot samples more points where it needs to:

Scalar fields can be plotted by themselves with ListDensityPlot:

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

Use ComplexVectorPlot or ComplexStreamPlot to visualize a complex function of a complex variable as a vector field or with streamlines:

Use GeoVectorPlot to plot vectors on a map:

Use GeoStreamPlot to plot streamlines instead of vectors:

## Neat Examples(3)

Plot streamlines with the divergence as the background density:

Plot streamlines with the absolute value of the vorticity as the background density:

Constrain the stream plot to a variety of regions:

Wolfram Research (2008), StreamDensityPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/StreamDensityPlot.html (updated 2022).

#### Text

Wolfram Research (2008), StreamDensityPlot, Wolfram Language function, https://reference.wolfram.com/language/ref/StreamDensityPlot.html (updated 2022).

#### CMS

Wolfram Language. 2008. "StreamDensityPlot." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/StreamDensityPlot.html.

#### APA

Wolfram Language. (2008). StreamDensityPlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StreamDensityPlot.html

#### BibTeX

@misc{reference.wolfram_2024_streamdensityplot, author="Wolfram Research", title="{StreamDensityPlot}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/StreamDensityPlot.html}", note=[Accessed: 17-September-2024 ]}

#### BibLaTeX

@online{reference.wolfram_2024_streamdensityplot, organization={Wolfram Research}, title={StreamDensityPlot}, year={2022}, url={https://reference.wolfram.com/language/ref/StreamDensityPlot.html}, note=[Accessed: 17-September-2024 ]}