subplot

Manage modern mode figure subplot configuration and selection

The subplot module is used to split the current figure into a rectangular layout of subplots that each may contain a single panel figure. A subplot setup is started with the begin directive that defines the layout of the subplots, while positioning to a particular panel for plotting is done via the set directive. The subplot is completed via the end directive.

Synopsis (begin mode)

gmt subplot begin nrowsxncols -F[f|s]width/height[+fwfracs/hfracs] [ -Aautolabel ] [ -Cside/clearance[u] [ -B[p|s]parameters ] [ -Jparameters ] [ -Mmargins ] [ -Rregion ] [ -Slayout ] [ -Ttitle ] [ -V[level] ] [ --PAR=value ]

Note: No space is allowed between the option flag and the associated arguments.

Description

The begin directive of subplot defines the layout of the entire multi-panel illustration. Several options are available to specify the systematic layout, labeling, dimensions, and more for the panels.

Required Arguments

nrowsxncols
Specifies the number of rows and columns of subplots. Each row will have the same number of subplots. To construct figures with different number of subplots per row you will need to stack separate subplots. Note: You are not required to place a plot in each panel.
-F[f|s]width(s)/height(s)[+fwfracs/hfracs]
Specify the dimensions of the figure. There are two different ways to do this: (f) Specify overall figure dimensions or (s) specify the dimensions of a single panel.
-Ff
Specify the final figure dimensions. The subplot dimensions are then calculated from the figure dimensions after accounting for the space that optional tick marks, annotations, labels, and margins occupy between panels. The annotations, ticks, and labels along the outside perimeter are not counted as part of the figure dimensions. To specify different subplot dimensions for each row (or column), append +f followed by a comma-separated list of width fractions, a slash, and then the list of height fractions. For example –Ff10c/10c+f3,1/1,2 will make the first column three times as wide as the second, while the second row will be twice as tall as the first row. A single number means constant widths (or heights) [Default].
-Fs
Specify the dimensions of each subplot directly. Then, the figure dimensions are computed from the subplot dimensions after adding the space that optional tick marks, annotations, labels, and margins occupy between panels. The annotations, ticks, and labels along the outside perimeter are not counted as part of the figure dimensions. To specify different subplot dimensions for each row (or column), append a comma-separated list of widths, a slash, and then the comma-separated list of heights. A single number means constant widths (or heights) [Default]. For example –Fs5c,8c/8c will make the first column 5 cm wide and the second column 8 cm wide, with all having a constant height of 8 cm. The number of values must either be one (constant across the rows or columns) or exactly match the number of rows (or columns). For geographic maps, the height of each panel depends on your map region and projection. There are two options: (1) Specify both -R and -J and we use these to compute the height of each subplot. All subplot must share the same region and projection and you specify a zero height, or (2) you can select height based on trial and error to suit your plot layout.

Optional Arguments

-Aautolabel
Specify automatic tagging of each subplot. Append either a number or letter [a]. This sets the tag of the first, top-left subplot and others follow sequentially. Surround the number or letter by parentheses on any side if these should be typeset as part of the tag (Note: In UNIX shells you may need to escape these parentheses.) Use +j|Jrefpoint to specify where the tag should be placed in the subplot [TL]. Note: +j sets the justification of the tag to refpoint (suitable for interior tags) while +J instead selects the mirror opposite (suitable for exterior tags). Append +cdx[/dy] to set the clearance between the tag and a surrounding text box requested via +g or +p [3pt/3pt, i.e., 15% of the FONT_TAG size dimension]. Append +gfill to paint the tag’s text box with fill [no painting]. Append +odx[/dy] to offset the tag’s reference point in the direction implied by the justification [4pt/4pt, i.e., 20% of the FONT_TAG size]. Append +ppen to draw the outline of the tag’s text box using selected pen [no outline]. Append +r to typeset your tag numbers using lowercase Roman numerals; use +R for uppercase Roman numerals [Arabic numerals]. Append +v to increase tag numbers vertically down columns [horizontally across rows].
-B[p|s]parameters (more …)
Set map boundary frame and axes attributes.
-Cside/clearance[u]
Reserve a space of dimension clearance between the margin and the subplot on the specified side, using side values from w, e, s, or n. The option is repeatable to set aside space on more than one side. Such space will be left untouched by the main map plotting but can be accessed by modules that plot scales, bars, text, etc. Settings specified under begin directive apply to all panels.
-Jparameters (more …)
Select map projection.
-Mmargins
This is margin space that is added around each subplot beyond the automatic space allocated for tick marks, annotations, and labels. The margins can be a single value, a pair of values separated by slashes (for setting separate horizontal and vertical margins), or the full set of four margins (for setting separate left, right, bottom, and top margins) [0.5c].
-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
Specify the region of interest. This is useful when all subplots share a common plot domain.
-Slayout
Set subplot layout for shared axes. May be set separately for rows (-SR) and columns (-SC). Considerations for -SC: Use when all subplots in a Column share a common x-range. The first (i.e., top) and the last (i.e., bottom) rows will have x annotations; append t or b to select only one of those two rows [both]. Append +l if annotated x-axes should have a label [none]; optionally append the label if it is the same for the entire subplot. Append +t to make space for subplot titles for each row; use +tc for top row titles only [no subplot titles]. Labels and titles that depends on which row or column are specified as usual via a panel’s -B setting. Considerations for -SR: Use when all subplots in a Row share a common y-range. The first (i.e., left) and the last (i.e., right) columns will have y-annotations; append l or r to select only one of those two columns [both]. Append +l if annotated y-axes will have a label [none]; optionally, append the label if it is the same for the entire subplot. Append +p to make all annotations axis-parallel [horizontal]; if not used you may have to set -C to secure extra space for long horizontal annotations.
-Theading
While individual subplots can have titles (see -S or -B), the entire figure may also have a overarching heading [no heading]. Font is determined by setting FONT_HEADING.
-V[level] (more …)
Select verbosity level [c].
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows just use -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of all options, then exits.
--PAR=value
Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.

Synopsis (set mode)

gmt subplot set [ row,col ] [ -Afixedlabel] [ -Cside/clearance[u] ] [ -V[level] ]

Before you start plotting you must first select the active subplot panel. Note: Any -J option passed when plotting subplots must give ? as scale of width since the dimensions of the map are completely determined by the subplot size and your region. Specifying map width will result in an error. For Cartesian plots: If you want the scale to apply equally to both dimensions then you must specify -Jx [The default -JX will fill the subplot using unequal scales].

Optional Arguments

row,col
Sets the current subplot until further notice. If not given we go to the next panel by order specified via -A. As an alternative, you may bypass the set mode and instead supply the common option -c[row,col] to the first plot command you issue in that subplot. GMT maintains information about the current figure and subplot.
-Afixedlabel
Overrides the automatic labeling with the given string. No modifiers are allowed. Placement, justification, etc. are all inherited from how -A was specified by the initial subplot begin command.
-Cside/clearance[u]
Reserve a space of dimension clearance between the margin and the subplot on the specified side, using side values from w, e, s, or n. The option is repeatable to set aside space on more than one side. Such space will be left untouched by the main map plotting but can be accessed by modules that plot scales, bars, text, etc. This setting overrides the common clearances set by -C during subplot begin.
-V[level] (more …)
Select verbosity level [c].
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows just use -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of all options, then exits.
--PAR=value
Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.

Any number of plotting command can now take place and all output will be directed to the selected subplot panel. There are a few other rules that need to be followed: (1) The subplot machinery expects the first plotting command in a new subplot window to take care of plotting the base frame. The particulars of this frame may have been specified by the -S option in subplot begin. In either case, should you need to set or override frame and axis parameters then you must specify these -B options with this first plot command. (2) The subplot machinery automatically uses the -X and -Y options under the hood so these options are not available while a subplot is active.

Synopsis (end mode)

gmt subplot end [ -V[level] ]

This command finalizes the current subplot, including any placement of tags, and updates the dimensions of the last plot to that of the entire subplot. This allows -X and -Y to use the codes w and h in setting the current point relative to the entire subplot. We also reset the current plot location to where it was prior to the subplot.

Optional Arguments

-V[level] (more …)
Select verbosity level [c].
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows just use -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of all options, then exits.
--PAR=value
Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.

Examples

To make a minimalistic 2x2 basemap layout called panels.pdf, try

gmt begin panels pdf
  gmt subplot begin 2x2 -Fs8c -M5p -A -SCb -SRl -Bwstr
    gmt basemap -R0/80/0/10
    gmt basemap -c
    gmt basemap -c
    gmt basemap -c
  gmt subplot end
gmt end

See Also

begin, clear, docs, end, figure, inset, gmt