Announcing PyGMT release v0.17.0
! This minor release features a newly designed alias system towards a more Pythonic interface.
Here are the highlights
:
- Add support for GMT 6.6.0, while dropping support for GMT 6.4.0 (#4017)
- Implement the new alias system towards a Pythonic interface (#3986, #4000, #3993)
- GMTDataArrayAccessor: Support applying grid operations on the current xarray.DataArray object (#3854)
Nice enhancements
:
- Add the
Boxclass for specifying the box of GMT embellishments (#3995) - Add the
Patternclass for specifying bit and hachure patterns to fill symbols and polygons (#4020) Figure.solar: Support terminator datetime with timezone (#4112)pygmt.binstats: Let the parameterstatisticsupport descriptive arguments (#3012)Figure.logo: Let thestyleparameter support descriptive arguments (#4074)- Let the
verbosparameter support descriptive arguments (#4039)
Read through the changelog for the full list of changes. Installation/upgrade
instructions are at Installing — PyGMT! Note that this version is cross-compatible with GMT 6.5.0 - 6.6.0, but it requires Python 3.11+
, NumPy 1.26+, pandas 2.2+, and Xarray 2023.10+ following our support policy for GMT and other package dependencies. Go try it online at try-gmt
.
As usual, please feel free to report any bugs
with the issue template on GitHub. Your feedback is what helps us to improve
! For example, this issue #3041 and various forum posts like this helped us to realize that GMT’s font size autoscaling for colorbars (introducted in GMT 6.5.0) was potentially confusing, and led us to document a workaround in PR #4126!
Addition to Gallery examples and Technical references
| Text formatting Gallery example Technical reference |
Justification codes Technical reference |
EPSG codes Gallery example |
|---|---|---|
![]() |
![]() |
![]() |
Roadmap to future releases
While the team started to work on a new alias system and continues to enhance functionality, there are still plenty of features and improvements we’d like to add! Check out the good first issue label on GitHub or the list below for things you can help with!
-
PyGMT Logo
Thanks to the contributions of @sfrooti, we’re super close to having an official PyGMT logo. If you’d like to provide any feedback during this stage of the design process, please leave your comments in issue #1404 or PR #3849. Stay tuned! -
Features/enhancements

- Wrap GMT modules: clip, coupe, earthtide, fitcircle, movie, polar, and sac
- Implement high-level methods of
Figure.plotandFigure.plot3d(#2797):Figure.scatter(#3602),Figure.choropleth(#2798),Figure.errorbar,Figure.stem,Figure.fill_between - Implement high-level methods of
Figure.basemaporFigure.coast(#2831):Figure.scale_bar,Figure.directionrose,Figure.magneticrose
-
Documentation improvements

Hacktoberfest just started
! So, please don’t be shy to reach out on GitHub if you’re interested in contributing
! You can have a look at our Contributors Guide to figure out how you can help and get started
.
Upcoming deprecations
- v0.18.0 (Planned for December 2025)
- Drop support for Python<=3.11, numpy<=1.26, and Xarray<=2024.6
pygmt.Figure: Remove the private_preprocess()method (FutureWarning raised since PyGMT v0.16.0)
- v0.19.0 (Planned for March 2026)
pygmt.grdfill: Deprecate parameterno_datatohole(deprecated since v0.15.0)pygmt.grdfill: Deprecate parametermode, use parametersconstantfill/gridfill/neighborfill/splinefillinstead (deprecated since v0.15.0)pygmt.grdclip: Deprecate parameternewtoreplace(deprecated since v0.15.0)utils.sequence_join: Deprecate parameterseparatortosep(deprecated since v0.17.0)
- v0.20.0 (Planned for June 2026)
- Remove deprecated
pygmt.io.load_dataarray(deprecated since v0.16.0) Session.virtualfile_in: Remove deprecated parametersrequired_z/extra_arrays/required_data(deprecated since v0.16.0)
- Remove deprecated
- v1.0.0
- Short form aliases (e.g.
R) will not work if long form aliases (e.g.region) are available (SyntaxWarning raised since PyGMT v0.4.0, see #1316)
- Short form aliases (e.g.
The compatibility matrix for GMT, Python, and the required core package dependencies NumPy, pandas, and Xarray is listed at Minimum Supported Versions — PyGMT, so make sure you keep things up to date!
Conference presentations/workshops/sprints
What conferences would you like to see GMT/PyGMT at next? EGU26? IGARSS? FOSS4G? Are you interested in helping to organize a workshop? Let us know in the comments below!
P.S. Share the word on Instagram @genericmappingtools
and ResearchGate!


