leouieda: @seisman thanks for pushing this forward! It would be good to have a manual method of setting the display since there is no guarantee that the notebook detection always works (and this is by design of jupyter). How about merging the two functions you have into `pygmt.set_display("notebook")` and `pygmt.set_display("external")`?
weiji14: cc @MarkWieczorek who made some comments in #366 (and this PR should ideally close it). Also might want to check out how `tqdm` does it at https://github.com/tqdm/tqdm#ipythonjupyter-integration, not sure if I like their `import` style but it might give you some ideas.

I'd also like to second @leouieda's comments about merging the two functions, since what we need is essentially a boolean True/False toggle (similar to the xarray accessor at #500). 
vercel[bot]: This pull request is being automatically deployed with Vercel ([learn more](https://vercel.link/github-learn-more)).  
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: [https://vercel.com/gmt/pygmt/kwrx6l4dx](https://vercel.com/gmt/pygmt/kwrx6l4dx)  
✅ Preview: [https://pygmt-git-new-display.gmt.vercel.app](https://pygmt-git-new-display.gmt.vercel.app)


seisman: @GenericMappingTools/python @GenericMappingTools/python-contributors @GenericMappingTools/python-maintainers @MarkWieczorek 

This PR changes the way PyGMT displays images in a "**backward-incompatible**" way. It fixes our two oldest issues #269 and #366. You can find more details by reading the long PR description.

Please help test the new design in different environments, give your comments and suggestions, and also try hard to break it and help improve it.
seisman: > I still think we can simplify this Pull Request right down to be focused solely on handling either `display="external"` or `display="notebook"`. Setting the dpi/width seems like a nice to have and out of scope of the original issue at #269 (wasn't mentioned at all in fact). 

Just made the changes to focus on the display method.

> (even better to just have a boolean `external=True/False` flag). 

PyGMT used `external=True/False` in the initial versions, and then decided to use `method="static/external"` when adding the support for NASA WorldWind Web (#132), although the WorldWind Web feature is removed later (#275).

I prefer to use `method="external"` so it's possible to add more display features in the future.

meghanrjones: I will try this out within the next couple days (I am even planning to set up a windows environment 😬) 
seisman: Please note that the current implemention is problematic. The following script only shows Figure 2 when running in one cell in Jupyter notebooks, because the return value of the code block is the Image object returned by `fig2.show()`:
```
import pygmt

fig1 = pygmt.Figure()
fig1.basemap(region=[0, 10, 0, 10], projection="X10c/10c", frame="WSrt+tFigure1")
fig1.show()

fig2 = pygmt.Figure()
fig2.basemap(region=[0, 10, 0, 10], projection="X10c/10c", frame="WSrt+tFigure2")
fig2.show()
```
So I may have to revert some changes and call `IPython.display.display()` instead, but it may cause more problem if we call `IPython.display.display()` and return `IPython.display.Image()`. 

Need some further investigation.
weiji14: > Please note that the current implemention is problematic. The following script only shows Figure 2 when running in one cell in Jupyter notebooks, because the return value of the code block is the Image object returned by `fig2.show()`:
> 
> ```
> import pygmt
> 
> fig1 = pygmt.Figure()
> fig1.basemap(region=[0, 10, 0, 10], projection="X10c/10c", frame="WSrt+tFigure1")
> fig1.show()
> 
> fig2 = pygmt.Figure()
> fig2.basemap(region=[0, 10, 0, 10], projection="X10c/10c", frame="WSrt+tFigure2")
> fig2.show()
> ```
> 
> So I may have to revert some changes and call `IPython.display.display()` instead, but it may cause more problem if we call `IPython.display.display()` and return `IPython.display.Image()`.
> 
> Edit: If we call `IPython.display.display()` and return `IPython.display.Image()`, and run the above script in one cell, we will see Figure 2 twice.

My knee-jerk thought is to just put those two code blocks in two different cells... Haven't used matplotlib in a while, but does the matplotlib `fig.show` method display two images when called that way?
seisman: > Haven't used matplotlib in a while, but does the matplotlib `fig.show` method display two images when called that way?

`plt.show()` returns `None`, and the following script shows two images.
```
import matplotlib.pyplot as plt

plt.plot([0, 1, 2], [2, 3, 4])
plt.show()

plt.plot([10, 11, 12], [12, 13, 14])
plt.show()
```

![image](https://user-images.githubusercontent.com/3974108/111921480-32011e80-8a6b-11eb-93b5-09d80c045bc4.png)

seisman: > For plotting the Image in another Jupyter notebook cell? Or plotting it again and again without having to call fig.show() (which calls psconvert). The IPython.display.Image object also has other methods (e.g. data which gives raw image data) that could be used.

Letting `Figure.show()` return an image sounds useful, but IMHO it brings more troubles and behaves inconsistently in different use cases. I believe Leo did the same thing in his original branch/PR (#528) due to the same reasons.

I think we should **NOT** let `Figure.show()` return the Image object. 

If someone wants to reuse the image, they can still save the image to disk and re-read it into memory.

Or we could add new a property to the Figure.class, for example `Figure.raw_image` which save the raw image data of the last `Figure.show()` call. 
seisman: @weiji14 Any more comments on this PR?
weiji14: > @weiji14 Any more comments on this PR?

I would prefer if someone else reviews this as well, e.g. @meghanrjones if she has time. I'm still somewhat on the fence about not returning the IPython.display.Image object as you recommend in https://github.com/GenericMappingTools/pygmt/pull/529#issuecomment-805508310, but will see what others say. Other than that, I have no major issues with the rest of the implementation in this PR.
meghanrjones: > > @weiji14 Any more comments on this PR?
> 
> I would prefer if someone else reviews this as well, e.g. @meghanrjones if she has time. I'm still somewhat on the fence about not returning the IPython.display.Image object as you recommend in [#529 (comment)](https://github.com/GenericMappingTools/pygmt/pull/529#issuecomment-805508310), but will see what others say. Other than that, I have no major issues with the rest of the implementation in this PR.

Yes, it's hard to believe so many days have passed since I said that I would review 😕. Sorry for that - I will work on this today unless Paul requests any 6.2 tasking.
meghanrjones: I am running into many problems with #1061, which is why I think it is necessary to merge #1062 first.
seisman: > Do you think that there should be warnings if dpi or width are used with method=external or method=none?

Sounds good to me. I will open a separate PR about dpi and width settings after this PR is merged.
seisman: > The TODO lists unit tests, is that still the plan or do you think this is good to go @seisman?

Actually, I have no idea how to test the new `Figure.show()` behavior automatically, because when running `make tests`, IPython is not imported so `Figure.show()` will do nothing.
diff --git a/Makefile b/Makefile
index e5cae667..a5342aa8 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,7 @@ test:
 	@echo ""
 	@cd $(TESTDIR); python -c "import $(PROJECT); $(PROJECT).show_versions()"
 	@echo ""
-	cd $(TESTDIR); pytest $(PYTEST_COV_ARGS) $(PROJECT)
+	cd $(TESTDIR); PYGMT_USE_EXTERNAL_DISPLAY="false" pytest $(PYTEST_COV_ARGS) $(PROJECT)
 	cp $(TESTDIR)/coverage.xml .
 	cp -r $(TESTDIR)/htmlcov .
 	rm -r $(TESTDIR)
diff --git a/doc/Makefile b/doc/Makefile
index 81b3a53f..6c4d7ab3 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -31,7 +31,8 @@ html: api
 	@echo
 	@echo "Building HTML files."
 	@echo
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	# Set PYGMT_USE_EXTERNAL_DISPLAY to "false" to disable external display
+	PYGMT_USE_EXTERNAL_DISPLAY="false" $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
 	@echo
 	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
 
diff --git a/doc/_static/style.css b/doc/_static/style.css
index 66b20538..d8171f6f 100644
--- a/doc/_static/style.css
+++ b/doc/_static/style.css
@@ -89,6 +89,32 @@ p {
     max-width: 1000px;
 }
 
+/* Format parameters section similar to sphinx_rtd_theme v4.x.x (not a grid) */
+html.writer-html5 .rst-content dl.field-list {
+    display: initial;
+}
+
+/* Add a grey box around parameters similar to sphinx_rtd_theme v4.x.x) */
+.rst-content dl:not(.docutils) dl dt {
+    margin-bottom: 4px;
+    border: none;
+    border-left: solid 3px #ccc;
+    background: #f0f0f0;
+    color: #555;
+}
+
+.rst-content dl:not(.docutils) dt {
+    display: table;
+    margin: 6px 0;
+    font-size: 90%;
+    line-height: normal;
+    background: #e7f2fa;
+    color: #2980B9;
+    border-top: solid 3px #6ab0de;
+    padding: 6px;
+    position: relative;
+}
+
 /* Remove the padding from the Parameters table */
 .rst-content table.field-list .field-name {
     padding-left: 0px;
diff --git a/doc/api/index.rst b/doc/api/index.rst
index 3b4220b7..6460eb53 100644
--- a/doc/api/index.rst
+++ b/doc/api/index.rst
@@ -60,6 +60,13 @@ Saving and displaying the figure:
     Figure.show
     Figure.psconvert
 
+Configuring the display settings:
+
+.. autosummary::
+    :toctree: generated
+
+    set_display
+
 
 Data Processing
 ---------------
diff --git a/pygmt/__init__.py b/pygmt/__init__.py
index 033a21f6..1dc2ed79 100644
--- a/pygmt/__init__.py
+++ b/pygmt/__init__.py
@@ -25,7 +25,7 @@ from pkg_resources import get_distribution
 # Import modules to make the high-level GMT Python API
 from pygmt import datasets
 from pygmt.accessors import GMTDataArrayAccessor
-from pygmt.figure import Figure
+from pygmt.figure import Figure, set_display
 from pygmt.session_management import begin as _begin
 from pygmt.session_management import end as _end
 from pygmt.src import (
diff --git a/pygmt/figure.py b/pygmt/figure.py
index db152e0d..ef9269a5 100644
--- a/pygmt/figure.py
+++ b/pygmt/figure.py
@@ -6,9 +6,10 @@ import os
 from tempfile import TemporaryDirectory
 
 try:
-    from IPython.display import Image
-except ImportError:
-    Image = None
+    import IPython
+except KeyError:
+    IPython = None  # pylint: disable=invalid-name
+
 
 from pygmt.clib import Session
 from pygmt.exceptions import GMTError, GMTInvalidInput
@@ -25,6 +26,23 @@ from pygmt.helpers import (
 # This is needed for the sphinx-gallery scraper in pygmt/sphinx_gallery.py
 SHOWED_FIGURES = []
 
+# Configurations for figure display
+SHOW_CONFIG = {
+    "method": "external",  # Open in an external viewer by default
+}
+
+# Show figures in Jupyter notebooks if available
+if IPython:
+    get_ipython = IPython.get_ipython()  # pylint: disable=invalid-name
+    if get_ipython and "IPKernelApp" in get_ipython.config:  # Jupyter Notebook enabled
+        SHOW_CONFIG["method"] = "notebook"
+
+# Set environment variable PYGMT_USE_EXTERNAL_DISPLAY to 'false' to disable
+# external display. Use it when running the tests and building the docs to
+# avoid popping up windows.
+if os.environ.get("PYGMT_USE_EXTERNAL_DISPLAY", "true").lower() == "false":
+    SHOW_CONFIG["method"] = "none"
+
 
 class Figure:
     """
@@ -235,62 +253,72 @@ class Figure:
         if show:
             launch_external_viewer(fname)
 
-    def show(self, dpi=300, width=500, method="static"):
+    def show(self, dpi=300, width=500, method=None):
         """
         Display a preview of the figure.
 
-        Inserts the preview in the Jupyter notebook output. You will need to
-        have IPython installed for this to work. You should have it if you are
-        using the notebook.
+        Inserts the preview in the Jupyter notebook output if available,
+        otherwise opens it in the default viewer for your operating system
+        (falls back to the default web browser).
+
+        :func:`pygmt.set_display` can select the default display method
+        (**notebook**, **external**, or **none**).
+
+        The ``method`` parameter can also override the default display method
+        for the current figure. Parameters ``dpi`` and ``width`` can be used
+        to control the resolution and dimension of the figure in the notebook.
+
+        Note: The external viewer can be disabled by setting the
+        PYGMT_USE_EXTERNAL_DISPLAY environment variable to **false**.
+        This is useful when running unit tests and building the documentation
+        in consoles without a Graphical User Interface.
 
-        If ``method='external'``, makes PDF preview instead and opens it in the
-        default viewer for your operating system (falls back to the default web
-        browser). Note that the external viewer does not block the current
-        process, so this won't work in a script.
+        Note that the external viewer does not block the current process.
 
         Parameters
         ----------
         dpi : int
-            The image resolution (dots per inch).
+            The image resolution (dots per inch) in Jupyter notebooks.
         width : int
-            Width of the figure shown in the notebook in pixels. Ignored if
-            ``method='external'``.
+            The image width (in pixels) in Jupyter notebooks.
         method : str
-            How the figure will be displayed. Options are (1) ``'static'``: PNG
-            preview (default); (2) ``'external'``: PDF preview in an external
-            program.
+            How the current figure will be displayed. Options are
 
-        Returns
-        -------
-        img : IPython.display.Image
-            Only if ``method != 'external'``.
+            - **external**: PDF preview in an external program [default]
+            - **notebook**: PNG preview [default in Jupyter notebooks]
+            - **none**: Disable image preview
         """
         # Module level variable to know which figures had their show method
         # called. Needed for the sphinx-gallery scraper.
         SHOWED_FIGURES.append(self)
 
-        if method not in ["static", "external"]:
-            raise GMTInvalidInput("Invalid show method '{}'.".format(method))
-        if method == "external":
-            pdf = self._preview(fmt="pdf", dpi=dpi, anti_alias=False, as_bytes=False)
-            launch_external_viewer(pdf)
-            img = None
-        elif method == "static":
-            png = self._preview(
-                fmt="png", dpi=dpi, anti_alias=True, as_bytes=True, transparent=True
+        # Set the display method
+        if method is None:
+            method = SHOW_CONFIG["method"]
+
+        if method not in ["external", "notebook", "none"]:
+            raise GMTInvalidInput(
+                (
+                    f"Invalid display method '{method}', "
+                    "should be either 'notebook', 'external', or 'none'."
+                )
             )
-            if Image is None:
+
+        if method in ["notebook", "none"]:
+            if IPython is None:
                 raise GMTError(
-                    " ".join(
-                        [
-                            "Cannot find IPython.",
-                            "Make sure you have it installed",
-                            "or use 'method=\"external\"' to open in an external viewer.",
-                        ]
+                    (
+                        "Notebook display is selected, but IPython is not available. "
+                        "Make sure you have IPython installed, "
+                        "or run the script in a Jupyter notebook."
                     )
                 )
-            img = Image(data=png, width=width)
-        return img
+            png = self._preview(fmt="png", dpi=dpi, anti_alias=True, as_bytes=True)
+            IPython.display.display(IPython.display.Image(data=png, width=width))
+
+        if method == "external":
+            pdf = self._preview(fmt="pdf", dpi=dpi, anti_alias=False, as_bytes=False)
+            launch_external_viewer(pdf)
 
     def shift_origin(self, xshift=None, yshift=None):
         """
@@ -396,3 +424,27 @@ class Figure:
         subplot,
         text,
     )
+
+
+def set_display(method=None):
+    """
+    Set the display method.
+
+    Parameters
+    ----------
+    method : str or None
+        The method to display an image. Choose from:
+
+        - **external**: PDF preview in an external program [default]
+        - **notebook**: PNG preview [default in Jupyter notebooks]
+        - **none**: Disable image preview
+    """
+    if method in ["notebook", "external", "none"]:
+        SHOW_CONFIG["method"] = method
+    elif method is not None:
+        raise GMTInvalidInput(
+            (
+                f"Invalid display mode '{method}', "
+                "should be either 'notebook', 'external' or 'none'."
+            )
+        )

Rethink the display mechanisms
**Description of the desired feature**

Currently, there many ways of displaying a PyGMT figure:

* Calling `Figure.show()` in the notebook returns an IPython PNG display object for the jupyter notebook
* Putting the `Figure` object at the end of a notebook cell displays the figure as PNG
* Calling `Figure.show(external=True)` will open a preview in an external PDF viewer or the browser. The external viewer is non-blocking so this doesn't work for a script.
* Calling `Figure.savefig(..., show=True)` will save the figure and open it on an external viewer

This is not ideal. It would be better to have:

* Calling `Figure.show()` opens a preview of the figure and halts the Python process until the viewer is closed. It can also return `self` so that if it's called at the end of a notebook cell it would get displayed on the notebook as well.
* Putting the `Figure` at the end of a notebook cell displays a PNG preview.
* Having some way of tell `Figure.show()` to not open the viewer. This is required when using a notebook or when building the docs (we don't want windows opening when we build the gallery or tutorials). This can be done through a function `pygmt.enable_notebook` which would set a flag to tell `show` not to do anything and/or through an environment variable `PYGMT_DISPLAY` which can be set to `none` or other options that the user might want. Ideally, we should have both. The env variable will be useful when building the docs.


diff --git a/pygmt/tests/test_figure.py b/pygmt/tests/test_figure.py
index 7b771b5a..213c0048 100644
--- a/pygmt/tests/test_figure.py
+++ b/pygmt/tests/test_figure.py
@@ -8,7 +8,7 @@ import os
 import numpy as np
 import numpy.testing as npt
 import pytest
-from pygmt import Figure
+from pygmt import Figure, set_display
 from pygmt.exceptions import GMTInvalidInput
 
 
@@ -142,8 +142,7 @@ def test_figure_show():
     """
     fig = Figure()
     fig.basemap(region="10/70/-300/800", projection="X3i/5i", frame="af")
-    img = fig.show(width=800)
-    assert img.width == 800
+    fig.show()
 
 
 @pytest.mark.mpl_image_compare
@@ -175,3 +174,12 @@ def test_figure_show_invalid_method():
     fig.basemap(region="10/70/-300/800", projection="X3i/5i", frame="af")
     with pytest.raises(GMTInvalidInput):
         fig.show(method="test")
+
+
+def test_figure_set_display_invalid():
+    """
+    Test to check if an error is raised when an invalid method is passed to
+    set_display.
+    """
+    with pytest.raises(GMTInvalidInput):
+        set_display(method="invalid")

environment.yml
pip install -e .
parse_log_pytest
environment.yml
pytest
apt-get update apt-get install -y gcc
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
aiohttp @ file:///home/conda/feedstock_root/build_artifacts/aiohttp_1636085288765/work
aiohttp-retry @ file:///home/conda/feedstock_root/build_artifacts/aiohttp-retry_1743371080905/work
alabaster @ file:///home/conda/feedstock_root/build_artifacts/alabaster_1704848697227/work
amqp @ file:///home/conda/feedstock_root/build_artifacts/amqp_1733906301603/work
antlr4-python3-runtime @ file:///home/conda/feedstock_root/build_artifacts/antlr-python-runtime-meta_1638309185939/work
anyio @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_anyio_1742243108/work
appdirs @ file:///home/conda/feedstock_root/build_artifacts/appdirs_1733753955715/work
argon2-cffi @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi_1733311059102/work
argon2-cffi-bindings @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi-bindings_1649500321618/work
arrow @ file:///home/conda/feedstock_root/build_artifacts/arrow_1733584251875/work
astroid @ file:///home/conda/feedstock_root/build_artifacts/astroid_1741614576512/work
asttokens @ file:///home/conda/feedstock_root/build_artifacts/asttokens_1733250440834/work
async-lru @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_async-lru_1742153708/work
async-timeout==3.0.1
asyncssh @ file:///home/conda/feedstock_root/build_artifacts/asyncssh_1739897873808/work
atpublic @ file:///home/conda/feedstock_root/build_artifacts/atpublic_1737771474411/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1741918516150/work
babel @ file:///home/conda/feedstock_root/build_artifacts/babel_1738490167835/work
beautifulsoup4 @ file:///home/conda/feedstock_root/build_artifacts/beautifulsoup4_1738740337718/work
billiard @ file:///home/conda/feedstock_root/build_artifacts/billiard_1651339311679/work
black @ file:///home/conda/feedstock_root/build_artifacts/black-recipe_1742502760723/work
blackdoc @ file:///home/conda/feedstock_root/build_artifacts/blackdoc_1737385998318/work
bleach @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_bleach_1737382993/work
boto3 @ file:///home/conda/feedstock_root/build_artifacts/boto3_1743235439640/work
botocore @ file:///home/conda/feedstock_root/build_artifacts/botocore_1743212919739/work
Brotli @ file:///home/conda/feedstock_root/build_artifacts/brotli-split_1648883617327/work
cached-property @ file:///home/conda/feedstock_root/build_artifacts/cached_property_1615209429212/work
celery @ file:///home/conda/feedstock_root/build_artifacts/celery_1653849172470/work
certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1739515848642/work/certifi
cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1636046055389/work
cftime @ file:///home/conda/feedstock_root/build_artifacts/cftime_1649636863755/work
chardet @ file:///home/conda/feedstock_root/build_artifacts/chardet_1649184154184/work
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1735929714516/work
click @ file:///home/conda/feedstock_root/build_artifacts/click_1734858813237/work
click-didyoumean @ file:///home/conda/feedstock_root/build_artifacts/click-didyoumean_1734293070305/work
click-plugins @ file:///home/conda/feedstock_root/build_artifacts/click-plugins_1733731077999/work
click-repl @ file:///home/conda/feedstock_root/build_artifacts/click-repl_1694959444233/work
codecov @ file:///home/conda/feedstock_root/build_artifacts/codecov_1734975286850/work
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1733218098505/work
comm @ file:///home/conda/feedstock_root/build_artifacts/comm_1733502965406/work
configobj @ file:///home/conda/feedstock_root/build_artifacts/configobj_1734075408845/work
contourpy @ file:///home/conda/feedstock_root/build_artifacts/contourpy_1652954513473/work
coverage @ file:///home/conda/feedstock_root/build_artifacts/coverage_1743381221492/work
cryptography @ file:///croot/cryptography_1677533068310/work
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1733332471406/work
debugpy @ file:///croot/debugpy_1736267418885/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1740384970518/work
defusedxml @ file:///home/conda/feedstock_root/build_artifacts/defusedxml_1615232257335/work
dictdiffer @ file:///home/conda/feedstock_root/build_artifacts/dictdiffer_1734344338200/work
dill @ file:///home/conda/feedstock_root/build_artifacts/dill_1733249551891/work
diskcache @ file:///home/conda/feedstock_root/build_artifacts/diskcache_1734196270869/work
distro @ file:///home/conda/feedstock_root/build_artifacts/distro_1734729835256/work
docformatter @ file:///home/conda/feedstock_root/build_artifacts/docformatter_1734377400330/work
docutils @ file:///home/conda/feedstock_root/build_artifacts/docutils_1733217766141/work
dpath @ file:///home/conda/feedstock_root/build_artifacts/dpath_1718243458415/work
dulwich @ file:///home/conda/feedstock_root/build_artifacts/dulwich_1653040645577/work
dvc @ file:///home/conda/feedstock_root/build_artifacts/dvc_1662031670177/work
dvc-data @ file:///home/conda/feedstock_root/build_artifacts/dvc-data_1662022041574/work
dvc-http @ file:///home/conda/feedstock_root/build_artifacts/dvc-http_1661723222040/work
dvc-objects @ file:///home/conda/feedstock_root/build_artifacts/dvc-objects_1661995164717/work
dvc-render @ file:///home/conda/feedstock_root/build_artifacts/dvc-render_1658933587501/work
dvc-task @ file:///home/conda/feedstock_root/build_artifacts/dvc-task_1659530446681/work
dvclive @ file:///home/conda/feedstock_root/build_artifacts/dvclive_1672148379201/work
exceptiongroup @ file:///home/conda/feedstock_root/build_artifacts/exceptiongroup_1733208806608/work
executing @ file:///home/conda/feedstock_root/build_artifacts/executing_1733569351617/work
fastjsonschema @ file:///home/conda/feedstock_root/build_artifacts/python-fastjsonschema_1733235979760/work/dist
flake8 @ file:///home/conda/feedstock_root/build_artifacts/flake8_1739898391164/work
flatten-dict @ file:///home/conda/feedstock_root/build_artifacts/flatten-dict_1629457542349/work
flufl.lock @ file:///home/conda/feedstock_root/build_artifacts/flufl.lock_1722809909247/work
fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1651017733844/work
fqdn @ file:///home/conda/feedstock_root/build_artifacts/fqdn_1733327382592/work/dist
fsspec @ file:///home/conda/feedstock_root/build_artifacts/fsspec_1743361113926/work
funcy @ file:///home/conda/feedstock_root/build_artifacts/funcy_1734381131891/work
future @ file:///home/conda/feedstock_root/build_artifacts/future_1738926421307/work
GDAL==3.3.1
gitdb @ file:///home/conda/feedstock_root/build_artifacts/gitdb_1735887193964/work
GitPython @ file:///home/conda/feedstock_root/build_artifacts/gitpython_1735929639977/work
grandalf==0.6
gssapi @ file:///home/conda/feedstock_root/build_artifacts/python-gssapi_1649450511567/work
h11 @ file:///home/conda/feedstock_root/build_artifacts/h11_1733327467879/work
h2 @ file:///home/conda/feedstock_root/build_artifacts/h2_1738578511449/work
hpack @ file:///home/conda/feedstock_root/build_artifacts/hpack_1737618293087/work
httpcore @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_httpcore_1731707562/work
httpx @ file:///home/conda/feedstock_root/build_artifacts/httpx_1733663348460/work
hydra-core @ file:///home/conda/feedstock_root/build_artifacts/hydra-core_1736934708722/work
hyperframe @ file:///home/conda/feedstock_root/build_artifacts/hyperframe_1737618333194/work
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1733211830134/work
imagesize @ file:///home/conda/feedstock_root/build_artifacts/imagesize_1656939531508/work
importlib_metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1737420181517/work
importlib_resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1736252299705/work
iniconfig @ file:///home/conda/feedstock_root/build_artifacts/iniconfig_1733223141826/work
ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1719845459717/work
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1701831663892/work
ipywidgets @ file:///home/conda/feedstock_root/build_artifacts/ipywidgets_1733493556527/work
isoduration @ file:///home/conda/feedstock_root/build_artifacts/isoduration_1733493628631/work/dist
isort @ file:///home/conda/feedstock_root/build_artifacts/isort_1740643408806/work
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1733300866624/work
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1741263328855/work
jmespath @ file:///home/conda/feedstock_root/build_artifacts/jmespath_1733229141657/work
json5 @ file:///home/conda/feedstock_root/build_artifacts/json5_1733272076743/work
jsonpointer @ file:///home/conda/feedstock_root/build_artifacts/jsonpointer_1725302957584/work
jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema_1733472696581/work
jsonschema-specifications @ file:///tmp/tmpk0f344m9/src
jupyter @ file:///home/conda/feedstock_root/build_artifacts/jupyter_1733818543322/work
jupyter-console @ file:///home/conda/feedstock_root/build_artifacts/jupyter_console_1733817997778/work
jupyter-events @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_jupyter_events_1738765986/work
jupyter-lsp @ file:///home/conda/feedstock_root/build_artifacts/jupyter-lsp-meta_1733492907176/work/jupyter-lsp
jupyter_client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1733440914442/work
jupyter_core @ file:///home/conda/feedstock_root/build_artifacts/jupyter_core_1727163409502/work
jupyter_server @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_1734702637701/work
jupyter_server_terminals @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_terminals_1733427956852/work
jupyterlab @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_1741964057182/work
jupyterlab_pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1733328101776/work
jupyterlab_server @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_server_1733599573484/work
jupyterlab_widgets @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_widgets_1733428046021/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1648854392795/work
kombu @ file:///home/conda/feedstock_root/build_artifacts/kombu_1726068845112/work
markdown-it-py @ file:///home/conda/feedstock_root/build_artifacts/markdown-it-py_1733250460757/work
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1648737556467/work
matplotlib @ file:///croot/matplotlib-suite_1713336378214/work
matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1733416936468/work
mccabe @ file:///home/conda/feedstock_root/build_artifacts/mccabe_1733216466933/work
mdit-py-plugins @ file:///home/conda/feedstock_root/build_artifacts/mdit-py-plugins_1733854715505/work
mdurl @ file:///home/conda/feedstock_root/build_artifacts/mdurl_1733255585584/work
mistune @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_mistune_1742402716/work
more-itertools @ file:///home/conda/feedstock_root/build_artifacts/more-itertools_1736883817510/work
multidict @ file:///home/conda/feedstock_root/build_artifacts/multidict_1648882420423/work
munkres==1.1.4
mypy_extensions @ file:///home/conda/feedstock_root/build_artifacts/mypy_extensions_1733230897951/work
myst-parser @ file:///home/conda/feedstock_root/build_artifacts/myst-parser_1714413780344/work
nanotime==0.5.2
nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1734628800805/work
nbconvert @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_nbconvert-core_1738067871/work
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1733402752141/work
nest_asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1733325553580/work
netCDF4 @ file:///home/conda/feedstock_root/build_artifacts/netcdf4_1624308159535/work
networkx @ file:///home/conda/feedstock_root/build_artifacts/networkx_1653162972907/work
notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1741968175534/work
notebook_shim @ file:///home/conda/feedstock_root/build_artifacts/notebook-shim_1733408315203/work
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1651020388495/work
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1734769783178/work
omegaconf @ file:///home/conda/feedstock_root/build_artifacts/omegaconf_1670575376789/work
overrides @ file:///home/conda/feedstock_root/build_artifacts/overrides_1734587627321/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1733203243479/work
pandas==1.4.2
pandocfilters @ file:///home/conda/feedstock_root/build_artifacts/pandocfilters_1631603243851/work
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1733271261340/work
pathlib2 @ file:///home/conda/feedstock_root/build_artifacts/pathlib2_1725350185303/work
pathspec @ file:///home/conda/feedstock_root/build_artifacts/pathspec_1626613672358/work
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1733301927746/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1733327343728/work
Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1630696601414/work
pkgutil_resolve_name @ file:///home/conda/feedstock_root/build_artifacts/pkgutil-resolve-name_1733344503739/work
platformdirs @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_platformdirs_1742485085/work
pluggy @ file:///home/conda/feedstock_root/build_artifacts/pluggy_1733222765875/work
ply @ file:///home/conda/feedstock_root/build_artifacts/ply_1733239724146/work
prometheus_client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1733327310477/work
prompt_toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1737453357274/work
psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1653089170447/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1733302279685/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl#sha256=92c32ff62b5fd8cf325bec5ab90d7be3d2a8ca8c8a3813ff487a8d2002630d1f
pure_eval @ file:///home/conda/feedstock_root/build_artifacts/pure_eval_1733569405015/work
pyasn1 @ file:///home/conda/feedstock_root/build_artifacts/pyasn1_1733217608156/work
pycodestyle @ file:///home/conda/feedstock_root/build_artifacts/pycodestyle_1733216196861/work
pycparser @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_pycparser_1733195786/work
pydot @ file:///home/conda/feedstock_root/build_artifacts/pydot_1695469090919/work
pyflakes @ file:///home/conda/feedstock_root/build_artifacts/pyflakes_1733216066937/work
pygit2 @ file:///home/conda/feedstock_root/build_artifacts/pygit2_1643972992881/work
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1736243443484/work
-e git+https://github.com/GenericMappingTools/pygmt.git@9c6a0f620b0ee58703b59b25707b5fc34a2108ce#egg=pygmt
pygtrie @ file:///home/conda/feedstock_root/build_artifacts/pygtrie_1734664549100/work
pylint @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_pylint_1741550910/work
pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1685514481738/work
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1635267989520/work
PyQt5==5.12.3
PyQt5_sip==4.19.18
PyQtChart==5.12
PyQtWebEngine==5.12.1
PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1733217236728/work
pytest @ file:///home/conda/feedstock_root/build_artifacts/pytest_1740946542080/work
pytest-cov @ file:///home/conda/feedstock_root/build_artifacts/pytest-cov_1733223023082/work
pytest-mpl @ file:///home/conda/feedstock_root/build_artifacts/pytest-mpl_1734116536345/work
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1733215673016/work
python-json-logger @ file:///home/conda/feedstock_root/build_artifacts/python-json-logger_1677079630776/work
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1742920838005/work
PyYAML @ file:///home/conda/feedstock_root/build_artifacts/pyyaml_1648757097602/work
pyzmq @ file:///croot/pyzmq_1734687138743/work
referencing @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_referencing_1737836872/work
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1733217035951/work
rfc3339_validator @ file:///home/conda/feedstock_root/build_artifacts/rfc3339-validator_1733599910982/work
rfc3986-validator @ file:///home/conda/feedstock_root/build_artifacts/rfc3986-validator_1598024191506/work
rich @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_rich_1743371105/work/dist
rpds-py @ file:///croot/rpds-py_1736541261634/work
ruamel.yaml @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml_1649033202141/work
ruamel.yaml.clib @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml.clib_1649013070954/work
s3transfer @ file:///home/conda/feedstock_root/build_artifacts/s3transfer_1741171990164/work
scmrepo @ file:///home/conda/feedstock_root/build_artifacts/scmrepo_1655470045648/work
Send2Trash @ file:///home/conda/feedstock_root/build_artifacts/send2trash_1733322040660/work
shortuuid @ file:///home/conda/feedstock_root/build_artifacts/shortuuid_1734272317000/work
shtab @ file:///home/conda/feedstock_root/build_artifacts/shtab_1734664526617/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1733380938961/work
smmap @ file:///home/conda/feedstock_root/build_artifacts/smmap_1739781697784/work
sniffio @ file:///home/conda/feedstock_root/build_artifacts/sniffio_1733244044561/work
snowballstemmer @ file:///home/conda/feedstock_root/build_artifacts/snowballstemmer_1637143057757/work
soupsieve @ file:///home/conda/feedstock_root/build_artifacts/soupsieve_1693929250441/work
Sphinx @ file:///home/conda/feedstock_root/build_artifacts/sphinx_1721487534232/work
sphinx-copybutton @ file:///home/conda/feedstock_root/build_artifacts/sphinx-copybutton_1734572975006/work
sphinx-gallery @ file:///home/conda/feedstock_root/build_artifacts/sphinx-gallery_1739451496361/work
sphinx_rtd_theme @ file:///home/conda/feedstock_root/build_artifacts/sphinx_rtd_theme_1730015256242/work
sphinxcontrib-applehelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-applehelp_1733754101641/work
sphinxcontrib-devhelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-devhelp_1733754113405/work
sphinxcontrib-htmlhelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-htmlhelp_1733754280555/work
sphinxcontrib-jquery @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-jquery_1734344508263/work
sphinxcontrib-jsmath @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-jsmath_1733753744933/work
sphinxcontrib-qthelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-qthelp_1733753408017/work
sphinxcontrib-serializinghtml @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-serializinghtml_1733750479108/work
stack_data @ file:///home/conda/feedstock_root/build_artifacts/stack_data_1733569443808/work
tabulate @ file:///home/conda/feedstock_root/build_artifacts/tabulate_1733589744265/work
terminado @ file:///home/conda/feedstock_root/build_artifacts/terminado_1710262609923/work
tinycss2 @ file:///home/conda/feedstock_root/build_artifacts/tinycss2_1729802851396/work
toml @ file:///home/conda/feedstock_root/build_artifacts/toml_1734091811753/work
tomli @ file:///home/conda/feedstock_root/build_artifacts/tomli_1733256695513/work
tomlkit @ file:///home/conda/feedstock_root/build_artifacts/tomlkit_1733230743009/work
tornado @ file:///croot/tornado_1733960490606/work
tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1735661334605/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1733367359838/work
types-python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/types-python-dateutil_1733612335562/work
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/bld/rattler-build_typing_extensions_1743201626/work
typing_utils @ file:///home/conda/feedstock_root/build_artifacts/typing_utils_1733331286120/work
unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1649111919389/work
untokenize @ file:///home/conda/feedstock_root/build_artifacts/untokenize_1734420909700/work
uri-template @ file:///home/conda/feedstock_root/build_artifacts/uri-template_1733323593477/work/dist
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1718728347128/work
vine @ file:///home/conda/feedstock_root/build_artifacts/vine_1733906372582/work
voluptuous @ file:///home/conda/feedstock_root/build_artifacts/voluptuous_1734219447985/work
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1733231326287/work
webcolors @ file:///home/conda/feedstock_root/build_artifacts/webcolors_1733359735138/work
webencodings @ file:///home/conda/feedstock_root/build_artifacts/webencodings_1733236011802/work
websocket-client @ file:///home/conda/feedstock_root/build_artifacts/websocket-client_1733157342724/work
widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1733128559935/work
xarray @ file:///home/conda/feedstock_root/build_artifacts/xarray_1689599939832/work
yarl @ file:///home/conda/feedstock_root/build_artifacts/yarl_1648966524636/work
zc.lockfile @ file:///home/conda/feedstock_root/build_artifacts/zc.lockfile_1732886357525/work
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1732827521216/work

name: pygmt
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - aiohttp=3.7.4.post0=py39h3811e60_1
  - aiohttp-retry=2.9.1=pyhd8ed1ab_0
  - alabaster=0.7.16=pyhd8ed1ab_0
  - alsa-lib=1.2.3.2=h166bdaf_0
  - amqp=5.2.0=pyhd8ed1ab_2
  - antlr-python-runtime=4.9.3=pyhd8ed1ab_1
  - anyio=4.9.0=pyh29332c3_0
  - appdirs=1.4.4=pyhd8ed1ab_1
  - argon2-cffi=23.1.0=pyhd8ed1ab_1
  - argon2-cffi-bindings=21.2.0=py39hb9d737c_2
  - arrow=1.3.0=pyhd8ed1ab_1
  - astroid=3.3.9=py39hf3d152e_0
  - asttokens=3.0.0=pyhd8ed1ab_1
  - async-lru=2.0.5=pyh29332c3_0
  - async-timeout=3.0.1=py_1000
  - asyncssh=2.20.0=pyhd8ed1ab_0
  - atk-1.0=2.36.0=h3371d22_4
  - atpublic=5.1=pyhd8ed1ab_0
  - attrs=25.3.0=pyh71513ae_0
  - babel=2.17.0=pyhd8ed1ab_0
  - beautifulsoup4=4.13.3=pyha770c72_0
  - billiard=3.6.4.0=py39hb9d737c_1
  - black=25.1.0=pyha5154f8_0
  - blackdoc=0.3.9=pyhd8ed1ab_1
  - bleach=6.2.0=pyh29332c3_4
  - bleach-with-css=6.2.0=h82add2a_4
  - boost-cpp=1.74.0=h312852a_4
  - boto3=1.37.23=pyhd8ed1ab_0
  - botocore=1.37.23=pyge38_1234567_0
  - brotli=1.0.9=h166bdaf_7
  - brotli-bin=1.0.9=h166bdaf_7
  - brotli-python=1.0.9=py39h5a03fae_7
  - bzip2=1.0.8=h7f98852_4
  - c-ares=1.18.1=h7f98852_0
  - ca-certificates=2025.2.25=h06a4308_0
  - cached-property=1.5.2=hd8ed1ab_1
  - cached_property=1.5.2=pyha770c72_1
  - cairo=1.16.0=h6cf1ce9_1008
  - celery=5.2.7=pyhd8ed1ab_0
  - certifi=2025.1.31=pyhd8ed1ab_0
  - cffi=1.15.0=py39h4bc2ebd_0
  - cfitsio=3.470=hb418390_7
  - cftime=1.6.0=py39hd257fcd_1
  - chardet=4.0.0=py39hf3d152e_3
  - charset-normalizer=3.4.1=pyhd8ed1ab_0
  - chrpath=0.16=h7f98852_1002
  - click=8.1.8=pyh707e725_0
  - click-didyoumean=0.3.1=pyhd8ed1ab_1
  - click-plugins=1.1.1=pyhd8ed1ab_1
  - click-repl=0.3.0=pyhd8ed1ab_0
  - codecov=2.1.13=pyhd8ed1ab_1
  - colorama=0.4.6=pyhd8ed1ab_1
  - comm=0.2.2=pyhd8ed1ab_1
  - configobj=5.0.9=pyhd8ed1ab_1
  - contourpy=1.0.2=py39hf939315_2
  - coverage=7.8.0=pyhe1237c8_0
  - cryptography=39.0.1=py39h9ce1e76_0
  - curl=7.79.1=h2574ce0_1
  - cycler=0.12.1=pyhd8ed1ab_1
  - dbus=1.13.6=h48d8840_2
  - dcw-gmt=2.2.0=ha770c72_0
  - debugpy=1.8.11=py39h6a678d5_0
  - decorator=5.2.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - dictdiffer=0.9.0=pyhd8ed1ab_1
  - dill=0.3.9=pyhd8ed1ab_1
  - diskcache=5.6.3=pyhd8ed1ab_1
  - distro=1.9.0=pyhd8ed1ab_1
  - docformatter=1.7.5=pyhd8ed1ab_1
  - docutils=0.21.2=pyhd8ed1ab_1
  - dpath=2.2.0=pyha770c72_0
  - dulwich=0.20.40=py39hb9d737c_0
  - dvc=2.24.0=py39hf3d152e_0
  - dvc-data=0.4.0=pyhd8ed1ab_0
  - dvc-http=2.19.1=pyhd8ed1ab_0
  - dvc-objects=0.2.0=pyhd8ed1ab_0
  - dvc-render=0.0.9=pyhd8ed1ab_0
  - dvc-task=0.1.2=pyhd8ed1ab_0
  - dvclive=1.3.0=pyhd8ed1ab_0
  - exceptiongroup=1.2.2=pyhd8ed1ab_1
  - executing=2.1.0=pyhd8ed1ab_1
  - expat=2.4.8=h27087fc_0
  - ffmpeg=4.3.2=hca11adc_0
  - fftw=3.3.10=nompi_h77c792f_102
  - flake8=7.1.2=pyhd8ed1ab_0
  - flatten-dict=0.4.2=pyhd8ed1ab_1
  - flufl.lock=8.1.0=pyhd8ed1ab_0
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=h77eed37_3
  - fontconfig=2.14.0=h8e229c2_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.33.3=py39hb9d737c_0
  - fqdn=1.5.1=pyhd8ed1ab_1
  - freetype=2.10.4=h0708190_1
  - freexl=1.0.6=h7f98852_0
  - fribidi=1.0.10=h36c2ea0_0
  - fsspec=2025.3.1=pyhd8ed1ab_0
  - funcy=2.0=pyhd8ed1ab_1
  - future=1.0.0=pyhd8ed1ab_2
  - gdal=3.3.1=py39h409cc32_1
  - gdk-pixbuf=2.42.6=h04a7f16_0
  - geos=3.9.1=h9c3ff4c_2
  - geotiff=1.6.0=h4f31c25_6
  - gettext=0.19.8.1=h73d1719_1008
  - ghostscript=9.54.0=h27087fc_2
  - giflib=5.2.1=h36c2ea0_2
  - gitdb=4.0.12=pyhd8ed1ab_0
  - gitpython=3.1.44=pyhff2d567_0
  - glib=2.68.4=h9c3ff4c_1
  - glib-tools=2.68.4=h9c3ff4c_1
  - gmp=6.2.1=h58526e2_0
  - gmt=6.1.1=h88440e8_7
  - gnuplot=5.4.1=hec6539f_2
  - gnutls=3.6.13=h85f3911_1
  - grandalf=0.6=py_0
  - graphicsmagick=1.3.36=hdc87540_0
  - graphite2=1.3.13=h58526e2_1001
  - graphviz=2.49.0=h85b4f2f_0
  - gshhg-gmt=2.3.7=ha770c72_1003
  - gst-plugins-base=1.18.5=hf529b03_0
  - gstreamer=1.18.5=h76c114f_0
  - gtk2=2.24.33=h539f30e_1
  - gts=0.7.6=h64030ff_2
  - h11=0.14.0=pyhd8ed1ab_1
  - h2=4.2.0=pyhd8ed1ab_0
  - harfbuzz=3.0.0=h83ec7ef_1
  - hdf4=4.2.15=h10796ff_3
  - hdf5=1.10.6=nompi_h6a2412b_1114
  - hpack=4.1.0=pyhd8ed1ab_0
  - httpcore=1.0.7=pyh29332c3_1
  - httpx=0.28.1=pyhd8ed1ab_0
  - hydra-core=1.3.2=pyhd8ed1ab_1
  - hyperframe=6.1.0=pyhd8ed1ab_0
  - icu=68.2=h9c3ff4c_0
  - idna=3.10=pyhd8ed1ab_1
  - imagesize=1.4.1=pyhd8ed1ab_0
  - importlib-metadata=8.6.1=pyha770c72_0
  - importlib_resources=6.5.2=pyhd8ed1ab_0
  - iniconfig=2.0.0=pyhd8ed1ab_1
  - ipykernel=6.29.5=pyh3099207_0
  - ipython=8.18.1=pyh707e725_3
  - ipywidgets=8.1.5=pyhd8ed1ab_1
  - isoduration=20.11.0=pyhd8ed1ab_1
  - isort=6.0.1=pyhd8ed1ab_0
  - jbig=2.1=h7f98852_2003
  - jedi=0.19.2=pyhd8ed1ab_1
  - jinja2=3.1.6=pyhd8ed1ab_0
  - jmespath=1.0.1=pyhd8ed1ab_1
  - jpeg=9e=h166bdaf_1
  - json-c=0.15=h98cffda_0
  - json5=0.10.0=pyhd8ed1ab_1
  - jsonpointer=3.0.0=py39hf3d152e_1
  - jsonschema=4.23.0=pyhd8ed1ab_1
  - jsonschema-specifications=2024.10.1=pyhd8ed1ab_1
  - jsonschema-with-format-nongpl=4.23.0=hd8ed1ab_1
  - jupyter=1.1.1=pyhd8ed1ab_1
  - jupyter-lsp=2.2.5=pyhd8ed1ab_1
  - jupyter_client=8.6.3=pyhd8ed1ab_1
  - jupyter_console=6.6.3=pyhd8ed1ab_1
  - jupyter_core=5.7.2=pyh31011fe_1
  - jupyter_events=0.12.0=pyh29332c3_0
  - jupyter_server=2.15.0=pyhd8ed1ab_0
  - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1
  - jupyterlab=4.3.6=pyhd8ed1ab_0
  - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
  - jupyterlab_server=2.27.3=pyhd8ed1ab_1
  - jupyterlab_widgets=3.0.13=pyhd8ed1ab_1
  - kealib=1.4.14=hcc255d8_2
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.4.2=py39hf939315_1
  - kombu=5.4.1=py39hf3d152e_0
  - krb5=1.19.3=h3790be6_0
  - lame=3.100=h7f98852_1001
  - lcms2=2.12=hddcbb42_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - lerc=2.2.1=h9c3ff4c_0
  - libblas=3.9.0=16_linux64_openblas
  - libbrotlicommon=1.0.9=h166bdaf_7
  - libbrotlidec=1.0.9=h166bdaf_7
  - libbrotlienc=1.0.9=h166bdaf_7
  - libcblas=3.9.0=16_linux64_openblas
  - libclang=11.1.0=default_ha53f305_1
  - libcurl=7.79.1=h2574ce0_1
  - libdap4=3.20.6=hd7c4107_2
  - libdeflate=1.7=h7f98852_5
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_1
  - libevent=2.1.10=h9b69904_4
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgd=2.3.3=h6ad9fb6_0
  - libgdal=3.3.1=h8f005ca_1
  - libgfortran-ng=13.2.0=h69a702a_0
  - libgfortran5=13.2.0=ha4646dd_0
  - libgit2=1.3.0=hee63804_1
  - libglib=2.68.4=h174f98d_1
  - libgomp=11.2.0=h1234567_1
  - libiconv=1.17=h166bdaf_0
  - libkml=1.3.0=h238a007_1014
  - liblapack=3.9.0=16_linux64_openblas
  - libllvm11=11.1.0=hf817b99_2
  - libnetcdf=4.8.0=nompi_hcd642e3_103
  - libnghttp2=1.43.0=h812cca2_1
  - libnsl=2.0.0=h7f98852_0
  - libogg=1.3.4=h7f98852_1
  - libopenblas=0.3.21=h043d6bf_0
  - libopus=1.3.1=h7f98852_1
  - libpng=1.6.37=h21135ba_2
  - libpq=13.3=hd57d9b9_0
  - librsvg=2.52.2=hc3c00ef_0
  - librttopo=1.1.0=h1185371_6
  - libsodium=1.0.18=h36c2ea0_1
  - libspatialite=5.0.1=h8694cbe_6
  - libssh2=1.10.0=ha56f1ee_2
  - libstdcxx-ng=11.2.0=h1234567_1
  - libtiff=4.3.0=hf544144_1
  - libtool=2.4.6=h9c3ff4c_1008
  - libuuid=2.32.1=h7f98852_1000
  - libvorbis=1.3.7=h9c3ff4c_0
  - libwebp=1.2.2=h3452ae3_0
  - libwebp-base=1.2.2=h7f98852_1
  - libxcb=1.13=h7f98852_1004
  - libxkbcommon=1.0.3=he3ba5ed_0
  - libxml2=2.9.12=h72842e0_0
  - libzip=1.8.0=h4de3113_1
  - lz4-c=1.9.3=h9c3ff4c_1
  - make=4.3=hd18ef5c_1
  - markdown-it-py=3.0.0=pyhd8ed1ab_1
  - markupsafe=2.1.1=py39hb9d737c_1
  - matplotlib=3.8.4=py39hf3d152e_2
  - matplotlib-base=3.8.4=py39h1128e8f_0
  - matplotlib-inline=0.1.7=pyhd8ed1ab_1
  - mccabe=0.7.0=pyhd8ed1ab_1
  - mdit-py-plugins=0.4.2=pyhd8ed1ab_1
  - mdurl=0.1.2=pyhd8ed1ab_1
  - mistune=3.1.3=pyh29332c3_0
  - more-itertools=10.6.0=pyhd8ed1ab_0
  - multidict=6.0.2=py39hb9d737c_1
  - munkres=1.1.4=pyh9f0ad1d_0
  - mypy_extensions=1.0.0=pyha770c72_1
  - mysql-common=8.0.25=ha770c72_2
  - mysql-libs=8.0.25=hfa10184_2
  - myst-parser=3.0.1=pyhd8ed1ab_0
  - nanotime=0.5.2=py_0
  - nbclient=0.10.2=pyhd8ed1ab_0
  - nbconvert-core=7.16.6=pyh29332c3_0
  - nbformat=5.10.4=pyhd8ed1ab_1
  - ncurses=6.4=h6a678d5_0
  - nest-asyncio=1.6.0=pyhd8ed1ab_1
  - netcdf4=1.5.7=nompi_py39hc6dca20_100
  - nettle=3.6=he412f7d_0
  - networkx=2.8.2=pyhd8ed1ab_0
  - notebook=7.3.3=pyhd8ed1ab_0
  - notebook-shim=0.2.4=pyhd8ed1ab_1
  - nspr=4.32=h9c3ff4c_1
  - nss=3.69=hb5efdd6_1
  - numpy=1.22.3=py39hc58783e_2
  - olefile=0.47=pyhd8ed1ab_1
  - omegaconf=2.3.0=pyhd8ed1ab_0
  - openh264=2.1.1=h780b84a_0
  - openjpeg=2.4.0=hb52868f_1
  - openssl=1.1.1o=h166bdaf_0
  - overrides=7.7.0=pyhd8ed1ab_1
  - packaging=24.2=pyhd8ed1ab_2
  - pandas=1.4.2=py39h1832856_1
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - pango=1.48.10=h54213e6_2
  - parso=0.8.4=pyhd8ed1ab_1
  - pathlib2=2.3.7.post1=py39hf3d152e_4
  - pathspec=0.9.0=pyhd8ed1ab_0
  - pcre=8.45=h9c3ff4c_0
  - pcre2=10.37=h032f7d1_0
  - pexpect=4.9.0=pyhd8ed1ab_1
  - pickleshare=0.7.5=pyhd8ed1ab_1004
  - pillow=8.3.2=py39ha612740_0
  - pip=25.0.1=pyh8b19718_0
  - pixman=0.40.0=h36c2ea0_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2
  - platformdirs=4.3.7=pyh29332c3_0
  - pluggy=1.5.0=pyhd8ed1ab_1
  - ply=3.11=pyhd8ed1ab_3
  - poppler=21.03.0=h93df280_0
  - poppler-data=0.4.12=hd8ed1ab_0
  - postgresql=13.3=h2510834_0
  - proj=8.0.1=h277dcde_0
  - prometheus_client=0.21.1=pyhd8ed1ab_0
  - prompt-toolkit=3.0.50=pyha770c72_0
  - prompt_toolkit=3.0.50=hd8ed1ab_0
  - psutil=5.9.1=py39hb9d737c_0
  - pthread-stubs=0.4=h36c2ea0_1001
  - ptyprocess=0.7.0=pyhd8ed1ab_1
  - pure_eval=0.2.3=pyhd8ed1ab_1
  - pyasn1=0.6.1=pyhd8ed1ab_2
  - pycodestyle=2.12.1=pyhd8ed1ab_1
  - pycparser=2.22=pyh29332c3_1
  - pydot=1.4.2=py39hf3d152e_4
  - pyflakes=3.2.0=pyhd8ed1ab_1
  - pygit2=1.8.0=py39h3811e60_0
  - pygments=2.19.1=pyhd8ed1ab_0
  - pygtrie=2.5.0=pyhd8ed1ab_1
  - pylint=3.3.5=pyh29332c3_0
  - pyopenssl=23.2.0=pyhd8ed1ab_1
  - pyparsing=2.4.7=pyhd8ed1ab_1
  - pyqt=5.12.3=py39hf3d152e_8
  - pyqt-impl=5.12.3=py39hde8b62d_8
  - pyqt5-sip=4.19.18=py39he80948d_8
  - pyqtchart=5.12=py39h0fcd23e_8
  - pyqtwebengine=5.12.1=py39h0fcd23e_8
  - pysocks=1.7.1=pyha55dd90_7
  - pytest=8.3.5=pyhd8ed1ab_0
  - pytest-cov=6.0.0=pyhd8ed1ab_1
  - pytest-mpl=0.17.0=pyhd8ed1ab_1
  - python=3.9.7=hb7a2778_3_cpython
  - python-dateutil=2.9.0.post0=pyhff2d567_1
  - python-fastjsonschema=2.21.1=pyhd8ed1ab_0
  - python-gssapi=1.7.3=py39ha6ecad8_1
  - python-json-logger=2.0.7=pyhd8ed1ab_0
  - python_abi=3.9=5_cp39
  - pytz=2025.2=pyhd8ed1ab_0
  - pywin32-on-windows=0.1.0=pyh1179c8e_3
  - pyyaml=6.0=py39hb9d737c_4
  - pyzmq=26.2.0=py39h6a678d5_0
  - qt=5.12.9=hda022c4_4
  - readline=8.2=h5eee18b_0
  - referencing=0.36.2=pyh29332c3_0
  - requests=2.32.3=pyhd8ed1ab_1
  - rfc3339-validator=0.1.4=pyhd8ed1ab_1
  - rfc3986-validator=0.1.1=pyh9f0ad1d_0
  - rich=14.0.0=pyh29332c3_0
  - rpds-py=0.22.3=py39h4aa5aa6_0
  - ruamel.yaml=0.17.21=py39hb9d737c_1
  - ruamel.yaml.clib=0.2.6=py39hb9d737c_1
  - s3transfer=0.11.4=pyhd8ed1ab_0
  - scmrepo=0.0.25=pyhd8ed1ab_0
  - send2trash=1.8.3=pyh0d859eb_1
  - setuptools=75.8.0=py39h06a4308_0
  - shortuuid=1.0.13=pyhd8ed1ab_1
  - shtab=1.7.1=pyhd8ed1ab_1
  - six=1.17.0=pyhd8ed1ab_0
  - smmap=5.0.2=pyhd8ed1ab_0
  - sniffio=1.3.1=pyhd8ed1ab_1
  - snowballstemmer=2.2.0=pyhd8ed1ab_0
  - soupsieve=2.5=pyhd8ed1ab_1
  - sphinx=7.4.7=pyhd8ed1ab_0
  - sphinx-copybutton=0.5.2=pyhd8ed1ab_1
  - sphinx-gallery=0.19.0=pyhd8ed1ab_0
  - sphinx_rtd_theme=3.0.1=pyha770c72_0
  - sphinxcontrib-applehelp=2.0.0=pyhd8ed1ab_1
  - sphinxcontrib-devhelp=2.0.0=pyhd8ed1ab_1
  - sphinxcontrib-htmlhelp=2.1.0=pyhd8ed1ab_1
  - sphinxcontrib-jquery=4.1=pyhd8ed1ab_1
  - sphinxcontrib-jsmath=1.0.1=pyhd8ed1ab_1
  - sphinxcontrib-qthelp=2.0.0=pyhd8ed1ab_1
  - sphinxcontrib-serializinghtml=1.1.10=pyhd8ed1ab_1
  - sqlite=3.45.3=h5eee18b_0
  - stack_data=0.6.3=pyhd8ed1ab_1
  - tabulate=0.9.0=pyhd8ed1ab_2
  - terminado=0.18.1=pyh0d859eb_0
  - tiledb=2.3.4=he87e0bf_0
  - tinycss2=1.4.0=pyhd8ed1ab_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd8ed1ab_1
  - tomli=2.2.1=pyhd8ed1ab_1
  - tomlkit=0.13.2=pyha770c72_1
  - tornado=6.4.2=py39h5eee18b_0
  - tqdm=4.67.1=pyhd8ed1ab_1
  - traitlets=5.14.3=pyhd8ed1ab_1
  - types-python-dateutil=2.9.0.20241206=pyhd8ed1ab_0
  - typing-extensions=4.13.0=h9fa5a19_1
  - typing_extensions=4.13.0=pyh29332c3_1
  - typing_utils=0.1.0=pyhd8ed1ab_1
  - tzcode=2022a=h166bdaf_0
  - tzdata=2025a=h04d1e81_0
  - unicodedata2=14.0.0=py39hb9d737c_1
  - untokenize=0.1.1=pyhd8ed1ab_2
  - uri-template=1.3.0=pyhd8ed1ab_1
  - urllib3=1.26.19=pyhd8ed1ab_0
  - vine=5.1.0=pyhd8ed1ab_1
  - voluptuous=0.15.2=pyhd8ed1ab_2
  - wcwidth=0.2.13=pyhd8ed1ab_1
  - webcolors=24.11.1=pyhd8ed1ab_0
  - webencodings=0.5.1=pyhd8ed1ab_3
  - websocket-client=1.8.0=pyhd8ed1ab_1
  - wheel=0.45.1=py39h06a4308_0
  - widgetsnbextension=4.0.13=pyhd8ed1ab_1
  - x264=1!161.3030=h7f98852_1
  - xarray=2023.7.0=pyhd8ed1ab_0
  - xerces-c=3.2.3=h9d8b166_3
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.0.10=h7f98852_0
  - xorg-libsm=1.2.3=hd9c2040_1000
  - xorg-libx11=1.7.2=h7f98852_0
  - xorg-libxau=1.0.9=h7f98852_0
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h7f98852_1
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-libxt=1.2.1=h7f98852_2
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-xextproto=7.3.0=h7f98852_1002
  - xorg-xproto=7.0.31=h7f98852_1007
  - xz=5.6.4=h5eee18b_1
  - yaml=0.2.5=h7f98852_2
  - yarl=1.7.2=py39hb9d737c_2
  - zc.lockfile=3.0.post1=pyhd8ed1ab_1
  - zeromq=4.3.5=h6a678d5_0
  - zipp=3.21.0=pyhd8ed1ab_1
  - zlib=1.2.13=h5eee18b_1
  - zstd=1.5.0=ha95c52a_0
  - pip:
      - pygmt==0.3.2.dev79+g9c6a0f62
prefix: /opt/conda/envs/pygmt

pygmt/tests/test_figure.py::test_figure_region pygmt/tests/test_figure.py::test_figure_region_multiple pygmt/tests/test_figure.py::test_figure_region_country_codes pygmt/tests/test_figure.py::test_figure_savefig_exists pygmt/tests/test_figure.py::test_figure_savefig_unknown_extension pygmt/tests/test_figure.py::test_figure_savefig_transparent pygmt/tests/test_figure.py::test_figure_savefig pygmt/tests/test_figure.py::test_figure_show pygmt/tests/test_figure.py::test_figure_show_invalid_method pygmt/tests/test_figure.py::test_figure_set_display_invalid
[ pygmt/tests/test_figure.py::test_figure_shift_origin
Makefile doc/_static/style.css pygmt/figure.py pygmt/__init__.py doc/api/index.rst doc/Makefile
Makefile doc/_static/style.css pygmt/figure.py pygmt/__init__.py doc/api/index.rst doc/Makefile