.. _-B_full:

**-B**\ [**p**\ \|\ **s**]\ *parameters*
    Set map Frame and Axes parameters. The Frame parameters are specified by

    **-B**\ [*axes*][**+b**][**+g**\ *fill*][**+o**\ *lon/lat*][**+t**\ *title*]

    where *axes* selects which axes to plot. By default, all 4 map boundaries
    (or plot axes) are plotted (named **W**, **E**, **S**, **N**). To customize,
    append the codes for those you want (e.g., **WSn**). Upper case means plot
    and annotate while lower case just plots the specified axes.  If a 3-D basemap
    is selected with **-p** and **-Jz**, append **Z** or **z** to control the
    appearance of the vertical axis. By default a single vertical axes will be
    plotted at the most suitable map corner. Override the default by appending
    any combination of corner ids **1234**, where **1** represents the lower left
    corner and the order goes counter-clockwise. Append **+b** to draw the outline of the 3-D
    cube defined by **-R**; this modifier is also needed to display gridlines in
    the x-z, y-z planes. Note that for 3-D views the title, if given, will be
    suppressed. You can paint the interior of the canvas with **+g**\ *fill*.
    Optionally append **+o**\ *plon/plat* to draw oblique gridlines about
    specified pole [regular gridlines]. Ignored if gridlines are not
    requested (below) and disallowed for the oblique Mercator projection.
    To add a plot title (**+t**\ *title*). The Frame setting is optional but
    can be invoked once to override the above defaults.

    The Axes parameters are specified by

    **-B**\ [**p**\|\ **s**][**x**\|\ **y**\|\ **z**]\ *intervals*\ [\ **+l**\ *label*][**+p**\ *prefix*][**+u**\ *unit*]

    but you may also split this into two separate invocations for clarity, i.e.,

-   **-B**\ [**p**\|\ **s**][**x**\|\ **y**\|\ **z**][**+l**\ *label*][**+p**\ *prefix*][**+u**\ *unit*]
-   **-B**\ [**p**\|\ **s**][**x**\|\ **y**\|\ **z**]\ *intervals*

    The first optional flag following **-B** selects **p** (rimary) [Default] or
    **s** (econdary) axes information (mostly used for time axes annotations).
    The [**x**\|\ **x**\|\ **z**] flags specify which axes you are providing information for.
    If none are given then we default to **xy**.  If you wish to give different annotation intervals
    or labels for the various axes then you must repeat the **B** option for
    each axis (If a 3-D basemap is selected with **-p** and **-Jz**, use **-Bz**
    to give settings for the vertical axis.).  To add a label to an axis,
    just append **+l**\ *label* (Cartesian projections only). If the
    axis annotation should have a leading text prefix (e.g., dollar sign for those
    plots of your net worth) you can append **+p**\ *prefix*. For geographic maps
    the addition of degree symbols, etc. is automatic (and controlled by the GMT
    default setting :ref:`FORMAT_GEO_MAP <FORMAT_GEO_MAP>`). However, for other plots you can add
    specific units by adding **+u**\ *unit*.  If any of these text strings contain
    spaces or special UNIX characters you will need to enclose them in quotes.
    The *intervals* specification is a concatenated string made up of substrings
    of the form

    [**a**\ \|\ **f**\ \|\ **g**]\ *stride*\ [*+-phase*][**u**].

    The leading **a** is used to specify the annotation and major tick
    spacing [Default], **f** for minor tick spacing, and **g** for
    gridline spacing. *stride* is the desired stride interval. The
    optional *phase* shifts the annotation interval by that amount
    (positive or negative). The optional *unit* indicates the unit of
    the *stride* and can be any of

    - **Y** (year, plot with 4 digits)
    - **y** (year, plot with 2 digits)
    - **O** (month, plot using :ref:`FORMAT_DATE_MAP <FORMAT_DATE_MAP>`)
    - **o** (month, plot with 2 digits)
    - **U** (ISO week, plot using :ref:`FORMAT_DATE_MAP <FORMAT_DATE_MAP>`)
    - **u** (ISO week, plot using 2 digits)
    - **r** (Gregorian week, 7-day stride from start of week :ref:`TIME_WEEK_START <TIME_WEEK_START>`)
    - **K** (ISO weekday, plot name of day)
    - **D** (date, plot using :ref:`FORMAT_DATE_MAP <FORMAT_DATE_MAP>`)
    - **d** (day, plot day of month 0-31 or year 1-366, via :ref:`FORMAT_DATE_MAP <FORMAT_DATE_MAP>`)
    - **R** (day, same as **d**, aligned with :ref:`TIME_WEEK_START <TIME_WEEK_START>`)
    - **H** (hour, plot using :ref:`FORMAT_CLOCK_MAP <FORMAT_CLOCK_MAP>`)
    - **h** (hour, plot with 2 digits)
    - **M** (minute, plot using :ref:`FORMAT_CLOCK_MAP <FORMAT_CLOCK_MAP>`)
    - **m** (minute, plot with 2 digits)
    - **S** (second, plot using :ref:`FORMAT_CLOCK_MAP <FORMAT_CLOCK_MAP>`)
    - **s** (second, plot with 2 digits).

    Note for geographic axes **m** and **s** instead mean arc minutes and arc seconds.
    All entities that are language-specific are under control
    by :ref:`TIME_LANGUAGE <TIME_LANGUAGE>`. Alternatively, for linear maps, we can omit *stride*, thus setting
    *xinfo*, *yinfo*, or *zinfo* to **a** plots annotations at
    automatically determined intervals,

    - **ag** plots both annotations and grid lines with the same spacing,
    - **afg** adds suitable minor tick intervals,
    - **g** plots grid lines with the same interval as if **-Bf** was used.

    For custom annotations and intervals, let *intervals* be given as
    **c**\ *intfile*, where *intfile* contains any number of
    records with *coord* *type* [*label*]. Here, *type* is one or more
    letters from **a**\ \|\ **i**, **f**, and **g**. For
    **a**\ \|\ **i** you must supply a *label* that will be plotted at
    the *coord* location. |br|
    For non-geographical projections: Give negative scale (in **-Jx**)
    or axis length (in **-JX**) to change the direction of increasing
    coordinates (i.e., to make the y-axis positive down). |br|
    For log10 axes: Annotations can be specified in one of three ways: 

    1. *stride* can be 1, 2, 3, or -*n*. Annotations will then occur at 1,
       1-2-5, or 1-2-3-4-...-9, respectively; for -*n* we annotate every
       *n*\ 't magnitude. This option can also be used for the frame and
       grid intervals. 

    2. An **l** is appended to the *tickinfo* string. Then, log10 of the
       tick value is plotted at every integer log10 value.

    3. A **p** is appended to the *tickinfo* string. Then,
       annotations appear as 10 raised to log10 of the tick value.

    For power axes: Annotations can be specified in one of two ways:

    1. *stride* sets the regular annotation interval.

    2. A **p** is appended to the *tickinfo* string. Then, the annotation interval is
       expected to be in transformed units, but the annotation value will
       be plotted as untransformed units. E.g., if *stride* = 1 and *power*
       = 0.5 (i.e., sqrt), then equidistant annotations labeled 1-4-9...  will appear.

    These GMT parameters can affect the appearance of the map boundary:
    :ref:`MAP_ANNOT_MIN_ANGLE <MAP_ANNOT_MIN_ANGLE>`, :ref:`MAP_ANNOT_MIN_SPACING <MAP_ANNOT_MIN_SPACING>`,
    :ref:`FONT_ANNOT_PRIMARY <FONT_ANNOT_PRIMARY>`, :ref:`FONT_ANNOT_SECONDARY <FONT_ANNOT_SECONDARY>`,
    :ref:`MAP_ANNOT_OFFSET_PRIMARY <MAP_ANNOT_OFFSET_PRIMARY>`,
    :ref:`MAP_ANNOT_OFFSET_SECONDARY <MAP_ANNOT_OFFSET_SECONDARY>`,
    :ref:`MAP_ANNOT_ORTHO <MAP_ANNOT_ORTHO>`, :ref:`MAP_FRAME_AXES <MAP_FRAME_AXES>`, :ref:`MAP_DEFAULT_PEN <MAP_DEFAULT_PEN>`,
    :ref:`MAP_FRAME_TYPE <MAP_FRAME_TYPE>`, :ref:`FORMAT_GEO_MAP <FORMAT_GEO_MAP>`, :ref:`MAP_FRAME_PEN <MAP_FRAME_PEN>`,
    :ref:`MAP_FRAME_WIDTH <MAP_FRAME_WIDTH>`, :ref:`MAP_GRID_CROSS_SIZE_PRIMARY <MAP_GRID_CROSS_SIZE_PRIMARY>`,
    :ref:`MAP_GRID_PEN_PRIMARY <MAP_GRID_PEN_PRIMARY>`, :ref:`MAP_GRID_CROSS_SIZE_SECONDARY <MAP_GRID_CROSS_SIZE_SECONDARY>`,
    :ref:`MAP_GRID_PEN_SECONDARY <MAP_GRID_PEN_SECONDARY>`, :ref:`FONT_TITLE <FONT_TITLE>`, :ref:`FONT_LABEL <FONT_LABEL>`,
    :ref:`MAP_LINE_STEP <MAP_LINE_STEP>`, :ref:`MAP_ANNOT_OBLIQUE <MAP_ANNOT_OBLIQUE>`,
    :ref:`FORMAT_CLOCK_MAP <FORMAT_CLOCK_MAP>`, :ref:`FORMAT_DATE_MAP <FORMAT_DATE_MAP>`,
    :ref:`FORMAT_TIME_PRIMARY_MAP <FORMAT_TIME_PRIMARY_MAP>`, :ref:`FORMAT_TIME_SECONDARY_MAP <FORMAT_TIME_SECONDARY_MAP>`,
    :ref:`TIME_LANGUAGE <TIME_LANGUAGE>`, :ref:`TIME_WEEK_START <TIME_WEEK_START>`,
    :ref:`MAP_TICK_LENGTH_PRIMARY <MAP_TICK_LENGTH_PRIMARY>`,
    and :ref:`MAP_TICK_PEN_PRIMARY <MAP_TICK_PEN_PRIMARY>`; see the :doc:`gmt.conf` man page for details.
