Open weiji14 opened 3 years ago
My interpretation of this 'feature request' is that
grdimage
could automatically add x-axis and y-axis labels/annotations to the plot, and include a title about the z-variable name (without the user setting it explicitly).
The idea sounds interesting, but I think it's challenging to implement it in PyGMT.
The main problem is, PyGMT is "stateless". When calling grdimage
, we don't know if users have already added labels/annotations/titles by calling basemap
. Even if PyGMT is "stateful", we also don't know if users want to add labels/annotations/titles themselves later.
However, I find the automatic labels/annotations/titles feature is still very appealing when users want to quickly view a DataArray.
In https://github.com/GenericMappingTools/pygmt/pull/2372, I've added a simple imshow()
method to the GMTDataArrayAccessor class. With the new method, now it's possible to view a DataArray using a single line of code:
Here is an example using the feature implemented in PR #2372:
from pygmt.datasets import load_earth_relief
grid = load_earth_relief()
grid.gmt.imshow()
Currently, it shows an image like this (which definitely can be greatly improved):
For comparison, to view a DataArray in matplotlib:
from pygmt.datasets import load_earth_relief
import matplotlib.pyplot as plt
grid = load_earth_relief()
grid.plot()
plt.show()
The image is:
Description of the desired feature
Originally posted by @leouieda as a comment about
xarray
integration at https://hackmd.io/@pygmt/SkVmX_20d:My interpretation of this 'feature request' is that
grdimage
could automatically add x-axis and y-axis labels/annotations to the plot, and include a title about the z-variable name (without the user setting it explicitly). Something based on https://github.com/pydata/xarray/pull/519.The auto-labels/titles currently comes for free in
xarray
through thexarray.DataArray.plot.imshow()
function. We could inspect the source code at https://github.com/pydata/xarray/blob/v0.19.0/xarray/plot/plot.py#L244 to see how this can be implemented in PyGMT.Are you willing to help implement and maintain this feature? Long term stuff for PyGMT > v0.6.0