Quiver Plots in Python
How to make a quiver plot in Python. A quiver plot displays velocity vectors a arrows.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
Quiver plots can be made using a figure factory as detailed in this page.
Basic Quiver Plot¶
import plotly.figure_factory as ff
import numpy as np
x,y = np.meshgrid(np.arange(0, 2, .2), np.arange(0, 2, .2))
u = np.cos(x)*y
v = np.sin(x)*y
fig = ff.create_quiver(x, y, u, v)
fig.show()
Quiver Plot with Points¶
import plotly.figure_factory as ff
import plotly.graph_objects as go
import numpy as np
x,y = np.meshgrid(np.arange(-2, 2, .2),
np.arange(-2, 2, .25))
z = x*np.exp(-x**2 - y**2)
v, u = np.gradient(z, .2, .2)
# Create quiver figure
fig = ff.create_quiver(x, y, u, v,
scale=.25,
arrow_scale=.4,
name='quiver',
line_width=1)
# Add points to figure
fig.add_trace(go.Scatter(x=[-.7, .75], y=[0,0],
mode='markers',
marker_size=12,
name='points'))
fig.show()
See also¶
Cone plot for the 3D equivalent of quiver plots.
Reference¶
For more info on ff.create_quiver()
, see the full function reference
What About Dash?¶
Dash is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.
Learn about how to install Dash at https://dash.plot.ly/installation.
Everywhere in this page that you see fig.show()
, you can display the same figure in a Dash application by passing it to the figure
argument of the Graph
component from the built-in dash_core_components
package like this:
import plotly.graph_objects as go # or plotly.express as px
fig = go.Figure() # or any Plotly Express function e.g. px.bar(...)
# fig.add_trace( ... )
# fig.update_layout( ... )
from dash import Dash, dcc, html
app = Dash()
app.layout = html.Div([
dcc.Graph(figure=fig)
])
app.run(debug=True, use_reloader=False) # Turn off reloader if inside Jupyter
