Metadata-Version: 2.4
Name: kwplot
Version: 0.5.5
Summary: The kwplot module
Author-email: Jon Crall <jon.crall@kitware.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://gitlab.kitware.com/computer-vision/kwplot
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: ubelt>=1.3.6; python_version >= "3.6"
Requires-Dist: matplotlib>=3.9.2; python_version < "4.0" and python_version >= "3.13"
Requires-Dist: matplotlib>=3.7.3; python_version < "3.13" and python_version >= "3.12"
Requires-Dist: matplotlib>=3.6.2; python_version < "3.12" and python_version >= "3.11"
Requires-Dist: matplotlib>=3.6.2; python_version < "3.11" and python_version >= "3.10"
Requires-Dist: matplotlib>=3.6.2; python_version < "3.10" and python_version >= "3.9"
Requires-Dist: matplotlib>=3.6.2; python_version < "3.9" and python_version >= "3.8"
Requires-Dist: kwarray>=0.6.19
Requires-Dist: kwimage>=0.10.0
Requires-Dist: numpy>=1.26.0; python_version < "4.0" and python_version >= "3.12"
Requires-Dist: numpy>=1.23.2; python_version < "3.12" and python_version >= "3.11"
Requires-Dist: numpy>=1.21.6; python_version < "3.11" and python_version >= "3.10"
Requires-Dist: numpy>=1.19.3; python_version < "3.10" and python_version >= "3.9"
Requires-Dist: numpy>=1.19.3; python_version < "3.9" and python_version >= "3.8"
Requires-Dist: numpy<2.0,>=1.19.2; python_version < "3.8" and python_version >= "3.7"
Requires-Dist: numpy<2.0,>=1.19.2; python_version < "3.7" and python_version >= "3.6"
Requires-Dist: kwconf>=0.12.0
Provides-Extra: all
Requires-Dist: seaborn>=0.11.2; extra == "all"
Requires-Dist: pandas>=2.1.1; (python_version < "4.0" and python_version >= "3.12") and extra == "all"
Requires-Dist: pandas>=1.5.0; (python_version < "3.12" and python_version >= "3.11") and extra == "all"
Requires-Dist: pandas>=1.3.5; (python_version < "3.11" and python_version >= "3.10") and extra == "all"
Requires-Dist: pandas>=1.4.0; (python_version < "3.10" and python_version >= "3.9") and extra == "all"
Requires-Dist: pandas>=1.4.0; (python_version < "3.9" and python_version >= "3.8") and extra == "all"
Requires-Dist: kwutil>=0.3.2; extra == "all"
Requires-Dist: opencv-python-headless>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "all"
Requires-Dist: opencv-python-headless>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "all"
Requires-Dist: opencv-python-headless>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "all"
Requires-Dist: opencv-python>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "all"
Requires-Dist: opencv-python>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "all"
Requires-Dist: opencv-python>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "all"
Requires-Dist: PyQt5>=5.10; extra == "all"
Requires-Dist: pandas-stubs>=1.2.0.61; extra == "all"
Requires-Dist: dataframe-image; extra == "all"
Requires-Dist: humanize; extra == "all"
Requires-Dist: kwcoco; extra == "all"
Provides-Extra: build
Provides-Extra: docs
Requires-Dist: sphinx>=5.0.1; extra == "docs"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "docs"
Requires-Dist: sphinx-autoapi>=1.8.4; extra == "docs"
Requires-Dist: Pygments>=2.9.0; extra == "docs"
Requires-Dist: myst_parser>=0.18.0; extra == "docs"
Requires-Dist: sphinx-reredirects>=0.0.1; extra == "docs"
Provides-Extra: graphics
Requires-Dist: opencv-python>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "graphics"
Requires-Dist: opencv-python>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "graphics"
Requires-Dist: opencv-python>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "graphics"
Provides-Extra: headless
Requires-Dist: opencv-python-headless>=4.10.0.84; (python_version < "4.0" and python_version >= "3.13") and extra == "headless"
Requires-Dist: opencv-python-headless>=4.5.5.64; (python_version < "3.13" and python_version >= "3.11") and extra == "headless"
Requires-Dist: opencv-python-headless>=4.5.4.58; (python_version < "3.11" and python_version >= "3.10") and extra == "headless"
Provides-Extra: linting
Requires-Dist: flake8>=5.0.0; extra == "linting"
Provides-Extra: optional
Requires-Dist: seaborn>=0.11.2; extra == "optional"
Requires-Dist: pandas>=2.1.1; (python_version < "4.0" and python_version >= "3.12") and extra == "optional"
Requires-Dist: pandas>=1.5.0; (python_version < "3.12" and python_version >= "3.11") and extra == "optional"
Requires-Dist: pandas>=1.3.5; (python_version < "3.11" and python_version >= "3.10") and extra == "optional"
Requires-Dist: pandas>=1.4.0; (python_version < "3.10" and python_version >= "3.9") and extra == "optional"
Requires-Dist: pandas>=1.4.0; (python_version < "3.9" and python_version >= "3.8") and extra == "optional"
Requires-Dist: kwutil>=0.3.2; extra == "optional"
Provides-Extra: qt
Requires-Dist: PyQt5>=5.10; extra == "qt"
Provides-Extra: tests
Requires-Dist: coverage>=5.3.1; extra == "tests"
Requires-Dist: xdoctest>=1.1.1; extra == "tests"
Requires-Dist: pytest>=6.2.5; python_version >= "3.10.0" and extra == "tests"
Requires-Dist: pytest>=4.6.0; (python_version < "3.10.0" and python_version >= "3.7.0") and extra == "tests"
Requires-Dist: pytest>=4.6.0; (python_version < "3.7.0" and python_version >= "3.6.0") and extra == "tests"
Requires-Dist: pytest<=6.1.2,>=4.6.0; (python_version < "3.6.0" and python_version >= "3.5.0") and extra == "tests"
Requires-Dist: pytest<=4.6.11,>=4.6.0; (python_version < "3.5.0" and python_version >= "3.4.0") and extra == "tests"
Requires-Dist: pytest<=4.6.11,>=4.6.0; (python_version < "2.8.0" and python_version >= "2.7.0") and extra == "tests"
Requires-Dist: pytest-cov>=3.0.0; python_version >= "3.6.0" and extra == "tests"
Requires-Dist: pytest-cov>=2.9.0; (python_version < "3.6.0" and python_version >= "3.5.0") and extra == "tests"
Requires-Dist: pytest-cov>=2.8.1; (python_version < "3.5.0" and python_version >= "3.4.0") and extra == "tests"
Requires-Dist: pytest-cov>=2.8.1; (python_version < "2.8.0" and python_version >= "2.7.0") and extra == "tests"
Provides-Extra: types
Requires-Dist: pandas-stubs>=1.2.0.61; extra == "types"
Requires-Dist: dataframe-image; extra == "types"
Requires-Dist: humanize; extra == "types"
Requires-Dist: kwcoco; extra == "types"
Dynamic: license-file

