# PyGMT v0.15.0 released
**We're excited to announce the release of PyGMT v0.15.0! π This minor release includes nice enhancements, and documentation improvements.**
**Here are the highlights** :tada::
* One new gallery example and two new tutorials to help users get started and explore new features
* `Figure.shift_origin` now supports shifting origins temporarily when used as a context manager
* PyGMT documentation is now available as [HTML ZIP](https://github.com/GenericMappingTools/pygmt/releases/download/v0.15.0/pygmt-docs.zip) archive and in [PDF](https://github.com/GenericMappingTools/pygmt/releases/download/v0.15.0/pygmt-docs.pdf) format for offline reference
| Focal mechanisms as beachballs (`Figure.meca`) | Creating complex legends (`Figure.legend`) | Plotting horizontal & vertical lines (`Figure.hlines`, `Figure.vlines`)|
|:---:|:---:|:---:|
|[](https://www.pygmt.org/v0.15.0/tutorials/advanced/focal_mechanisms.html)| [](https://www.pygmt.org/v0.15.0/tutorials/advanced/legends.html) | [](https://www.pygmt.org/v0.15.0/gallery/lines/hlines_vlines.html)|
**Nice enhancements :sparkles:**:
* Support typesetting apostrophe (') and backtick (`). What you type is what you see! ([#3105](https://github.com/GenericMappingTools/pygmt/pull/3105))
* GMTDataArrayAccessor: Support passing more readable values using enums GridRegistration and GridType for grid registration and type ([#3696](https://github.com/GenericMappingTools/pygmt/pull/3696))
* `pygmt.grdfill`: Pythonic :snake: parameters `constantfill`/`gridfill`/`neighborfill`/`splinefill` for different hole-filling algorithms
Read through the [changelog](https://www.pygmt.org/v0.15.0/changes.html) for the full list of changes. Installation/upgrade :arrow_up: instructions are at https://www.pygmt.org/v0.15.0/install.html! Note that this version is cross-compatible with GMT 6.4 - 6.5, but it requires Python 3.11+ :snake:, NumPy 1.25+, pandas 2.0+, and Xarray 2023.04+ following our [support policy for GMT and other package dependencies](https://www.pygmt.org/v0.15.0/minversions.html). Go try it online at [try-gmt](https://github.com/GenericMappingTools/try-gmt) :rocket:.
As usual, please feel free to report any bugs :beetle: with the [issue template on GitHub](https://github.com/GenericMappingTools/pygmt/issues/new?assignees=&labels=bug&template=bug_report.yaml). Your feedback is what helps us to improve π! For example, this bug report at issue [#3104](https://github.com/GenericMappingTools/pygmt/issues/3104) sparked off a major refactoring by @seisman at PR [#3132](https://github.com/GenericMappingTools/pygmt/pull/3132) that removed a ton of workarounds in PyGMT's codebase related to spaces and funny characters!
### :railway_track: Roadmap to future releases
While the team continues to enhance functionality and fix bugs, there are still plenty of features and improvements we'd like to add! Check out the [good first issue label](https://github.com/GenericMappingTools/pygmt/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) on GitHub or the list below for things you can help with!
- **PyGMT Logo**
Thanks to the contributions of [@sfrooti](https://github.com/sfrooti), we're very close to having an official logo for PyGMT. If you'd like to provide feedback during the early stages of the design process, please leave your comments on [issue #1404](https://github.com/GenericMappingTools/pygmt/issues/1404) or [PR #3849](https://github.com/GenericMappingTools/pygmt/pull/3849). Stay tuned!
- Features/enhancements :sparkles:
- Wrap GMT moduls: [clip](https://github.com/GenericMappingTools/pygmt/pull/1779), [coupe](https://github.com/GenericMappingTools/pygmt/issues/2019), [earthtide](https://github.com/GenericMappingTools/pygmt/pull/1824), [fitcircle](https://github.com/GenericMappingTools/pygmt/pull/1550), [movie](https://github.com/GenericMappingTools/pygmt/issues/1347), [polar](https://github.com/GenericMappingTools/pygmt/issues/2358), and [sac](https://github.com/GenericMappingTools/pygmt/issues/2358)
- Implement high-level methods of `Figure.plot` and `Figure.plot3d` ([#2797](https://github.com/GenericMappingTools/pygmt/issues/2797)): `Figure.scatter`, `Figure.choropleth`, `Figure.errorbar`, `Figure.stem`, `Figure.fill_between`
- Implement high-level methods of `Figure.basemap` or `Figure.coast` ([#2831](https://github.com/GenericMappingTools/pygmt/issues/2831)): `Figure.scale_bar`, `Figure.directionrose`, `Figure.magneticrose`
- Documentation improvements :book:
- Add a beginner :beginner: friendly PyGMT tutorial that is a good roadmap for new GMT/PyGMT users ([#770](https://github.com/GenericMappingTools/pygmt/issues/770))
- Add a tutorial explaining the generally accepted input types ([#1268](https://github.com/GenericMappingTools/pygmt/issues/1268))
Please don't be shy to [reach out on GitHub](https://github.com/GenericMappingTools/pygmt) if you're interested in contributing :smile:! Also have a look at our [Contributors Guide](https://www.pygmt.org/v0.15.0/contributing.html) to figure out how you can help and get started :rocket:.
### :warning: Upcoming deprecations
- **v0.16.0 (Planned for June 2025)**
- Drop support of pandas<=2.0.0 and Xarray<=2023.5
- `pygmt.clib`: The `virtualfile_from_vectors` method takes a sequence of vectors as its single argument, rather than passing multiple vectors as positional arguments (FutureWarning raised since PyGMT v0.14.0)
- **v0.19.0 (Planned for March 2026)**
* `pygmt.grdfill`: Deprecate parameter `no_data` to `hole` (deprecated since v0.15.0)
* `pygmt.grdfill`: Deprecate parameter `mode`, use parameters `constantfill`/`gridfill`/`neighborfill`/`splinefill` instead (deprecated since v0.15.0)
- **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](https://github.com/GenericMappingTools/pygmt/pull/1316))
The compatibility matrix for GMT, Python, and the required core package dependencies NumPy, pandas, and Xarray is listed at https://www.pygmt.org/v0.15.0/minversions.html, so make sure you keep things up to date!
### :world_map: Conference presentations/workshops/sprints
* The GMT and PyGMT teams have organized an AGU pre-conference workshop for GMT and PyGMT :computer: in Washington, D.C. ποΈ on 2024-12-08: **PREWS9 Mastering Geospatial Visualizations with GMT/PyGMT**. If you could not make it to the AGU Annual meeting this year in-person, or you missed the workshop for other reasons, you can still go through the workshop on your own, as the materials are freely available from https://www.generic-mapping-tools.org/agu24workshop/intro.html.
* Besides this workshop there was an union-wide memorial session for Paul Wessel: **U019 - The impact of GMT in the Earth, Ocean and Space sciences: Whatβs next?**. Check out the slides for the PyGMT talk **PyGMT β Accessing and Integrating GMT with Python and the Scientific Python Ecosystem**, which are free available from https://doi.org/10.6084/m9.figshare.28049495.
| GMT/PyGMT preworkshop | PyGMT talk |
|:--:|:--:|
| [](https://www.generic-mapping-tools.org/agu24workshop/intro.html) | [](https://figshare.com/articles/presentation/PyGMT_Accessing_and_Integrating_GMT_with_Python_and_the_Scientific_Python_Ecosystem_AGU24_U12B-05_/28049495?file=51279815) |
**P.S.** Share the word on Instagram [@genericmappingtools](https://www.instagram.com/genericmappingtools/) :camera_with_flash: and ResearchGate!