feather(cmd0::String="", arg1=nothing; kwargs...)

keywords: GMT, Julia, arrow plots

Plot arrows originating from the x-axis. Specify the direction of arrows using the Cartesian components U and V or polar theta,r. The input can either be a file name of a file with at least two columns (u,v), but preferably three, a GMTdatset object with also two or more columns, or direct u,v inputs. In case data has only two columns the arrows are plotted in fuction of the number of points. If xx axis is time, provide the data as time u v or time theta r.

feather(u,v, ...) plots the arrows in function of number of data points.

feather(x,u,v, ...) plots the arrows at the x coordinates. x may be a time column.

feather(D::GMTdatset, yvar, ...) plots the specified variables from the GMTdatset against the row indices of the table. To select the two columns that make up the arrows, specify them via the variable yvar. This can take the form of column names or column numbers. Example yvar=[:Y1, :Y2] or yvar=(2,3).

feather(D::GMTdatset,xvar,yvar) plots the variables xvar and yvar from the table D. You can specify one or multiple variables for yvar and one only for xvar.

This module is a subset of plot to make it simpler to draw stair plots. So not all (fine) controlling parameters are not listed here. For the finest control, user should consult the plot module.


  • rtheta : – rtheta=true
    Means the arrow components are given as azimuth and module (default is U,V).

  • endpt or endpoint : – endpt=true
    Means the arrow components are given as xx and yy (default is U,V).

  • nohead : – nohead=true
    Draw only the stick and drop the arrow head.

  • For fine the lines settings use the same options as in the plot module. Nemely lw or lt for controlling the line thickness, lc for line color, ls for line styles, etc...

  • B or axes or frame
    Set map boundary frame and axes attributes. Default is to draw and annotate left, bottom and vertical axes and just draw left and top axes. More at frame

  • J or proj or projection : – proj=<parameters>
    Select map projection. More at proj

  • R or region or limits : – limits=(xmin, xmax, ymin, ymax) | limits=(BB=(xmin, xmax, ymin, ymax),) | limits=(LLUR=(xmin, xmax, ymin, ymax),units="unit") | ...more
    Specify the region of interest. More at limits. For perspective view view, optionally add zmin,zmax. This option may be used to indicate the range used for the 3-D axes. You may ask for a larger w/e/s/n region to have more room between the image and the axes.

  • G or markerfacecolor or MarkerFaceColor or markercolor or mc or fill
    Select color or pattern for filling of symbols [Default is no fill]. Note that plot will search for fill and pen settings in all the segment headers (when passing a GMTdaset or file of a multi-segment dataset) and let any values thus found over-ride the command line settings (but those must be provided in the terse GMT syntax). See Setting color for extend color selection (including color map generation).

  • W or pen=pen
    Set pen attributes for the arrow stem [Defaults: width = default, color = black, style = solid]. See Pen attributes

  • U or time_stamp : – time_stamp=true | time_stamp=(just="code", pos=(dx,dy), label="label", com=true)
    Draw GMT time stamp logo on plot. More at timestamp

  • V or verbose : – verbose=true | verbose=level
    Select verbosity level. More at verbose

  • X or xshift or x_offset : xshift=true | xshift=x-shift | xshift=(shift=x-shift, mov="a|c|f|r")
    Shift plot origin. More at xshift

  • Y or yshift or y_offset : yshift=true | yshift=y-shift | yshift=(shift=y-shift, mov="a|c|f|r")
    Shift plot origin. More at yshift

  • figname or savefig or name : – figname=name.png
    Save the figure with the figname=name.ext where ext chooses the figure image format.


Create a feather plot by specifying the components of each arrow as Cartesian values..

using GMT
uv= [0.0 0 2.0; 0.0 30 2; 0.0 60 2; 0.0 90 2; 0.0 120 2; 0.0 150 2; 0.0 180 2; 0.0 210 2; 0.0 240 2; 0.0 270 2; 0.0 300 2; 0.0 330 2; 0.0 360 2];
feather(uv, rtheta=true, aspect="1:1", arrow=(len=0.5, shape=0.5,), lw=0.5, fill=:green, show=true)

With simple arrows and in function of number of arrows.

using GMT
t = -pi/2:pi/8:pi/2; u = 10*sin.(t); v = 10*cos.(t);
feather(u,v, show=true)

Show the data used in this example.

D = gmtread(GMT.TESTSDIR * "wind_faro_s.dat")
Time azimuth vmean vmax
1.4936e9 310.0 2.4 3.6
1.4936e9 328.0 2.5 4.3
1.4936e9 340.0 2.0 4.2
1.49361e9 26.0 1.3 3.5
1.49361e9 350.0 2.8 5.7
1.49361e9 349.0 2.7 6.6
1.49362e9 337.0 1.9 3.9

Create a winbarb plot. Note that since the data has 4 columns we must select the 3 that we want to use in the plot. We select the columns from teir names in the DGMTdataset.

using GMT
feather(GMT.TESTSDIR * "wind_faro.dat", xvar=:Time, yvar=[:azimuth, :vmean], rtheta=true, nohead=1, lw=0.1, show=true)