# Change arrow head size in e.g. quiver plots

**URL:** <https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347>\
**Category:** Visualization\
**Tags:** plots\
**Created:** [January 27, 2024, 7:15pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347 "2024-01-27T19:15:36Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [January 27, 2024, 7:15pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/1 "2024-01-27T19:15:36Z")

</div>

I am trying to make a quiver plot using Plots. Unfortunatley, the heads of the arrows keeps being way to large for the plot to be usable. I have been trying various arguments to change this, but nothing seems to help.

Here is with open arrows heads:

```julia
Plots.quiver(arrow_x_vals, arrow_y_vals; quiver=(arrow_dxs,arrow_dys), markersize=0.1, line_z=arrow_cs, lw=0.5, size=(700,400))

```

![image](https://global.discourse-cdn.com/julialang/original/3X/1/c/1c71520dcb9d08e876bf0f6b22ac762af5b161b4.png)

here is with closed ones

```julia
Plots.quiver(arrow_x_vals, arrow_y_vals; quiver=(arrow_dxs,arrow_dys), markersize=0.1, arrow=Plots.arrow(:closed, :head, 0.01, 0.01), line_z=arrow_cs, lw=0.5, size=(700,400))

```

![image](https://global.discourse-cdn.com/julialang/original/3X/4/9/49b61d81a0939265410242b793bb5e0783708070.png)

I have tried changing the size pf the plot plane (`size`), the line width, the markersize, the input to `arrow`. Nothing seems to change and the arrow heads keeps being large blobs.

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [January 27, 2024, 8:55pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/2 "2024-01-27T20:55:17Z")

</div>

Check one possibility [on this other post](https://discourse.julialang.org/t/quiver-plot-arrowhead-sizing/81789/4).

---

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [January 27, 2024, 9:08pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/3 "2024-01-27T21:08:42Z")

</div>

Thanks, will have a look. Ideally, I’d _really_ like to avoid Makie.  
(I will try using `arrow0!` though)

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [January 28, 2024, 10:24am UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/4 "2024-01-28T10:24:44Z")

</div>

Other options. GMT.jl does some automatic arrow head resizing.  
[https://www.generic-mapping-tools.org/GMTjl\_doc/examples/arrows/10\_arrows/#example\_18352513429053479678](https://www.generic-mapping-tools.org/GMTjl_doc/examples/arrows/10_arrows/#example_18352513429053479678)

---

<div class="post-metadata">

**Author:** ![John\_Gibson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/john_gibson/32/5321_2.png) [@John\_Gibson](https://discourse.julialang.org/u/John_Gibson)\
**Post date:** [January 28, 2024, 2:26pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/5 "2024-01-28T14:26:42Z")

</div>

Reducing the number of gridpoints in the vertical direction will give more space for arrows & their heads and make the quiver plot look more natural and balanced. Try just eliminating half the data in the vertical direction.

---

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [January 28, 2024, 7:22pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/6 "2024-01-28T19:22:34Z")

</div>

I can remove some data, and that might be good for independent reasons. But the arrow heads are still the same size and look ludicrous when they are waaaay larger than the arrow body.

---

<div class="post-metadata">

**Author:** ![Torkel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/torkel/32/5030_2.png) [@Torkel](https://discourse.julialang.org/u/Torkel)\
**Post date:** [January 28, 2024, 7:23pm UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/7 "2024-01-28T19:23:18Z")

</div>

Yes, I saw a good version in Makie as well. But I have everything else in a complicated plot in place and would rather avoid learning an entirely new plotting language for a single figure.

---

<div class="post-metadata">

**Author:** ![Wen-Wei\_Tseng](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wen-wei_tseng/32/28839_2.png) [@Wen-Wei\_Tseng](https://discourse.julialang.org/u/Wen-Wei_Tseng)\
**Post date:** [March 24, 2026, 7:10am UTC](https://discourse.julialang.org/t/change-arrow-head-size-in-e-g-quiver-plots/109347/8 "2026-03-24T07:10:52Z")

</div>

Not sure if I should resurrect this thread, but you can set the arrow head size in `GR` directly as a workaround.

```julia
using Plots
using GR: setarrowsize
setarrowsize(1)

# Do quiver plots...

```

Source: [[FR] use arrowsize in GR · Issue #2842 · JuliaPlots/Plots.jl · GitHub](https://github.com/JuliaPlots/Plots.jl/issues/2842)
