Vector Attributes ----------------- Several modifiers may be appended to vector-producing options for specifying the placement of vector heads, their shapes, and the justification of the vector. Below, left and right refers to the side of the vector line when viewed from the start point to the end point of a segment: **+a**\ *angle* sets the angle of the vector head apex [30]. **+b** places a vector head at the beginning of the vector path [none]. Optionally, append **t** for a terminal line, **c** for a circle, **a** for arrow [Default], **i** for tail, **A** for plain open arrow, and **I** for plain open tail. Further append **l**\|\ **r** to only draw the left or right half-sides of this head [both sides]. **+e** places a vector head at the end of the vector path [none]. Optionally, append **t** for a terminal line, **c** for a circle, **a** for arrow [Default], **i** for tail, **A** for plain open arrow, and **I** for plain open tail. Further append **l**\|\ **r** to only draw the left or right half-sides of this head [both sides]. **+g**\ [*fill*] sets the vector head fill [Default fill is used, which may be no fill]. Turn off vector head fill by not appending a *fill*. **+h**\ *shape* sets the shape of the vector head (range -2/2). Default is controlled by :term:`MAP_VECTOR_SHAPE` [0]. **+l** draws half-arrows, using only the left side of specified heads [both sides]. **+m** places a vector head at the mid-point the vector path [none]. Append **f** or **r** for forward or reverse direction of the vector [forward]. Optionally, append **t** for a terminal line, **c** for a circle, **a** for arrow [Default], **i** for tail, **A** for plain open arrow, and **I** for plain open tail. Further append **l**\|\ **r** to only draw the left or right half-sides of this head [both sides]. Cannot be combined with **+b** or **+e**. **+n**\ *norm* scales down vector attributes (pen thickness, head size) with decreasing length, where vector plot lengths shorter than *norm* will have their attributes scaled by length/\ *norm* [arrow attributes remains invariant to length]. For Cartesian vectors specify a length in plot units, while for geovectors specify a length in km. **+o**\ [*plon*\ /\ *plat*] specifies the oblique pole for the great or small circles. Only needed for great circles if **+q** is given. If no pole is appended then we default to the north pole. **+p**\ [*pen*] sets the vector pen attributes. If no *pen* is appended then the head outline is not drawn. [Default pen is half the width of stem pen, and head outline is drawn] **+q** means the input *angle*, *length* data instead represent the *start* and *stop* opening angles of the arc segment relative to the given point. See **+o** to specify a specific pole for the arc [north pole]. **+r** draws half-arrows, using only the right side of specified heads [both sides]. **+t**\ [**b**\|\ **e**]\ *trim* will shift the beginning or end point (or both) along the vector segment by the given *trim*; append suitable unit (**c**, **i**, or **p**). If the modifiers **b**\|\ **e** are not used then *trim* may be two values separated by a slash, which is used to specify different trims for the beginning and end. Positive trims will shorted the vector while negative trims will lengthen it [no trim]. In addition, all but circular vectors may take these modifiers: **+j**\ *just* determines how the input *x*,\ *y* point relates to the vector. Choose from **b**\ eginning [default], **e**\ nd, or **c**\ enter. **+s** means the input *angle*, *length* are instead the *x*, *y* coordinates of the vector end point. Finally, Cartesian vectors may take these modifiers: **+z**\ *scale* expects input *dx*,\ *dy* vector components and uses the *scale* to convert to polar coordinates with length in given unit. **Note**: Vectors were completely redesigned for GMT5 which separated the vector head (a polygon) from the vector stem (a line). In GMT4, the entire vector was a polygon and it could only be a straight Cartesian vector. Yes, the old GMT4 vector shape remains accessible if you specify a vector (**-Sv**\|\ **V**) using the GMT4 syntax, explained here: *size*, if present, will be interpreted as *arrowwidth/headlength/headwidth* [Default is 0.075c/0.3c/0.25c (or 0.03i/0.12i/0.1i)]. By default, arrow attributes remain invariant to the length of the arrow. To have the size of the vector scale down with decreasing size, append **+n**\ *norm*, where vectors shorter than *norm* will have their attributes scaled by *length*/*norm*. To center the vector on the balance point, use **-Svb**; to align point with the vector head, use **-Svh**; to align point with the vector tail, use **-Svt** [Default]. To give the head point’s coordinates instead of direction and length, use **-Svs**. Upper case **B**, **H**, **T**, **S** will draw a double-headed vector [Default is single head].