The Kitware Plot Module
=======================

|GitlabCIPipeline| |GitlabCICoverage| |Appveyor| |Pypi| |Downloads| |ReadTheDocs|

+------------------+------------------------------------------------------+
| ReadTheDocs      | https://kwplot.readthedocs.io/en/latest/             |
+------------------+------------------------------------------------------+
| Gitlab (main)    | https://gitlab.kitware.com/computer-vision/kwplot    |
+------------------+------------------------------------------------------+
| Github (mirror)  | https://github.com/Kitware/kwplot                    |
+------------------+------------------------------------------------------+
| Pypi             | https://pypi.org/project/kwplot                      |
+------------------+------------------------------------------------------+

The ``kwplot`` module is a wrapper around ``matplotlib`` and can be used for
visualizing algorithm results.

The top-level API is:

.. code:: python

    from .auto_backends import (autompl, autoplt, set_mpl_backend,)
    from .draw_conv import (make_conv_images, plot_convolutional_features,)
    from .mpl_3d import (plot_surface3d,)
    from .mpl_color import (Color,)
    from .mpl_core import (distinct_colors, distinct_markers, ensure_fnum, figure,
                           imshow, legend, next_fnum, set_figtitle,
                           show_if_requested,)
    from .mpl_draw import (draw_boxes, draw_boxes_on_image, draw_clf_on_image,
                           draw_line_segments, draw_text_on_image, plot_matrix, draw_points,)
    from .mpl_make import (make_heatmask, make_orimask, make_vector_field,)
    from .mpl_multiplot import (multi_plot,)
    from .mpl_plotnums import (PlotNums,)

One of the key features is the `kwplot.autompl <https://kwplot.readthedocs.io/en/main/kwplot.html#kwplot.autompl>`_
function, which is able to somewhat intelligently set the notorious matplotlib
backend.
By default it will attempt to use ``PyQt5`` if it is installed and a
``DISPLAY`` is available. Otherwise it will ensure the backend is set to
``Agg``. For convinience, the functions:
`kwplot.autoplt <https://kwplot.readthedocs.io/en/main/kwplot.html#kwplot.autoplt>`_ and
`kwplot.autosns <https://kwplot.readthedocs.io/en/main/kwplot.html#kwplot.autosns>`_
also execute this auto-backend behavior, but return the pyplot and seaborn
module, respectively.  It is recommended to call one of these functions before
any use of pyplot due to pyplot's import-time side effects (note: pre-importing
most other matplotlib modules is ok).

The ``kwplot.imshow`` and ``kwplot.figure`` functions are extensions of the
``matplotlib`` versions with slightly extended interfaces (again to help reduce
the density of visualization code in research scripts). The ``kwplot.PlotNums``
helps manage subplots locations, especially when you are developing /
reordering them.


.. |Pypi| image:: https://img.shields.io/pypi/v/kwplot.svg
   :target: https://pypi.python.org/pypi/kwplot

.. |Downloads| image:: https://img.shields.io/pypi/dm/kwplot.svg
   :target: https://pypistats.org/packages/kwplot

.. |ReadTheDocs| image:: https://readthedocs.org/projects/kwplot/badge/?version=main
    :target: http://kwplot.readthedocs.io/en/main/

.. # See: https://ci.appveyor.com/project/jon.crall/kwplot/settings/badges
.. |Appveyor| image:: https://ci.appveyor.com/api/projects/status/py3s2d6tyfjc8lm3/branch/main?svg=true
   :target: https://ci.appveyor.com/project/jon.crall/kwplot/branch/main

.. |GitlabCIPipeline| image:: https://gitlab.kitware.com/computer-vision/kwplot/badges/main/pipeline.svg
   :target: https://gitlab.kitware.com/computer-vision/kwplot/-/jobs

.. |GitlabCICoverage| image:: https://gitlab.kitware.com/computer-vision/kwplot/badges/main/coverage.svg
    :target: https://gitlab.kitware.com/computer-vision/kwplot/commits/main
