Details
-
Type:
Epic
-
Status: To Do
-
Resolution: Unresolved
-
Fix Version/s: None
-
Component/s: afw
-
Labels:
-
Epic Name:plotting abstraction layer
Description
The stack has dozens of "import matplotlib" statements scattered around. This can cause unexpected behavior, slowdowns and can mess up subsequent matplot commands (e.g. if a implicit import prevents a subsequent explicit import from setting the backend).
We provide an afw.display abstraction for doing ds9-related things, so we should also have an afw.plot or similar abstraction for plotting. One could then swap in Seaborn or another plotting system more easily, and it would reduce the "import matplotlib" to one place, which would only occur when e.g. that class is instantiated.
A first step of this would be a simple class that just handles the import and environment setup, while not actually abstracting away any of the matplotlib calls. We could then make it a more general abstraction layer if desired.
Attachments
Issue Links
- is triggered by
-
DM-3889 Multi-threaded matplotlib test issue in meas_algorithms
- Done
-
DM-4752 Build on Mac very slow due to running fc-list
- Done
- relates to
-
DM-33437 Eups distrib source installs of Spectractor (in Linux, in a desktop env) create interactive matplotlib windows
- Done
-
DM-8656 meas_astrom tests depend on PyQt4 and Qt4 and break with PyQt5 and Qt5
- Done
-
DM-14159 Wrap matplotlib use in meas_mosaic
- Done
-
DM-7444 Improve jointcal plotting backend
- Done
-
DM-8676 Hide matplotlib imports in meas_algorithms
- Done
-
DM-2588 Catch RuntimeError on matplotlib.pyplot import and remove more unprotected/unnecesary pyplot imports
- Done
-
DM-4096 Please unify the various scripts for displaying cameras
- Won't Fix
- mentioned in
-
Page Loading...
This is a worthy goal, but given all the different kinds of plots there are I think it would be difficult to do well. I strongly suggest you RFC this before starting anything to minimise frustration.