# Streamplot#

A stream plot, or streamline plot, is used to display 2D vector fields. This example shows a few features of the streamplot function:

• Varying the color along a streamline.

• Varying the density of streamlines.

• Varying the line width along a streamline.

• Controlling the starting points of streamlines.

• Streamlines skipping masked regions and NaN values.

• Unbroken streamlines even when exceeding the limit of lines within a single grid cell.

import numpy as np
import matplotlib.pyplot as plt

w = 3
Y, X = np.mgrid[-w:w:100j, -w:w:100j]
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U**2 + V**2)

fig, axs = plt.subplots(3, 2, figsize=(7, 9), height_ratios=[1, 1, 2])
axs = axs.flat

#  Varying density along a streamline
axs.streamplot(X, Y, U, V, density=[0.5, 1])
axs.set_title('Varying Density')

# Varying color along a streamline
strm = axs.streamplot(X, Y, U, V, color=U, linewidth=2, cmap='autumn')
fig.colorbar(strm.lines)
axs.set_title('Varying Color')

#  Varying line width along a streamline
lw = 5*speed / speed.max()
axs.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw)
axs.set_title('Varying Line Width')

# Controlling the starting points of the streamlines
seed_points = np.array([[-2, -1, 0, 1, 2, -1], [-2, -1,  0, 1, 2, 2]])

strm = axs.streamplot(X, Y, U, V, color=U, linewidth=2,
cmap='autumn', start_points=seed_points.T)
fig.colorbar(strm.lines)
axs.set_title('Controlling Starting Points')

# Displaying the starting points with blue symbols.
axs.plot(seed_points, seed_points, 'bo')
axs.set(xlim=(-w, w), ylim=(-w, w))

# Create a mask
mask = np.zeros(U.shape, dtype=bool)
mask[40:60, 40:60] = True
U[:20, :20] = np.nan

axs.streamplot(X, Y, U, V, color='r')

axs.imshow(~mask, extent=(-w, w, -w, w), alpha=0.5, cmap='gray',
aspect='auto')
axs.set_aspect('equal')

axs.streamplot(X, Y, U, V, broken_streamlines=False)
axs.set_title('Streamplot with unbroken streamlines')

plt.tight_layout()
plt.show() References

The use of the following functions, methods, classes and modules is shown in this example:

Total running time of the script: ( 0 minutes 4.076 seconds)

Gallery generated by Sphinx-Gallery