Skip to content

v0.19.0

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Jul 15:08
fb1ec7d

Release v0.19.0 (2026/07/07)

Digital Object Identifier for PyGMT v0.19.0

Highlights

  • A PyGMT paper has been accepted for publication in Geochemistry, Geophysics, Geosystems.
    The citation is as follows:

    Tian, D., Fröhlich, Y., Leong, W. J., Grund, M., Schlitzer, W., Jones, M., Uieda, L., Luis, J. M. F. (2026).
    PyGMT: Bridging Python and the Generic Mapping Tools for Geospatial Visualization and Analysis.
    Geochemistry, Geophysics, Geosystems, 27, e2026GC013105. https://doi.org/10.1029/2026GC013105

    Feel free to cite this paper when using PyGMT in your research.

  • PyGMT now has an official logo, which is available via the Figure.pygmtlogo method (#4616)

  • 🎉 Nineteenth minor release of PyGMT 🎉

  • Six new high-level plotting methods and two new grid processing functions

  • Eight new gallery examples and tutorials

  • New Frame/Axis classes for setting frame and axes

New Features

  • Add Figure.choropleth for plotting choropleth maps (#2798)
  • Add Figure.directional_rose for plotting a directional rose on map (#4025, #4702)
  • Add Figure.fill_between for filling between two curves (#4679, #4698, #4696, #4692)
  • Add Figure.magnetic_rose for plotting a magnetic rose on map (#4051, #4702)
  • Add Figure.paragraph for typesetting one or multiple paragraphs of text strings (#3709, #4605)
  • Add Figure.scalebar for plotting a scale bar on maps (#4015)
  • Add the Frame/Axis class for setting frame and axes (#4406, #4593, #4589, #4520, #4591)
  • Add pygmt.grdmask for creating mask grid from polygons or point coverage (#4463)
  • Add pygmt.grdpaste for joining two grids along their common edge (#4399)

Enhancements

  • Add a note/warning that PS_CONVERT is not supported (#4342)
  • Add filtering tags for gallery examples of projections (#4643)
  • Figure.colorbar: Add parameters dpi/monochrome (#4501, #4499)
  • Figure.colorbar: Add parameters label/unit/annot/tick/grid and more to set colorbar annotations/labels (#4407)
  • Figure.grdview: Add parameters smooth and surftype/dpi/mesh_fill/nan_transparent/monochrome to control surface types (#4234, #4444)
  • Figure.subplot: Add parameters tag/tag_box/tag_position/tag_orientation/tag_number_style/tag_font for controlling subplot tagging (#4313)
  • Figure.ternary: Support Frame's xaxis/yaxis/zaxis attributes to set axis settings for a/b/c axes (#4517)
  • Figure.ternary: Add the 'no_clip' parameter for plotting symbols outside the ternary diagram (#4707)
  • Figure.text: Allow passing a sequence of offset to the 'offset' parameter (#4652)
  • Implement the frame='none' syntax for no frames (#4404)
  • Support passing np.timedelta64 to parameters that expect a sequence (e.g., 'region') (#4358)
  • BREAKING Raise GMTTypeError exception for unsupported image dtypes (#4673)
  • pygmt.grdfilter: Add parameters filter/width/highpass to set the filter and support Pythonic arguments for distance (#4401, #4405)
  • pygmt.grdgradient: Add parameters normalize/norm_ambient/norm_amp/norm_sigma/norm_offset for normalization (#4365)
  • pygmt.which: Support long-form arguments for the download parameter (#4429)

Deprecations

  • Figure.set_panel: Deprecate parameter 'fixedlabel' to 'tag' (Will be removed in v0.23.0) (#4393)
  • pygmt.grdclip: Remove parameter 'new' (Deprecated since v0.15.0) (#4343)
  • pygmt.grdfill: Remove parameter 'mode'/'no_data' (Deprecated since v0.15.0) (#4345, #4344)
  • utils.sequence_join: Remove parameter 'separator' (Deprecated since v0.17.0) (#4346)

Bug Fixes

  • Figure.set_panel: Fix the bug when panel is not set (#4628)

Documentation

  • Add advanced tutorial for plotting features on a 3-D surface (#4466)
  • Add basic tutorial for plotting single-parameter symbols (#3598)
  • Add gallery example for creating a 3-D bar plot (#4315)
  • Add gallery example for plotting the PyGMT logo (#4715)
  • Add gallery example for plotting directional roses (#4010)
  • Add gallery example for plotting magnetic roses (#4381)
  • Add gallery example showing how to fill the area between two curves (#3168)
  • Add the Spilhaus projection to the supported GMT projections (#4657)
  • Update scalebar gallery example using the high-level Figure.scalebar method (#4382)
  • Add contributing guides for wrapping a GMT module (#1687)

Maintenance

  • Add typos for source code spelling check (#4690)
  • BREAKING: Figure: Raise GMTParameterError for deprecated parameters U/X/Y/timestamp/xshift/yshift. Previously raise GMTInvalidInput (#4400)
  • BREAKING: Raise GMTParameterError exception for as_most_one parameters. Previously raise GMTInvalidInput (#4383)
  • BREAKING: Raise GMTParameterError exception for as_most_one parameters. Previously raise GMTInvalidInput. Part 2 (#4388)
  • BREAKING: Raise GMTParameterError exception for at_least_one parameters. Previously raise GMTInvalidInput (#4380)
  • BREAKING: Raise GMTParameterError exception for conflicts_with parameters. Previously raise GMTInvalidInput (#4387)
  • BREAKING: Raise GMTParameterError exception for missing required parameters. Previously raise GMTInvalidInput (#4374)
  • BREAKING: Raise GMTValueError if input arrays don't have the same size (#4377)
  • Figure.basemap: Raise a warning on deprecated parameters "map_scale", "rose", and "compass" (#4477)
  • Figure: Refactor how plotting methods are attached to the Figure class (#4612)
  • CI: Bump ghostscript to 10.07.0 (#4476)
  • CI: Test NumPy 2.5 in the GMT Tests workflow (#4693)
  • Clarify human-only authorship and exclude bot contributors (#4640)
  • SPEC 0: Bump minimum supported version to NumPy 2.1, pandas 2.3 and xarray 2024.7 (#4650)
  • Update .pre-commit-config.yaml hooks using dependabot (#4435)

Full Changelog: v0.18.0...v0.19.0

Contributors