{"id":4983,"date":"2020-11-11T12:06:20","date_gmt":"2020-11-11T06:36:20","guid":{"rendered":"http:\/\/www.pythonpool.com\/?p=4983"},"modified":"2026-07-13T12:28:30","modified_gmt":"2026-07-13T06:58:30","slug":"matplotlib-quiver","status":"publish","type":"post","link":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/","title":{"rendered":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color"},"content":{"rendered":"<p><strong>Quick answer:<\/strong> Use Matplotlib quiver() to draw arrows from x and y locations with U and V vector components. Set scale, angles, units, and color deliberately so the field communicates direction and magnitude instead of only filling the plot with arrows.<\/p>\n<figure class=\"pythonpool-article-visual\"><img src=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver.png\" alt=\"Python Pool infographic showing Matplotlib quiver vector components scale angles and color\" width=\"1536\" height=\"1024\" loading=\"lazy\" decoding=\"async\"><figcaption>A useful quiver plot keeps vector components, arrow scale, coordinate angles, and the key understandable together.<\/figcaption><\/figure>\n<p>A Matplotlib quiver plot draws arrows to show direction and magnitude across points. It is useful for vector fields, gradients, wind maps, velocity diagrams, force directions, image flow, and any grid-based chart where an arrow communicates more than a dot or line. Quiver plots are particularly useful for vector fields; <a href=\"https:\/\/www.pythonpool.com\/pywake-library\/\">PyWake Library for Wind Farm Modeling<\/a> applies wind vectors to wake and wind-farm modeling.<\/p>\n<p>The central call is <code>ax.quiver(X, Y, U, V)<\/code>. The <code>X<\/code> and <code>Y<\/code> arrays give arrow positions. The <code>U<\/code> and <code>V<\/code> arrays give horizontal and vertical arrow components. Those arrays usually share the same shape, often created with <code>np.meshgrid()<\/code>.<\/p>\n<p>The official Matplotlib references for <a href=\"https:\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.axes.Axes.quiver.html\">Axes.quiver()<\/a>, <a href=\"https:\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.pyplot.quiver.html\">pyplot.quiver()<\/a>, and <a href=\"https:\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.pyplot.quiverkey.html\">quiverkey()<\/a> explain the plotting API. NumPy&#8217;s <a href=\"https:\/\/numpy.org\/doc\/stable\/reference\/generated\/numpy.meshgrid.html\">meshgrid()<\/a> documentation explains the grid construction.<\/p>\n<p>The most common mistake is passing arrays with mismatched shapes. If <code>X<\/code> and <code>Y<\/code> form a five-by-five grid, the <code>U<\/code> and <code>V<\/code> components should also describe that same five-by-five set of positions. Print shapes before plotting if the arrows appear missing or misaligned.<\/p>\n<p>Scaling also matters. Quiver arrows are drawn in display units by default, so their visual length depends on the <code>scale<\/code>, <code>scale_units<\/code>, and <code>angles<\/code> settings. For data-coordinate arrows, set those arguments deliberately and test a small chart before adding styling.<\/p>\n<p>Arrow density matters as much as styling. A grid with hundreds of arrows can hide the pattern it is supposed to explain. Downsample the grid, plot every second or third point, or make a larger figure before adding color and labels. A clear sparse field is usually more useful than a dense plot where arrowheads overlap.<\/p>\n<p>Quiver plots also work well with background plots, but the layers need planning. A heatmap or pseudocolor plot can show magnitude while arrows show direction. In that case, set alpha, z-order, and colors so the arrows remain readable against the background.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #990303;color:#990303\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #990303;color:#990303\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Create_A_Basic_Quiver_Plot\" >Create A Basic Quiver Plot<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Plot_A_Rotating_Field\" >Plot A Rotating Field<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Color_Arrows_By_Magnitude\" >Color Arrows By Magnitude<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Control_Scale_And_Angles\" >Control Scale And Angles<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Add_A_Quiver_Key\" >Add A Quiver Key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Place_Quiver_Plots_In_Subplots\" >Place Quiver Plots In Subplots<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Build_A_Vector_Field\" >Build A Vector Field<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Control_Scale_And_Units\" >Control Scale And Units<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Choose_Angles_And_Color\" >Choose Angles And Color<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Make_Dense_Fields_Readable\" >Make Dense Fields Readable<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Frequently_Asked_Questions\" >Frequently Asked Questions<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#What_does_Matplotlib_quiver_do\" >What does Matplotlib quiver() do?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#How_do_I_control_arrow_size_in_quiver\" >How do I control arrow size in quiver()?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Can_quiver_arrows_have_different_colors\" >Can quiver arrows have different colors?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#Why_do_my_quiver_arrows_look_too_large\" >Why do my quiver arrows look too large?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Create_A_Basic_Quiver_Plot\"><\/span>Create A Basic Quiver Plot<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Start with a small grid and simple horizontal and vertical components. This keeps the shapes easy to inspect.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    x = np.arange(0, 3)\n    y = np.arange(0, 3)\n    X, Y = np.meshgrid(x, y)\n    U = np.ones_like(X)\n    V = np.zeros_like(Y)\n\n    fig, ax = plt.subplots()\n    ax.quiver(X, Y, U, V)\n    ax.set_title(\"Basic quiver arrows\")\n    plt.close(fig)\n\n    print(X.shape, U.shape)\n<\/code><\/pre>\n<\/div>\n<p>Every arrow points to the right because <code>U<\/code> is one and <code>V<\/code> is zero at each grid point. The printed shapes confirm that the position and component arrays match.<\/p>\n<p>Use this minimal pattern when debugging. Once the arrows show up correctly, add color, labels, scaling, and layout settings one step at a time.<\/p>\n<p>If nothing appears, check the array shapes first, then check axis limits. Very small or very large component values can make arrows hard to see until scale settings are adjusted.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Plot_A_Rotating_Field\"><\/span>Plot A Rotating Field<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A rotating field is a common quiver demo. The components are built from the grid positions.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    points = np.linspace(-2, 2, 5)\n    X, Y = np.meshgrid(points, points)\n    U = -Y\n    V = X\n\n    fig, ax = plt.subplots()\n    ax.quiver(X, Y, U, V)\n    ax.set_aspect(\"equal\")\n    ax.set_title(\"Rotating field\")\n    plt.close(fig)\n\n    print(np.round(U[0], 1).tolist())\n<\/code><\/pre>\n<\/div>\n<p>The arrows turn around the origin because each component depends on the point position. <code>set_aspect(\"equal\")<\/code> keeps the x and y units visually comparable.<\/p>\n<p>When aspect ratio is distorted, arrow direction can look misleading even if the numeric components are correct.<\/p>\n<p><!-- Python Pool visual layout repair 2026-07-13 --><\/p>\n<figure class=\"pythonpool-article-visual pythonpool-supporting-visual\"><img src=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/quiver-vectors-b153.png\" alt=\"Python Pool infographic showing X Y positions, U V vector components, arrows, and a quiver plot\" width=\"1536\" height=\"1054\" loading=\"lazy\" decoding=\"async\"><figcaption>Vector field: X Y positions, U V vector components, arrows, and a quiver plot.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Color_Arrows_By_Magnitude\"><\/span>Color Arrows By Magnitude<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Pass a fifth array to color arrows by another value, often the vector magnitude. Add a colorbar so viewers can read the color scale.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    values = np.linspace(-1, 1, 5)\n    X, Y = np.meshgrid(values, values)\n    U = X\n    V = Y\n    magnitude = np.hypot(U, V)\n\n    fig, ax = plt.subplots()\n    arrows = ax.quiver(X, Y, U, V, magnitude, cmap=\"viridis\")\n    fig.colorbar(arrows, ax=ax, label=\"magnitude\")\n    plt.close(fig)\n\n    print(round(float(magnitude.max()), 3))\n<\/code><\/pre>\n<\/div>\n<p>The colorbar describes magnitude, while arrow direction still comes from <code>U<\/code> and <code>V<\/code>. Label the colorbar so the encoded value is clear.<\/p>\n<p>Use a perceptually sensible colormap for continuous values, and avoid too many arrows on a dense grid because the plot can become hard to read.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Control_Scale_And_Angles\"><\/span>Control Scale And Angles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Use <code>angles=\"xy\"<\/code> and <code>scale_units=\"xy\"<\/code> when arrow direction and length should follow data coordinates.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    X, Y = np.meshgrid([0, 1, 2], [0, 1, 2])\n    U = np.array([[1, 1, 1], [0, 1, 2], [1, 1, 1]])\n    V = np.array([[0, 1, 0], [1, 1, 1], [0, -1, 0]])\n\n    fig, ax = plt.subplots()\n    ax.quiver(X, Y, U, V, angles=\"xy\", scale_units=\"xy\", scale=1)\n    ax.set_xlim(-1, 4)\n    ax.set_ylim(-1, 4)\n    ax.set_aspect(\"equal\")\n    plt.close(fig)\n\n    print(U.shape == V.shape == X.shape)\n<\/code><\/pre>\n<\/div>\n<p>These settings are useful when one unit of component length should appear as one unit in the coordinate system. Axis limits are expanded so arrowheads are not clipped.<\/p>\n<p>If arrows look too long or too short, adjust <code>scale<\/code> after confirming that the component values and axis settings are correct.<\/p>\n<figure class=\"pythonpool-article-visual pythonpool-supporting-visual\"><img src=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/quiver-scale-b153.png\" alt=\"Python Pool infographic mapping vector magnitude through scale, scale_units, pivot, width, and arrow length\" width=\"1536\" height=\"1054\" loading=\"lazy\" decoding=\"async\"><figcaption>Arrow scale: Vector magnitude through scale, scale_units, pivot, width, and arrow length.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Add_A_Quiver_Key\"><\/span>Add A Quiver Key<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A quiver key gives a reference arrow with a label. It helps readers understand what an arrow length represents.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    X, Y = np.meshgrid(np.arange(3), np.arange(3))\n    U = np.full_like(X, 2, dtype=float)\n    V = np.full_like(Y, 1, dtype=float)\n\n    fig, ax = plt.subplots()\n    arrows = ax.quiver(X, Y, U, V)\n    ax.quiverkey(arrows, X=0.85, Y=1.05, U=2, label=\"2 units\", labelpos=\"E\")\n    plt.close(fig)\n\n    print(\"quiver key added\")\n<\/code><\/pre>\n<\/div>\n<p>The key is positioned in axes coordinates by default, so values near 1 place it close to the top or right edge of the axes. Adjust placement for the final figure size.<\/p>\n<p>A key is especially helpful when the plot does not use data-coordinate scaling or when the chart appears in a report without surrounding explanation.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Place_Quiver_Plots_In_Subplots\"><\/span>Place Quiver Plots In Subplots<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Quiver plots work inside normal Matplotlib subplot layouts. Keep axis titles short and use shared settings when comparisons matter.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">try:\n    import numpy as np\n    import matplotlib.pyplot as plt\nexcept ModuleNotFoundError:\n    print(\"Install numpy and matplotlib to run this example.\")\nelse:\n    grid = np.linspace(-1, 1, 4)\n    X, Y = np.meshgrid(grid, grid)\n\n    fig, axes = plt.subplots(1, 2)\n    axes[0].quiver(X, Y, X, Y)\n    axes[0].set_title(\"outward\")\n    axes[1].quiver(X, Y, -Y, X)\n    axes[1].set_title(\"rotating\")\n    for ax in axes:\n        ax.set_aspect(\"equal\")\n    plt.close(fig)\n\n    print(len(axes))\n<\/code><\/pre>\n<\/div>\n<p>This layout can compare two fields side by side. If arrows overlap titles or neighboring axes, adjust figure size, subplot spacing, or arrow density.<\/p>\n<p>In short, build matching <code>X<\/code>, <code>Y<\/code>, <code>U<\/code>, and <code>V<\/code> arrays, use color only when it adds information, control scale deliberately, add a quiver key when length needs explanation, and close figures in scripts that generate plots programmatically.<\/p>\n<figure class=\"pythonpool-article-visual pythonpool-supporting-visual\"><img src=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/quiver-color-b153.png\" alt=\"Python Pool infographic comparing vector magnitude, C values, cmap, Normalize, and colorbar\" width=\"1536\" height=\"1054\" loading=\"lazy\" decoding=\"async\"><figcaption>Color vectors: Vector magnitude, C values, cmap, Normalize, and colorbar.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Build_A_Vector_Field\"><\/span>Build A Vector Field<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>quiver() maps each x-y location to an arrow whose direction and length come from U and V. Start with a small grid and verify that the component arrays have the same shape as the coordinate arrays or can be broadcast safely.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">import matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(-2, 2, 9)\ny = np.linspace(-2, 2, 9)\nX, Y = np.meshgrid(x, y)\nU = -Y\nV = X\n\nfig, ax = plt.subplots()\nax.quiver(X, Y, U, V)\nax.set_aspect(\"equal\")\nplt.show()<\/code><\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Control_Scale_And_Units\"><\/span>Control Scale And Units<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The visual length of an arrow is not automatically the same as its data magnitude. Use scale and scale_units when comparisons need a stable interpretation, and keep the arrow key or a written explanation close to the plot.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">import matplotlib.pyplot as plt\n\nfig, ax = plt.subplots()\nax.quiver([0, 1], [0, 0], [1, 0], [0, 1], angles=\"xy\", scale_units=\"xy\", scale=1)\nax.set_xlim(-0.5, 2)\nax.set_ylim(-0.5, 1.5)\nax.set_aspect(\"equal\")\nplt.show()<\/code><\/pre>\n<\/div>\n<figure class=\"pythonpool-article-visual pythonpool-supporting-visual\"><img src=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/quiver-check-b153.png\" alt=\"Python Pool infographic testing grid shapes, masked arrows, angles, aspect, and output density\" width=\"1536\" height=\"1054\" loading=\"lazy\" decoding=\"async\"><figcaption>Quiver checks: Grid shapes, masked arrows, angles, aspect, and output density.<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Choose_Angles_And_Color\"><\/span>Choose Angles And Color<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>angles=&#8221;xy&#8221; makes arrow direction follow data coordinates, while other modes can interpret vectors in display coordinates. Use color only when it encodes a scalar or category that the reader can identify; otherwise keep the field visually quiet.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">import matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.arange(4)\ny = np.zeros(4)\nU = np.array([1, 2, 3, 4])\nV = np.array([0, 1, 0, -1])\ncolor = np.hypot(U, V)\n\nfig, ax = plt.subplots()\nax.quiver(x, y, U, V, color=plt.cm.viridis(color \/ color.max()))\nplt.show()<\/code><\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Make_Dense_Fields_Readable\"><\/span>Make Dense Fields Readable<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A vector field becomes unreadable when every pixel has an arrow. Subsample the grid, use a consistent aspect ratio, and add a key or labels. Inspect both the interactive plot and the saved image because a resize can change how arrowheads and spacing are perceived.<\/p>\n<div class=\"pythonpool-code-scroll\" style=\"max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;\">\n<pre><code class=\"language-python\">import matplotlib.pyplot as plt\nimport numpy as np\n\nX, Y = np.meshgrid(np.arange(-3, 4), np.arange(-3, 4))\nU, V = -Y, X\nfig, ax = plt.subplots(figsize=(6, 6))\nax.quiver(X[::2, ::2], Y[::2, ::2], U[::2, ::2], V[::2, ::2])\nax.quiverkey(ax.quiver([], [], [], []), 0.8, 1.05, 3, \"3 units\")\nplt.show()<\/code><\/pre>\n<\/div>\n<p>The official <a href=\"https:\/\/matplotlib.org\/stable\/api\/_as_gen\/matplotlib.pyplot.quiver.html\">Matplotlib quiver() reference<\/a> documents U and V components, scale, units, angles, color, and arrow keys. Treat the visual scaling as part of the data explanation.<\/p>\n<p>For related vector-field presentation, compare <a href=\"https:\/\/www.pythonpool.com\/matplotlib-custom-colormap\/\">custom colormaps<\/a>, <a href=\"https:\/\/www.pythonpool.com\/matplotlib-grid\/\">grid lines<\/a>, and <a href=\"https:\/\/www.pythonpool.com\/matplotlib-aspect-ratio\/\">aspect-ratio control<\/a> before deciding how to encode direction and magnitude.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions\"><\/span>Frequently Asked Questions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"What_does_Matplotlib_quiver_do\"><\/span>What does Matplotlib quiver() do?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>quiver() draws arrows whose locations come from x and y while their direction and magnitude come from U and V components.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_do_I_control_arrow_size_in_quiver\"><\/span>How do I control arrow size in quiver()?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Use scale and scale_units deliberately, then validate the result against the coordinate units and the size of the plotted field.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Can_quiver_arrows_have_different_colors\"><\/span>Can quiver arrows have different colors?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Yes. Pass a color or an array of values with a colormap when color encodes a meaningful scalar quantity.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Why_do_my_quiver_arrows_look_too_large\"><\/span>Why do my quiver arrows look too large?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The default scaling is data-dependent; set scale, scale_units, and angles explicitly and use a small representative grid.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What does Matplotlib quiver() do?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"quiver() draws arrows whose locations come from x and y while their direction and magnitude come from U and V components.\"}},{\"@type\":\"Question\",\"name\":\"How do I control arrow size in quiver()?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use scale and scale_units deliberately, then validate the result against the coordinate units and the size of the plotted field.\"}},{\"@type\":\"Question\",\"name\":\"Can quiver arrows have different colors?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Pass a color or an array of values with a colormap when color encodes a meaningful scalar quantity.\"}},{\"@type\":\"Question\",\"name\":\"Why do my quiver arrows look too large?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The default scaling is data-dependent; set scale, scale_units, and angles explicitly and use a small representative grid.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.<\/p>\n","protected":false},"author":1,"featured_media":34256,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2071],"tags":[2432,2433,2431,2430,2429],"class_list":["post-4983","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-matplotlib","tag-matplotlib-quiver","tag-phase-plane-quiver-matplotlib","tag-quiver-matplotlib","tag-quiver-plot-matplotlib-source","tag-quiver-with-colorbar-matplotlib","infinite-scroll-item"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.1 (Yoast SEO v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Matplotlib Quiver: Vector Fields, Scale, Angles, and Color<\/title>\n<meta name=\"description\" content=\"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color\" \/>\n<meta property=\"og:description\" content=\"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pythonpool.com\/matplotlib-quiver\/\" \/>\n<meta property=\"og:site_name\" content=\"Python Pool\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-11T06:36:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-13T06:58:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver.png\" \/>\n<meta name=\"author\" content=\"Python Pool\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Python Pool\" \/>\n<meta name=\"twitter:description\" content=\"Practical Python tutorials, error fixes, code examples, and project guides.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver.png\" \/>\n<meta name=\"twitter:creator\" content=\"@pythonpool\" \/>\n<meta name=\"twitter:site\" content=\"@pythonpool\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Python Pool\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/\"},\"author\":{\"name\":\"Python Pool\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#\\\/schema\\\/person\\\/f87448ee54c0ffd2889fbf2408c18998\"},\"headline\":\"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color\",\"datePublished\":\"2020-11-11T06:36:20+00:00\",\"dateModified\":\"2026-07-13T06:58:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/\"},\"wordCount\":1194,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/matplotlib-quiver-plot-guide-pythonpool.png\",\"keywords\":[\"matplotlib quiver\",\"phase plane quiver matplotlib\",\"quiver matplotlib\",\"quiver plot matplotlib source\",\"quiver with colorbar matplotlib\"],\"articleSection\":[\"Matplotlib\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/\",\"url\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/\",\"name\":\"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/matplotlib-quiver-plot-guide-pythonpool.png\",\"datePublished\":\"2020-11-11T06:36:20+00:00\",\"dateModified\":\"2026-07-13T06:58:30+00:00\",\"description\":\"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/matplotlib-quiver-plot-guide-pythonpool.png\",\"contentUrl\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/matplotlib-quiver-plot-guide-pythonpool.png\",\"width\":1350,\"height\":650,\"caption\":\"Matplotlib quiver plot guide\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/matplotlib-quiver\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pythonpool.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#website\",\"url\":\"https:\\\/\\\/www.pythonpool.com\\\/\",\"name\":\"Python Pool\",\"description\":\"Practical Python tutorials, error fixes, code examples, and project guides.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.pythonpool.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#organization\",\"name\":\"Python Pool\",\"url\":\"https:\\\/\\\/www.pythonpool.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/aa.png\",\"contentUrl\":\"https:\\\/\\\/www.pythonpool.com\\\/wp-content\\\/uploads\\\/2020\\\/08\\\/aa.png\",\"width\":452,\"height\":185,\"caption\":\"Python Pool\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/pythonpool\",\"https:\\\/\\\/www.youtube.com\\\/c\\\/pythonpool\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.pythonpool.com\\\/#\\\/schema\\\/person\\\/f87448ee54c0ffd2889fbf2408c18998\",\"name\":\"Python Pool\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g\",\"caption\":\"Python Pool\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color","description":"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/","og_locale":"en_US","og_type":"article","og_title":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color","og_description":"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.","og_url":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/","og_site_name":"Python Pool","article_published_time":"2020-11-11T06:36:20+00:00","article_modified_time":"2026-07-13T06:58:30+00:00","og_image":[{"url":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver.png","type":"","width":"","height":""}],"author":"Python Pool","twitter_card":"summary_large_image","twitter_title":"Python Pool","twitter_description":"Practical Python tutorials, error fixes, code examples, and project guides.","twitter_image":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver.png","twitter_creator":"@pythonpool","twitter_site":"@pythonpool","twitter_misc":{"Written by":"Python Pool","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#article","isPartOf":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/"},"author":{"name":"Python Pool","@id":"https:\/\/www.pythonpool.com\/#\/schema\/person\/f87448ee54c0ffd2889fbf2408c18998"},"headline":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color","datePublished":"2020-11-11T06:36:20+00:00","dateModified":"2026-07-13T06:58:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/"},"wordCount":1194,"commentCount":0,"publisher":{"@id":"https:\/\/www.pythonpool.com\/#organization"},"image":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver-plot-guide-pythonpool.png","keywords":["matplotlib quiver","phase plane quiver matplotlib","quiver matplotlib","quiver plot matplotlib source","quiver with colorbar matplotlib"],"articleSection":["Matplotlib"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pythonpool.com\/matplotlib-quiver\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/","url":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/","name":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color","isPartOf":{"@id":"https:\/\/www.pythonpool.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#primaryimage"},"image":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver-plot-guide-pythonpool.png","datePublished":"2020-11-11T06:36:20+00:00","dateModified":"2026-07-13T06:58:30+00:00","description":"Use Matplotlib quiver() to draw vector fields with correct x-y components, scale, angles, color, grids, and readable arrow keys.","breadcrumb":{"@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pythonpool.com\/matplotlib-quiver\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#primaryimage","url":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver-plot-guide-pythonpool.png","contentUrl":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2026\/07\/matplotlib-quiver-plot-guide-pythonpool.png","width":1350,"height":650,"caption":"Matplotlib quiver plot guide"},{"@type":"BreadcrumbList","@id":"https:\/\/www.pythonpool.com\/matplotlib-quiver\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pythonpool.com\/"},{"@type":"ListItem","position":2,"name":"Matplotlib Quiver: Vector Fields, Scale, Angles, and Color"}]},{"@type":"WebSite","@id":"https:\/\/www.pythonpool.com\/#website","url":"https:\/\/www.pythonpool.com\/","name":"Python Pool","description":"Practical Python tutorials, error fixes, code examples, and project guides.","publisher":{"@id":"https:\/\/www.pythonpool.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pythonpool.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.pythonpool.com\/#organization","name":"Python Pool","url":"https:\/\/www.pythonpool.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pythonpool.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2020\/08\/aa.png","contentUrl":"https:\/\/www.pythonpool.com\/wp-content\/uploads\/2020\/08\/aa.png","width":452,"height":185,"caption":"Python Pool"},"image":{"@id":"https:\/\/www.pythonpool.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/pythonpool","https:\/\/www.youtube.com\/c\/pythonpool"]},{"@type":"Person","@id":"https:\/\/www.pythonpool.com\/#\/schema\/person\/f87448ee54c0ffd2889fbf2408c18998","name":"Python Pool","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fdd3cb9ad7f560324dfd481989550aa8ffce84388fd253c42beca35c999d3108?s=96&d=wavatar&r=g","caption":"Python Pool"}}]}},"_links":{"self":[{"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/posts\/4983","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/comments?post=4983"}],"version-history":[{"count":32,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/posts\/4983\/revisions"}],"predecessor-version":[{"id":41438,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/posts\/4983\/revisions\/41438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/media\/34256"}],"wp:attachment":[{"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/media?parent=4983"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/categories?post=4983"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pythonpool.com\/wp-json\/wp\/v2\/tags?post=4983"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}