# PyGMT v0.4.0 released

**URL:** <https://forum.generic-mapping-tools.org/t/pygmt-v0-4-0-released/1813>\
**Category:** Announcements\
**Created:** [June 21, 2021, 6:25am UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-4-0-released/1813 "2021-06-21T06:25:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![weiji14](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/weiji14/32/33_2.png) [@weiji14](https://forum.generic-mapping-tools.org/u/weiji14)\
**Post date:** [June 21, 2021, 6:25am UTC](https://forum.generic-mapping-tools.org/t/pygmt-v0-4-0-released/1813/1 "2021-06-21T06:25:14Z")

</div>

**Announcing [PyGMT v0.4.0](https://github.com/GenericMappingTools/pygmt/releases/tag/v0.4.0), covering 10 new PyGMT functions and methods!**

The PyGMT team is pleased to present version [v0.4.0](https://www.pygmt.org/v0.4.0), a release with 6 new gallery examples, 2 new tutorials, an improved contributors guide, numerous bug fixes, and much more! The highlights for this release include:

- Added tutorials for plotting datetime data ([#1193](https://github.com/GenericMappingTools/pygmt/pull/1193)) and vectors ([#1070](https://github.com/GenericMappingTools/pygmt/pull/1070))
- Support tab auto-completion in Jupyter ([#1282](https://github.com/GenericMappingTools/pygmt/pull/1282))
- Minimum required GMT version is now 6.2.0 or newer ([#1321](https://github.com/GenericMappingTools/pygmt/pull/1321))

The full list of changes can be found in the [changelog](https://www.pygmt.org/v0.4.0/changes.html#release-v0-4-0-2021-06-20). Installation/Upgrade instructions can be found at [Installing — PyGMT](https://www.pygmt.org/v0.4.0/install.html), or you can try it online first at [try-gmt](https://github.com/GenericMappingTools/try-gmt)! A big shout out to [@noorbuchi](https://github.com/noorbuchi), [@cklima616](https://github.com/cklima616), [@munzekm](https://github.com/munzekm), and [@Nathandloria](https://github.com/Nathandloria) from Allegheny College for making two cool tutorials for [plotting datetime data](https://www.pygmt.org/v0.4.0/tutorials/date_time_charts.html) and [vectors](https://www.pygmt.org/v0.4.0/tutorials/vectors.html). Cheers to [@eemcmullan](https://github.com/eemcmullan) for adding examples for the three oblique mercator projections ([1](https://www.pygmt.org/v0.4.0/projections/cyl/cyl_oblique_mercator_1.html), [2](https://www.pygmt.org/v0.4.0/projections/cyl/cyl_oblique_mercator_2.html), and [3](https://www.pygmt.org/v0.4.0/projections/cyl/cyl_oblique_mercator_3.html)). Thank you also to [@itsabhianant](https://github.com/itsabhianant), [@MichaeINeumann](https://github.com/MichaeINeumann), [@xdshivani](https://github.com/xdshivani), [@alperen-kilic](https://github.com/alperen-kilic), [@Lawqup](https://github.com/Lawqup), [@mdtanker](https://github.com/mdtanker), [@shahid-0](https://github.com/shahid-0), and @vitorgt for some improvements and quick fixes to our documentation; we appreciate all contributions be it big or small and welcome new contributors to PyGMT 😄!

[![Gallery in PyGMT v0.4.0](https://canada1.discourse-cdn.com/flex047/uploads/gmt/original/2X/e/e0906c70dbdacd1bda10b03d8937b55eaa346493.png)](https://www.pygmt.org/v0.4.0/gallery/index.html)

### ✨ New Features

One thing we sneaked in is support for plotting 🌐 [geopandas Data Structures](https://geopandas.readthedocs.io/en/latest/docs/user_guide/data_structures.html#data-structures) (e.g. a [geopandas.GeoDataFrame](https://geopandas.readthedocs.io/en/latest/docs/user_guide/data_structures.html#geodataframe)) directly with PyGMT, though this is not well documented yet (but see [#608](https://github.com/GenericMappingTools/pygmt/issues/608)). Other than that, there are plenty of new functions this time around such as:

- [blockmean](https://www.pygmt.org/v0.4.0/api/generated/pygmt.blockmean.html) for block averaging data tables by @maxrjones
- [rose](https://www.pygmt.org/v0.4.0/api/generated/pygmt.Figure.rose.html) for plotting [polar histogram and windrose diagrams](https://www.pygmt.org/dev/gallery/histograms/rose.html#sphx-glr-gallery-histograms-rose-py) by [@michaelgrund](https://github.com/michaelgrund)
- [velo](https://www.pygmt.org/v0.4.0/api/generated/pygmt.Figure.velo.html) for plotting [velocity arrows and confidence ellipses](https://www.pygmt.org/v0.4.0/gallery/seismology/velo_arrow_ellipse.html) by [@lhoupert](https://github.com/lhoupert)
- [wiggle](https://www.pygmt.org/v0.4.0/api/generated/pygmt.Figure.wiggle.html) for plotting [anomalies along tracks](https://www.pygmt.org/v0.4.0/gallery/lines/wiggle.html) by @core-man
- Several grd\* functions by @willschlitzer!

All of this won’t be possible without our great crew of PyGMT developers 👨‍💻👩‍💻 - @seisman, @weiji14, [@michaelgrund](https://github.com/michaelgrund), @maxrjones, @willschlitzer, and @core-man. Also a big thank you to @pwessel and the core GMT team for fixing bugs 🐛 and pushing out the [GMT 6.2.0 release](https://flint.soest.hawaii.edu/t/gmt-6-2-0-released/1757)!

### 🛤 Roadmap to [v0.5.0](https://github.com/GenericMappingTools/pygmt/milestone/8)

For the next minor release, here are some things we have planned (many of which we need help with!):

- 🌐 + 🐍 [Design a fresh new PyGMT logo!](https://flint.soest.hawaii.edu/t/design-for-pygmt-logo/1346)
- Integration with ObsPy 🐍 to process seismological data ([#967](https://github.com/GenericMappingTools/pygmt/issues/967))
- Add a beginner 🔰 friendly PyGMT tutorial that is a good roadmap for new GMT/PyGMT users ([#770](https://github.com/GenericMappingTools/pygmt/issues/770))
- More features/enhancements ✨:
  - Allow passing in a list/array of angle/font/justify values to text ([#483](https://github.com/GenericMappingTools/pygmt/issues/483))
  - Wrap more GMT modules, e.g., xyz2grd ([#636](https://github.com/GenericMappingTools/pygmt/pull/636)) and triangulate ([#731](https://github.com/GenericMappingTools/pygmt/pull/731))
  - Add `Figure.hlines()` and `Figure.vlines()` for plotting horizontal and vertical lines ([#670](https://github.com/GenericMappingTools/pygmt/issues/670))

### ⚠ Upcoming deprecations

No one likes software that breaks. To ensure a bug-free product and consistency, these are some of the deprecations coming up for future releases of PyGMT:

- v0.5.0 - [NEP29](https://numpy.org/neps/nep-0029-deprecation_policy.html#support-table): drop support for NumPy 1.17 so that NumPy 1.18 or above is required
- v0.6.0 - Aliases “columns” and “sizes” are replaced by “incols” and “size” respectively (a FutureWarning is raised in PyGMT v0.4.0)
- v1.0.0 (?) - Short form aliases (e.g. ‘R’) will not work if long form aliases (e.g. ‘region’) are available (a SyntaxWarning is raised in PyGMT v0.4.0, see [#1316](https://github.com/GenericMappingTools/pygmt/pull/1316))

The compatibility matrix will be listed on [PyGMT](https://www.pygmt.org/v0.4.0/#compatibility-with-python-and-gmt-versions), so make sure you keep things up to date!

### 🗺 Community events

We’re doing a few outreach events in the second half of the year, and welcome people to take part!

- 🐍 [PyGMT Sprint at SciPy 2021](https://www.scipy2021.scipy.org/sprints) (17-18 Jul 2021) - the sprint proposal has been submitted and we welcome people to get involved during the sprint and with creating good issues in the next few weeks
- 👭 [Earth Science Women’s Network Developer workshop](https://eswnonline.org/29375-2) (17-19 Aug 2021) - registrations has closed, and further announcements will be made in early July.
- 🌎 [AGU 2021 sessions](https://flint.soest.hawaii.edu/t/agu-2021-abstract-s/1803) (13-17 Dec 2021), abstracts due 4 Aug 2021!

If you have time, feel free to reach out to the PyGMT team during those events! We have quarterly PyGMT community meetings (see the last one in [mid June 2021](https://flint.soest.hawaii.edu/t/pygmt-community-zoom-meeting-tuesday-15-june-2021-utc-1700)), and are active on this [forum](https://flint.soest.hawaii.edu/c/questions/pygmt-q-a) and [GitHub](https://github.com/GenericMappingTools/pygmt) too. That’s all for now 😄

Enjoy 🥳

**P.S.** Feel free to share the word on twitter 🐦, #PyGMT [@gmt\_dev](https://twitter.com/gmt_dev)!
