plotly.figure_factory.create_quiver

plotly.figure_factory.create_quiver(x, y, u, v, scale=0.1, arrow_scale=0.3, angle=0.3490658503988659, scaleratio=None, **kwargs)

Returns data for a quiver plot.

Parameters
  • x ((list|ndarray)) – x coordinates of the arrow locations

  • y ((list|ndarray)) – y coordinates of the arrow locations

  • u ((list|ndarray)) – x components of the arrow vectors

  • v ((list|ndarray)) – y components of the arrow vectors

  • in [0,1]) scale ((float) – scales size of the arrows(ideally to avoid overlap). Default = .1

  • in [0,1]) arrow_scale ((float) – value multiplied to length of barb to get length of arrowhead. Default = .3

  • in radians) angle ((angle) – angle of arrowhead. Default = pi/9

  • float) scaleratio ((positive) – the ratio between the scale of the y-axis and the scale of the x-axis (scale_y / scale_x). Default = None, the scale ratio is not fixed.

  • kwargs – kwargs passed through plotly.graph_objects.Scatter for more information on valid kwargs call help(plotly.graph_objects.Scatter)

Rtype (dict)

returns a representation of quiver figure.

Example 1: Trivial Quiver

>>> from plotly.figure_factory import create_quiver
>>> import math
>>> # 1 Arrow from (0,0) to (1,1)
>>> fig = create_quiver(x=[0], y=[0], u=[1], v=[1], scale=1)
>>> fig.show()

Example 2: Quiver plot using meshgrid

>>> from plotly.figure_factory import create_quiver
>>> import numpy as np
>>> import math
>>> # Add data
>>> x,y = np.meshgrid(np.arange(0, 2, .2), np.arange(0, 2, .2))
>>> u = np.cos(x)*y
>>> v = np.sin(x)*y
>>> #Create quiver
>>> fig = create_quiver(x, y, u, v)
>>> fig.show()

Example 3: Styling the quiver plot

>>> from plotly.figure_factory import create_quiver
>>> import numpy as np
>>> import math
>>> # Add data
>>> x, y = np.meshgrid(np.arange(-np.pi, math.pi, .5),
...                    np.arange(-math.pi, math.pi, .5))
>>> u = np.cos(x)*y
>>> v = np.sin(x)*y
>>> # Create quiver
>>> fig = create_quiver(x, y, u, v, scale=.2, arrow_scale=.3, angle=math.pi/6,
...                     name='Wind Velocity', line=dict(width=1))
>>> # Add title to layout
>>> fig.update_layout(title='Quiver Plot') 
>>> fig.show()

Example 4: Forcing a fix scale ratio to maintain the arrow length

>>> from plotly.figure_factory import create_quiver
>>> import numpy as np
>>> # Add data
>>> x,y = np.meshgrid(np.arange(0.5, 3.5, .5), np.arange(0.5, 4.5, .5))
>>> u = x
>>> v = y
>>> angle = np.arctan(v / u)
>>> norm = 0.25
>>> u = norm * np.cos(angle)
>>> v = norm * np.sin(angle)
>>> # Create quiver with a fix scale ratio
>>> fig = create_quiver(x, y, u, v, scale = 1, scaleratio = 0.5)
>>> fig.show()