
.. _glossary:

********
Glossary
********

.. glossary::

  AGG
      The Anti-Grain Geometry (`Agg <http://antigrain.com/>`_) rendering
      engine, capable of rendering high-quality images

  Cairo
      The `Cairo graphics <https://cairographics.org>`_ engine


  dateutil
      The `dateutil <https://dateutil.readthedocs.io>`_ library
      provides extensions to the standard datetime module

  EPS
      Encapsulated Postscript (`EPS
      <https://en.wikipedia.org/wiki/Encapsulated_PostScript>`_)

  FreeType
      `FreeType <https://www.freetype.org/>`_ is a font rasterization
      library used by matplotlib which supports TrueType, Type 1, and
      OpenType fonts.


  GDK
      The Gimp Drawing Kit for GTK+

  GTK
      The GIMP Toolkit (`GTK <https://www.gtk.org/>`_) graphical user interface
      library

  JPG
      The Joint Photographic Experts Group (`JPEG
      <https://en.wikipedia.org/wiki/Jpeg>`_) compression method and
      file format for photographic images

  numpy
      `numpy <http://www.numpy.org/>`_ is the standard numerical
      array library for python, the successor to Numeric and numarray.
      numpy provides fast operations for homogeneous data sets and
      common mathematical operations like correlations, standard
      deviation, fourier transforms, and convolutions.

  PDF
      Adobe's Portable Document Format (`PDF
      <https://en.wikipedia.org/wiki/Portable_Document_Format>`_)

  PNG
      Portable Network Graphics (`PNG
      <https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_), a raster
      graphics format that employs lossless data compression which is more
      suitable for line art than the lossy jpg format. Unlike the gif format,
      png is not encumbered by requirements for a patent license.

  PS
      Postscript (`PS <https://en.wikipedia.org/wiki/PostScript>`_) is a
      vector graphics ASCII text language widely used in printers and
      publishing.  Postscript was developed by adobe systems and is
      starting to show its age: for example is does not have an alpha
      channel.  PDF was designed in part as a next-generation document
      format to replace postscript

  pgi
      `pgi <https://pypi.python.org/pypi/pgi/>` exists as a relatively
      new Python wrapper to GTK3 and acts as a pure python alternative to
      PyGObject.  pgi still exists in its infancy, currently missing many
      features of PyGObject.  However Matplotlib does not use any of these
      missing features.

  pygtk
      `pygtk <http://www.pygtk.org/>`_ provides python wrappers for
      the :term:`GTK` widgets library for use with the GTK or GTKAgg
      backend.  Widely used on linux, and is often packages as
      'python-gtk2'

  PyGObject
      Like :term:`pygtk`, `PyGObject <http://www.pygtk.org/>` provides
      python wrappers for the :term:`GTK` widgets library; unlike pygtk,
      PyGObject wraps GTK3 instead of the now obsolete GTK2.

  pyqt
      `pyqt <https://wiki.python.org/moin/PyQt>`_ provides python
      wrappers for the :term:`Qt` widgets library and is required by
      the matplotlib Qt5Agg and Qt4Agg backends.  Widely used on linux
      and windows; many linux distributions package this as
      'python-qt5' or 'python-qt4'.

  python
      `python <https://www.python.org>`_ is an object oriented interpreted
      language widely used for scripting, application development, web
      application servers, scientific computing and more.

  pytz
      `pytz <http://pythonhosted.org/pytz/>`_ provides the Olson tz
      database in Python. it allows accurate and cross platform
      timezone calculations and solves the issue of ambiguous times at
      the end of daylight savings

  Qt
      `Qt <https://www.qt.io/>`__ is a cross-platform
      application framework for desktop and embedded development.

  Qt4
      `Qt4 <http://doc.qt.io/qt-4.8/index.html>`__ is the previous,
      but most widely used, version of Qt cross-platform application
      framework for desktop and embedded development.

  Qt5
      `Qt5 <http://doc.qt.io/qt-5/index.html>`__ is the current
      version of Qt cross-platform application
      framework for desktop and embedded development.

  raster graphics
      `Raster graphics
      <https://en.wikipedia.org/wiki/Raster_graphics>`_, or bitmaps,
      represent an image as an array of pixels which is resolution
      dependent. Raster graphics are generally most practical for
      photo-realistic images, but do not scale easily without loss of
      quality.

  SVG
      The Scalable Vector Graphics format (`SVG
      <https://en.wikipedia.org/wiki/Svg>`_).  An XML based vector
      graphics format supported by many web browsers.

  TIFF
      Tagged Image File Format (`TIFF
      <https://en.wikipedia.org/wiki/Tagged_Image_File_Format>`_) is a
      file format for storing images, including photographs and line
      art.

  Tk
      `Tk <http://www.tcl.tk/>`_ is a graphical user interface for Tcl
      and many other dynamic languages. It can produce rich, native
      applications that run unchanged across Windows, Mac OS X, Linux
      and more.

  vector graphics
      `vector graphics
      <https://en.wikipedia.org/wiki/Vector_graphics>`_ use geometrical
      primitives based upon mathematical equations to represent images
      in computer graphics. Primitives can include points, lines,
      curves, and shapes or polygons. Vector graphics are scalable,
      which means that they can be resized without suffering from
      issues related to inherent resolution like are seen in raster
      graphics. Vector graphics are generally most practical for
      typesetting and graphic design applications.

  wxpython
      `wxpython <https://www.wxpython.org/>`_ provides python wrappers
      for the :term:`wxWidgets` library for use with the WX and WXAgg
      backends.  Widely used on linux, OS-X and windows, it is often
      packaged by linux distributions as 'python-wxgtk'

  wxWidgets
      `WX <http://www.wxwidgets.org/>`_ is cross-platform GUI and
      tools library for GTK, MS Windows, and MacOS.  It uses native
      widgets for each operating system, so applications will have the
      look-and-feel that users on that operating system expect.
