Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ authors:
orcid: 'https://orcid.org/0000-0001-5708-7336'
identifiers:
- type: doi
value: 10.5281/zenodo.18080259
value: 10.5281/zenodo.19398871
repository-code: 'https://github.com/GenericMappingTools/pygmt'
license: BSD-3-Clause
version: 0.18.0
date-released: '2026-01-12'
version: 0.19.0
date-released: '2026-07-05'
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ Feel free to cite our work in your research using the following BibTeX:

```
@software{
pygmt_2026_18080259,
pygmt_2026_19398871,
author = {Tian, Dongdong and

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

git shortlog -sne --group=author --group=trailer:co-authored-by:

  1848  Dongdong Tian <seisman.info@gmail.com>
   685  Wei Ji Leong <23487320+weiji14@users.noreply.github.com>
   603  Yvonne Fröhlich <94163266+yvonnefroehlich@users.noreply.github.com>
   309  Michael Grund <23025878+michaelgrund@users.noreply.github.com>
   258  Leonardo Uieda <leouieda@gmail.com>
   247  Will Schlitzer <schlitzer90@gmail.com>
   204  Max Jones <14077947+maxrjones@users.noreply.github.com>
    55  Jiayuan Yao <coreman.seism@gmail.com>
    22  Xingchen He <chuanjun@stu.cdut.edu.cn>
    15  Liam Toney <38269494+liamtoney@users.noreply.github.com>
     7  yohaimagen <mayochay@gmail.com>
     5  Jing-Hui Tong <86273921+JingHuiTong@users.noreply.github.com>

I guess we should move Jiayuan Yao and Xingchen He before Liam Toney.

Leong, Wei Ji and
Fröhlich, Yvonne and
Expand All @@ -160,12 +160,12 @@ Feel free to cite our work in your research using the following BibTeX:
Uieda, Leonardo and
Wessel, Paul},
title = {{PyGMT: A Python interface for the Generic Mapping Tools}},
month = jan,
month = jul,
year = 2026,
publisher = {Zenodo},
version = {0.18.0},
doi = {10.5281/zenodo.18080259},
url = {https://doi.org/10.5281/zenodo.18080259}
version = {0.19.0},
doi = {10.5281/zenodo.19398871},
url = {https://doi.org/10.5281/zenodo.19398871}
}
```

Expand Down
1 change: 1 addition & 0 deletions doc/_static/version_switch.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
var all_versions = {
'latest': 'latest',
'dev': 'dev',
'v0.19.0': 'v0.19.0',
'v0.18.0': 'v0.18.0',
'v0.17.0': 'v0.17.0',
'v0.16.0': 'v0.16.0',
Expand Down
102 changes: 102 additions & 0 deletions doc/changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,107 @@
# Changelog

## Release v0.19.0 (2026/07/05)

[![Digital Object Identifier for PyGMT v0.19.0](https://img.shields.io/badge/DOI-10.5281/zenodo.19398871-blue)](https://doi.org/10.5281/zenodo.19398871)

### 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 Figure.pygmtlogo method ([#4616](https://github.com/GenericMappingTools/pygmt/pull/4616))
* 🎉 Nineteenth minor release of PyGMT 🎉
Comment thread
seisman marked this conversation as resolved.
* Six new plotting methods, two new grid modules, and eight new gallery examples * New `Frame`/`Axis` classes for setting frame and axes

### New Features

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

### Enhancements

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

### Deprecations

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

### Bug Fixes

* Figure.set_panel: Fix the bug when panel is not set ([#4628](https://github.com/GenericMappingTools/pygmt/pull/4628))

### Documentation

* Add a tutorial for plotting features on a 3-D surface ([#4466](https://github.com/GenericMappingTools/pygmt/pull/4466))
* Add basic tutorial "Plotting single-parameter symbols" ([#3598](https://github.com/GenericMappingTools/pygmt/pull/3598))
* Add gallery example for 3-D bar plot ([#4315](https://github.com/GenericMappingTools/pygmt/pull/4315))
* Add gallery example for directional roses ([#4010](https://github.com/GenericMappingTools/pygmt/pull/4010))
* Add gallery example for magnetic rose ([#4381](https://github.com/GenericMappingTools/pygmt/pull/4381))
* Add gallery example showing how to fill the area between two curves ([#3168](https://github.com/GenericMappingTools/pygmt/pull/3168))
* Add the Spilhaus projection to the supported GMT projections ([#4657](https://github.com/GenericMappingTools/pygmt/pull/4657))
* Update scalebar gallery example using the high-level Figure.scalebar method ([#4382](https://github.com/GenericMappingTools/pygmt/pull/4382))
* Add contributing guides for wrapping a GMT module ([#1687](https://github.com/GenericMappingTools/pygmt/pull/1687))

### Maintenance

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

**Full Changelog**: <https://github.com/GenericMappingTools/pygmt/compare/v0.18.0...v0.19.0>

### Contributors

* [Dongdong Tian](https://github.com/seisman)
* [Yvonne Fröhlich](https://github.com/yvonnefroehlich)
* [Xingchen He](https://github.com/Chuan1937)
* [Will Schlitzer](https://github.com/willschlitzer)
* [Wei Ji Leong](https://github.com/weiji14)
* [Michael Grund](https://github.com/michaelgrund)
* [@Bingtagui404](https://github.com/Bingtagui404)
* [Max Jones](https://github.com/maxrjones)

---

## Release v0.18.0 (2026/01/12)

[![Digital Object Identifier for PyGMT v0.18.0](https://img.shields.io/badge/DOI-10.5281/zenodo.18080259-blue)](https://doi.org/10.5281/zenodo.18080259)
Expand Down
1 change: 1 addition & 0 deletions doc/minversions.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ compatibility reasons.
| PyGMT Version | Documentation | GMT | Python | NumPy | pandas | xarray |
|---|---|---|---|---|---|---|
| [Dev][]* | <doc:dev>, [HTML+ZIP](doc:dev/pygmt-docs.zip), [PDF](doc:dev/pygmt-docs.pdf) | {{ requires.gmt }} | {{ requires.python }} | {{ requires.numpy }} | {{ requires.pandas }} | {{ requires.xarray }} |
| <tag:v0.19.0> | <doc:v0.19.0>, <html:v0.19.0>, <pdf:v0.19.0> | >=6.5.0 | >=3.12 | >=2.1 | >=2.3 | >=2024.7 |
| <tag:v0.18.0> | <doc:v0.18.0>, <html:v0.18.0>, <pdf:v0.18.0> | >=6.5.0 | >=3.12 | >=2.0 | >=2.2 | >=2024.5 |
| <tag:v0.17.0> | <doc:v0.17.0>, <html:v0.17.0>, <pdf:v0.17.0> | >=6.5.0 | >=3.11 | >=1.26 | >=2.2 | >=2023.10 |
| <tag:v0.16.0> | <doc:v0.16.0>, <html:v0.16.0>, <pdf:v0.16.0> | >=6.4.0 | >=3.11 | >=1.26 | >=2.1 | >=2023.07 |
Expand Down