# Including legend with reference magnitude in a VectorPlot

I'd like to plot a vector field with a legend for the magnitude of a reference vector. I have read all the document of VectorPlot and found only PlotLegends is possible for this purpose. But I cannot come up with a solution. I also found a similar question here without the desired solution. So I post a minimal question here. Note that I do not want to visualize the magnitudes with colors, so please do not waste your time.

Question: How can I plot a vector field with a reference legend showing the reference magnitude? For example, in this figure, the arrow length of the legend should be related to that of the vector field to indicate a reference length.

VectorPlot[{y, -x}, {x, -3, 3}, {y, -3, 3}, PlotLegends -> {"Ref. vector"}]

• What do you mean by reference length? if you run InputForm[VectorPlot[{y, -x}, {x, -3, 3}, {y, -3, 3}, PlotLegends -> {"Ref. vector"}]] you will see that PlotLegend is formed from an arrow of unit length Arrow[{{0, 0.5}, {1, 0.5}}] placed After. So, this unit arrow has reference length, in some sense at least.
– Alx
Sep 1, 2019 at 13:37
• @Alx reference length means a 'ruler' with a given length, which can be used to determine/estimate the magnitudes of other vectors in the field. Considering point (x=-3, y=3) gives vector (3,3) which has a length of about 4.243. So it is expected that the length of this arrow there has a length of 4.243 times of the reference length, i.e. the length of the legend. Sep 1, 2019 at 14:30
• What about VectorColorFunction -> "Rainbow", PlotLegends -> Automatic? Sep 1, 2019 at 15:02
• Maximal arrow length is Maximize[{Norm[{y, -x}], -3 <= x <= 3 && -3 <= y <= 3}, {x, y}] // First = 3 Sqrt[2]. Lengths of vectors are scaled to the diagonal of the plot range, in your case this is 6*Sqrt[2]. So, using VectorScale option and Legended: Legended[VectorPlot[{y, -x}, {x, -3, 3}, {y, -3, 3}, VectorScale -> {0.5, 0.1}], Graphics[{Arrowheads[0.3], Arrow[{{0, 0}, {1/(3 Sqrt[2]), 0}}]}]].
– Alx
Sep 1, 2019 at 16:09
• @Alx so the absolute length of the legend is $1/(3 Sqrt[2])$ and the relative length in respect to the vector field is 1, right? Sep 1, 2019 at 16:15

• it is almost there! while it is still necessary to specify the arrow length of the legend to be unity (relative length), which is about $29\text{cm}/4.243=6.8$cm in absolute length. Sep 2, 2019 at 3:40