Closed
Description
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 returnself
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 functionpygmt.enable_notebook
which would set a flag to tellshow
not to do anything and/or through an environment variablePYGMT_DISPLAY
which can be set tonone
or other options that the user might want. Ideally, we should have both. The env variable will be useful when building the docs.