Matplotlib - Stream Plot
Stream plot is basically a type of 2D plot which shows fluid flows and 2D field gradients. The matplotlib.pyplot.streamplot() function is used to make stream plot. The syntax for using this function is given below:
Syntax
matplotlib.pyplot.streamplot(x, y, u, v, density=1)
Parameters
x, y |
Optional. 1D/2D arrays. Specify evenly spaced strictly increasing arrays to make a grid. |
u, v |
Required. Specify x and y velocities. The number of rows and columns must match the length of y and x, respectively. |
density |
Optional. Specify float or (float, float). Controls the closeness of streamlines. |
Example: stream plot
In the example below, the streamplot() function is used to create a stream plot of a given dataset.
import matplotlib.pyplot as plt import numpy as np # Creating data set 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, ax = plt.subplots() ax.set_title("Stream plot") #drawing stream plot ax.streamplot(X, Y, U, V, density = 1) plt.show()
The output of the above code will be:
Example: varying density of streamlines
The density of streamlines can be controlled by using density parameter. Consider the example below:
import matplotlib.pyplot as plt import numpy as np # Creating data set 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, ax = plt.subplots() ax.set_title("Varying density of streamlines") #drawing stream plot ax.streamplot(X, Y, U, V, density=[0.5, 1]) plt.show()
The output of the above code will be:
Example: varying color along streamlines
The varying color of streamlines can be achieved by using color and cmap parameters. Consider the example below:
import matplotlib.pyplot as plt import numpy as np # Creating data set 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, ax = plt.subplots() ax.set_title("Varying color along streamlines") #drawing stream plot strm = ax.streamplot(X, Y, U, V, color = U, cmap ='autumn') fig.colorbar(strm.lines) plt.show()
The output of the above code will be: