Making your first figure¶
Welcome to PyGMT! Here we’ll cover some of basic concepts, like creating simple figures and naming conventions.
This tutorial assumes the use of a Python notebook, such as IPython
To see the figures while using a Python script instead, use
fig.show(method="external") to display the figure in the default PDF viewer.
To save the figure, use
is the desired name and file extension for the saved figure.
Loading the library¶
All modules and figure generation is accessible from the
pygmt top level
All figure generation in PyGMT is handled by the
Start a new figure by creating an instance of this class:
Add elements to the figure using its methods. For example, let’s use
pygmt.Figure.basemap to start the creation of a map. We’ll use the
to provide the longitude and latitude bounds, the
projection parameter to set
the projection to Mercator (M) and the map width to 15 cm, and the
parameter to generate a frame with automatic tick and annotation spacings.
fig.basemap(region=[-90, -70, 0, 20], projection="M15c", frame=True)
Now we can add coastlines using
pygmt.Figure.coast to this map using the
default resolution, line width, and color:
To see the figure, call
You can also set the map region, projection, and frame type directly in other methods
Use the method
pygmt.Figure.savefig to save your figure to a file. The figure
format is inferred from the extension.
Note for experienced GMT users¶
You have probably noticed several things that are different from classic command-line GMT. Many of these changes reflect the new GMT modern execution mode that is part of GMT 6.
As a general rule, the
psprefix has been removed from all
ps*modules (PyGMT methods). For example, the name of the GMT 5 module
coastin GMT 6 and PyGMT. The exceptions are:
psxywhich is now
psxyzwhich is now
psscalewhich is now
More details can be found in the GMT cookbook introduction to modern mode.
A few are PyGMT exclusive (like the
The PyGMT parameters (called options or arguments in GMT) don’t use the GMT 1-letter syntax (R, J, B, etc). We use longer aliases for these parameters and have some Python exclusive names. The mapping between the GMT parameters and their PyGMT aliases should be straightforward. For some modules, these aliases are still being developed.
listsas well as strings like
If a GMT option has no arguments (like
-Baf), use a
Truein Python. An empty string would also be acceptable. For repeated parameters, such as
-B+Loleron -Bxaf -By+lm, provide a
frame=["+Loleron", "xaf", "y+lm"].
There is no output redirecting to a PostScript file. The figure is generated in the background and will only be shown or saved when you ask for it.
Total running time of the script: ( 0 minutes 2.828 seconds)