Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-5790

Provide unified plotting abstraction layer

    Details

    • Type: Epic
    • Status: To Do
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: afw
    • Templates:
    • 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

          Container Issues

            Issue Links

              Activity

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  Parejkoj John Parejko
                  Watchers:
                  David Shupe, John Parejko, John Swinbank, Jonathan Sick, Michael Wood-Vasey, Paul Price, Simon Krughoff, Tim Jenness
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:

                    Summary Panel