# Quiver Plots using Plotly in Python

A Plotly is a Python library that is used to design graphs, especially interactive graphs. It can plot various graphs and charts like histogram, barplot, boxplot, spreadplot, and many more. It is mainly used in data analysis as well as financial analysis. plotly is an interactive visualization library.

## Quiver Plots

A quiver plot displays velocity vectors as arrows with the components (u, v) at the points (x, y). The quiver(x, y, u, v) plots vectors as arrows at the coordinates which are specified in each corresponding pair of elements in x and y. The main advantage of using a quiver plot is it can represent a wider range of magnitudes without having the arrows shrink to dots or overlap one another.

Syntax: create_quiver(x, y, u, v, scale=0.1, arrow_scale=0.3, angle=0.3490658503988659, scaleratio=None)

Parameters:

x: x coordinates of the arrow locations

y: y coordinates of the arrow locations

u: x components of the arrow vectors

v: y components of the arrow vectors

arrow_scale: value multiplied to length of barb to get length of arrowhead. Default = .3

angle: angle of arrowhead. Default = pi/9

Example:

## Python3

 `import` `plotly.figure_factory as ff ` `import` `numpy as np ` ` `  `x ``=` `np.linspace(``-``2``, ``2``, ``60``) ` `y ``=` `np.linspace(``-``1``, ``1``, ``60``) ` `Y, X ``=` `np.meshgrid(x, y) ` `u ``=` `1` `-` `X``*``*``2` `+` `Y ` `v ``=` `-``1` `+` `X ``-` `Y``*``*``2` ` `  `# Create quiver plot ` `fig ``=` `ff.create_quiver(x, y, u, v, arrow_scale``=``.``1``) ` ` `  `fig.show()`

Output: ## Plotting Points with Quiver Plot

A quiver plot can be shown with the points with the help of the add_trace() method of graph_objects class. The scatter plot is added in such a way that shows the origin of the quivers.

Example:

## Python3

 `import` `plotly.figure_factory as ff ` `import` `plotly.graph_objects as go ` `import` `numpy as np ` ` `  `x ``=` `np.linspace(``-``2``, ``2``, ``60``) ` `y ``=` `np.linspace(``-``1``, ``1``, ``60``) ` `Y, X ``=` `np.meshgrid(x, y) ` `u ``=` `np.cos(X)``*``Y ` `v ``=` `np.sin(X)``*``Y ` ` `  `# Create quiver plot ` `fig ``=` `ff.create_quiver(x, y, u, v, arrow_scale``=``.``1``) ` ` `  `# Adding scatter as the origin ` `fig.add_trace(go.Scatter(x ``=` `[``0``], y ``=` `[``0``], ` `                        ``mode ``=` `'markers'``, ` `                         ``marker_size ``=` `15` `                        ``)) ` ` `  `fig.show()`

Output: Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.

My Personal Notes arrow_drop_up If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.