diff --git a/doc/api/backend_gtk4_api.rst b/doc/api/backend_gtk4_api.rst
new file mode 100644
index 000000000000..c2bc05d6f36c
--- /dev/null
+++ b/doc/api/backend_gtk4_api.rst
@@ -0,0 +1,16 @@
+**NOTE** These backends are not documented here, to avoid adding a dependency
+to building the docs.
+
+.. redirect-from:: /api/backend_gtk4agg_api
+.. redirect-from:: /api/backend_gtk4cairo_api
+
+
+:mod:`matplotlib.backends.backend_gtk4agg`
+==========================================
+
+.. module:: matplotlib.backends.backend_gtk4agg
+
+:mod:`matplotlib.backends.backend_gtk4cairo`
+============================================
+
+.. module:: matplotlib.backends.backend_gtk4cairo
diff --git a/doc/api/index.rst b/doc/api/index.rst
index 9c33f38ad6d8..ed0e7f310275 100644
--- a/doc/api/index.rst
+++ b/doc/api/index.rst
@@ -101,21 +101,6 @@ Alphabetical list of modules:
widgets_api.rst
_api_api.rst
_enums_api.rst
-
-Toolkits
---------
-
-:ref:`toolkits-index` are collections of application-specific functions that extend
-Matplotlib. The following toolkits are included:
-
-.. toctree::
- :hidden:
-
- toolkits/index.rst
-
-.. toctree::
- :maxdepth: 1
-
toolkits/mplot3d.rst
toolkits/axes_grid1.rst
toolkits/axisartist.rst
diff --git a/doc/api/index_backend_api.rst b/doc/api/index_backend_api.rst
index ad2febf8dc38..25c06820c9da 100644
--- a/doc/api/index_backend_api.rst
+++ b/doc/api/index_backend_api.rst
@@ -10,6 +10,7 @@
backend_agg_api.rst
backend_cairo_api.rst
backend_gtk3_api.rst
+ backend_gtk4_api.rst
backend_nbagg_api.rst
backend_pdf_api.rst
backend_pgf_api.rst
diff --git a/doc/api/next_api_changes/behavior/21031-AL.rst b/doc/api/next_api_changes/behavior/21031-AL.rst
new file mode 100644
index 000000000000..ec1a80f9478a
--- /dev/null
+++ b/doc/api/next_api_changes/behavior/21031-AL.rst
@@ -0,0 +1,3 @@
+Setting invalid ``rcParams["date.converter"]`` now raises ValueError
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Previously, invalid values would be ignored with a UserWarning.
diff --git a/doc/api/next_api_changes/deprecations/20995-AL.rst b/doc/api/next_api_changes/deprecations/20995-AL.rst
new file mode 100644
index 000000000000..bdccd8f5d333
--- /dev/null
+++ b/doc/api/next_api_changes/deprecations/20995-AL.rst
@@ -0,0 +1,3 @@
+``backend_gtk3.icon_filename`` and ``backend_gtk3.window_icon``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... are deprecated with no replacement.
diff --git a/doc/api/next_api_changes/deprecations/21056-AL.rst b/doc/api/next_api_changes/deprecations/21056-AL.rst
new file mode 100644
index 000000000000..1b169ae49d2b
--- /dev/null
+++ b/doc/api/next_api_changes/deprecations/21056-AL.rst
@@ -0,0 +1,3 @@
+Calling ``MarkerStyle()`` with no arguments
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... is deprecated; use ``MarkerStyle("")`` to construct an empty marker style.
diff --git a/doc/api/next_api_changes/removals/20990-AL.rst b/doc/api/next_api_changes/removals/20990-AL.rst
new file mode 100644
index 000000000000..29e24786be85
--- /dev/null
+++ b/doc/api/next_api_changes/removals/20990-AL.rst
@@ -0,0 +1,4 @@
+Support for passing tool names to ``ToolManager.add_tool``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... has been removed. The second parameter to add_tool must now always be a
+tool class.
diff --git a/doc/api/prev_api_changes/api_changes_1.1.x.rst b/doc/api/prev_api_changes/api_changes_1.1.x.rst
index 8320e2c4fc09..790b669081b7 100644
--- a/doc/api/prev_api_changes/api_changes_1.1.x.rst
+++ b/doc/api/prev_api_changes/api_changes_1.1.x.rst
@@ -1,6 +1,6 @@
-Changes in 1.1.x
-================
+API Changes in 1.1.x
+====================
* Added new :class:`matplotlib.sankey.Sankey` for generating Sankey diagrams.
diff --git a/doc/api/prev_api_changes/api_changes_1.2.x.rst b/doc/api/prev_api_changes/api_changes_1.2.x.rst
index 6d83874e6471..45a2f35cf29e 100644
--- a/doc/api/prev_api_changes/api_changes_1.2.x.rst
+++ b/doc/api/prev_api_changes/api_changes_1.2.x.rst
@@ -1,5 +1,5 @@
-Changes in 1.2.x
-================
+API Changes in 1.2.x
+====================
* The ``classic`` option of the rc parameter ``toolbar`` is deprecated
and will be removed in the next release.
diff --git a/doc/api/prev_api_changes/api_changes_1.3.x.rst b/doc/api/prev_api_changes/api_changes_1.3.x.rst
index 5b596d83b5e2..1cfba079bb5e 100644
--- a/doc/api/prev_api_changes/api_changes_1.3.x.rst
+++ b/doc/api/prev_api_changes/api_changes_1.3.x.rst
@@ -1,8 +1,8 @@
.. _changes_in_1_3:
-Changes in 1.3.x
-================
+API Changes in 1.3.x
+====================
Changes in 1.3.1
----------------
diff --git a/doc/api/prev_api_changes/api_changes_1.4.x.rst b/doc/api/prev_api_changes/api_changes_1.4.x.rst
index 2d49b4b6651a..d0952784677c 100644
--- a/doc/api/prev_api_changes/api_changes_1.4.x.rst
+++ b/doc/api/prev_api_changes/api_changes_1.4.x.rst
@@ -1,5 +1,5 @@
-Changes in 1.4.x
-================
+API Changes in 1.4.x
+====================
Code changes
------------
diff --git a/doc/api/prev_api_changes/api_changes_1.5.0.rst b/doc/api/prev_api_changes/api_changes_1.5.0.rst
index abed630b126c..b51f311d8836 100644
--- a/doc/api/prev_api_changes/api_changes_1.5.0.rst
+++ b/doc/api/prev_api_changes/api_changes_1.5.0.rst
@@ -1,6 +1,6 @@
-Changes in 1.5.0
-================
+API Changes in 1.5.0
+====================
Code Changes
------------
diff --git a/doc/api/prev_api_changes/api_changes_1.5.2.rst b/doc/api/prev_api_changes/api_changes_1.5.2.rst
index d2ee33546314..85c504fa6f12 100644
--- a/doc/api/prev_api_changes/api_changes_1.5.2.rst
+++ b/doc/api/prev_api_changes/api_changes_1.5.2.rst
@@ -1,5 +1,5 @@
-Changes in 1.5.2
-================
+API Changes in 1.5.2
+====================
Default Behavior Changes
diff --git a/doc/api/prev_api_changes/api_changes_1.5.3.rst b/doc/api/prev_api_changes/api_changes_1.5.3.rst
index 0dc025111eae..ff5d6a9cf996 100644
--- a/doc/api/prev_api_changes/api_changes_1.5.3.rst
+++ b/doc/api/prev_api_changes/api_changes_1.5.3.rst
@@ -1,5 +1,5 @@
-Changes in 1.5.3
-================
+API Changes in 1.5.3
+====================
``ax.plot(..., marker=None)`` gives default marker
--------------------------------------------------
diff --git a/doc/api/toolkits/index.rst b/doc/api/toolkits/index.rst
deleted file mode 100644
index 59c01ab21a69..000000000000
--- a/doc/api/toolkits/index.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-.. _toolkits-index:
-
-.. _toolkits:
-
-########
-Toolkits
-########
-
-Toolkits are collections of application-specific functions that extend
-Matplotlib.
-
-.. _toolkit_mplot3d:
-
-mplot3d
-=======
-
-:mod:`mpl_toolkits.mplot3d` provides some basic 3D
-plotting (scatter, surf, line, mesh) tools. Not the fastest or most feature
-complete 3D library out there, but it ships with Matplotlib and thus may be a
-lighter weight solution for some use cases. Check out the
-:doc:`mplot3d tutorial ` for more
-information.
-
-.. figure:: ../../gallery/mplot3d/images/sphx_glr_contourf3d_2_001.png
- :target: ../../gallery/mplot3d/contourf3d_2.html
- :align: center
- :scale: 50
-
-.. toctree::
- :maxdepth: 2
-
- mplot3d/index.rst
- mplot3d/faq.rst
-
-Links
------
-* mpl3d API: :ref:`toolkit_mplot3d-api`
-
-.. include:: axes_grid1.rst
- :start-line: 1
-
-.. include:: axisartist.rst
- :start-line: 1
-
-.. include:: axes_grid.rst
- :start-line: 1
diff --git a/doc/api/toolkits/mplot3d.rst b/doc/api/toolkits/mplot3d.rst
index 97d3bf13246f..5b3cb52571bb 100644
--- a/doc/api/toolkits/mplot3d.rst
+++ b/doc/api/toolkits/mplot3d.rst
@@ -1,8 +1,32 @@
-.. _toolkit_mplot3d-api:
+.. _toolkit_mplot3d-index:
+.. currentmodule:: mpl_toolkits.mplot3d
+
+************************
+``mpl_toolkits.mplot3d``
+************************
+
+The mplot3d toolkit adds simple 3D plotting capabilities (scatter, surface,
+line, mesh, etc.) to Matplotlib by supplying an Axes object that can create
+a 2D projection of a 3D scene. The resulting graph will have the same look
+and feel as regular 2D plots. Not the fastest or most feature complete 3D
+library out there, but it ships with Matplotlib and thus may be a lighter
+weight solution for some use cases.
+
+See the :doc:`mplot3d tutorial ` for
+more information.
+
+.. image:: /_static/demo_mplot3d.png
+ :align: center
+
+The interactive backends also provide the ability to rotate and zoom the 3D
+scene. One can rotate the 3D scene by simply clicking-and-dragging the scene.
+Zooming is done by right-clicking the scene and dragging the mouse up and down
+(unlike 2D plots, the toolbar zoom button is not used).
+
+.. toctree::
+ :maxdepth: 2
-***********
-mplot3d API
-***********
+ mplot3d/faq.rst
.. note::
`.pyplot` cannot be used to add content to 3D plots, because its function
diff --git a/doc/api/toolkits/mplot3d/index.rst b/doc/api/toolkits/mplot3d/index.rst
deleted file mode 100644
index 8b153c06903f..000000000000
--- a/doc/api/toolkits/mplot3d/index.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _toolkit_mplot3d-index:
-.. currentmodule:: mpl_toolkits.mplot3d
-
-*******
-mplot3d
-*******
-
-Matplotlib mplot3d toolkit
-==========================
-The mplot3d toolkit adds simple 3D plotting capabilities to matplotlib by
-supplying an axes object that can create a 2D projection of a 3D scene.
-The resulting graph will have the same look and feel as regular 2D plots.
-
-See the :doc:`mplot3d tutorial ` for
-more information on how to use this toolkit.
-
-.. image:: /_static/demo_mplot3d.png
-
-The interactive backends also provide the ability to rotate and zoom
-the 3D scene. One can rotate the 3D scene by simply clicking-and-dragging
-the scene. Zooming is done by right-clicking the scene and dragging the
-mouse up and down. Note that one does not use the zoom button like one
-would use for regular 2D plots.
-
-.. toctree::
- :maxdepth: 2
-
- faq.rst
diff --git a/doc/conf.py b/doc/conf.py
index 00f7ed7c5ea2..77b879d6f371 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -71,12 +71,15 @@
'sphinxext.skip_deprecated',
'sphinxext.redirect_from',
'sphinx_copybutton',
+ 'sphinx_panels',
]
exclude_patterns = [
'api/prev_api_changes/api_changes_*/*',
]
+panels_add_bootstrap_css = False
+
def _check_dependencies():
names = {
@@ -312,8 +315,9 @@ def _check_dependencies():
"url": "https://twitter.com/matplotlib/",
"icon": "fab fa-twitter-square",
},
-
],
+ "show_prev_next": False,
+ "navbar_center": ["mpl_nav_bar.html"],
}
include_analytics = False
if include_analytics:
@@ -341,8 +345,10 @@ def _check_dependencies():
# Custom sidebar templates, maps page names to templates.
html_sidebars = {
"index": [
+ 'search-field.html',
# 'sidebar_announcement.html',
"sidebar_versions.html",
+ "cheatsheet_sidebar.html",
"donate_sidebar.html",
],
# '**': ['localtoc.html', 'pagesource.html']
diff --git a/doc/contents.rst b/doc/contents.rst
index 37fd17172ce2..f9d10936c7fc 100644
--- a/doc/contents.rst
+++ b/doc/contents.rst
@@ -1,4 +1,4 @@
-
+.. _complete_sitemap:
Contents
========
@@ -15,13 +15,10 @@ Contents
:maxdepth: 2
users/installing.rst
- plot_types/index.rst
- gallery/index.rst
- tutorials/index.rst
- api/index.rst
users/index.rst
+ users/backmatter.rst
devel/index.rst
- Third-party packages
+ users/release_notes.rst
.. only:: html
diff --git a/doc/devel/MEP/MEP15.rst b/doc/devel/MEP/MEP15.rst
index dc1802e33b8c..8e2f80707429 100644
--- a/doc/devel/MEP/MEP15.rst
+++ b/doc/devel/MEP/MEP15.rst
@@ -1,6 +1,6 @@
-==========================================================================
- MEP15 - Fix axis autoscaling when limits are specified for one axis only
-==========================================================================
+=========================================================================
+ MEP15: Fix axis autoscaling when limits are specified for one axis only
+=========================================================================
.. contents::
:local:
diff --git a/doc/devel/MEP/MEP24.rst b/doc/devel/MEP/MEP24.rst
index 53f0609f3e9b..b0620ce3dc8f 100644
--- a/doc/devel/MEP/MEP24.rst
+++ b/doc/devel/MEP/MEP24.rst
@@ -1,5 +1,5 @@
=======================================
- MEP24: negative radius in polar plots
+ MEP24: Negative radius in polar plots
=======================================
.. contents::
diff --git a/doc/devel/MEP/MEP27.rst b/doc/devel/MEP/MEP27.rst
index 13ed37cb73cb..d4ea57f1b6a6 100644
--- a/doc/devel/MEP/MEP27.rst
+++ b/doc/devel/MEP/MEP27.rst
@@ -1,5 +1,5 @@
======================================
- MEP27: decouple pyplot from backends
+ MEP27: Decouple pyplot from backends
======================================
.. contents::
diff --git a/doc/devel/dependencies.rst b/doc/devel/dependencies.rst
index 5502664f4b35..1007210b8ba9 100644
--- a/doc/devel/dependencies.rst
+++ b/doc/devel/dependencies.rst
@@ -42,9 +42,9 @@ and the capabilities they provide.
* Tk_ (>= 8.4, != 8.6.0 or 8.6.1) [#]_: for the Tk-based backends.
* PyQt6_ (>= 6.1), PySide6_, PyQt5_, or PySide2_: for the Qt-based backends.
-* PyGObject_: for the GTK3-based backends [#]_.
+* PyGObject_: for the GTK-based backends [#]_.
* wxPython_ (>= 4) [#]_: for the wx-based backends.
-* pycairo_ (>= 1.11.0) or cairocffi_ (>= 0.8): for the GTK3 and/or cairo-based
+* pycairo_ (>= 1.11.0) or cairocffi_ (>= 0.8): for the GTK and/or cairo-based
backends.
* Tornado_: for the WebAgg backend.
diff --git a/doc/devel/testing.rst b/doc/devel/testing.rst
index aa189948003c..65898b95ee0c 100644
--- a/doc/devel/testing.rst
+++ b/doc/devel/testing.rst
@@ -244,7 +244,7 @@ The correct target folder can be found using::
python -c "import matplotlib.tests; print(matplotlib.tests.__file__.rsplit('/', 1)[0])"
An analogous copying of :file:`lib/mpl_toolkits/tests/baseline_images`
-is necessary for testing the :ref:`toolkits`.
+is necessary for testing ``mpl_toolkits``.
Run the tests
^^^^^^^^^^^^^
diff --git a/doc/faq/index.rst b/doc/faq/index.rst
index def68fc84c71..bb477de21f0e 100644
--- a/doc/faq/index.rst
+++ b/doc/faq/index.rst
@@ -1,8 +1,8 @@
.. _faq-index:
-##################
-The Matplotlib FAQ
-##################
+######
+How-to
+######
.. only:: html
diff --git a/doc/index.rst b/doc/index.rst
index 0350a1047a9f..9d77ba0a4d39 100644
--- a/doc/index.rst
+++ b/doc/index.rst
@@ -4,43 +4,109 @@
.. module:: matplotlib
-Matplotlib documentation
-------------------------
-Release: |release|
+Matplotlib |release| documentation
+----------------------------------
Matplotlib is a comprehensive library for creating static, animated,
and interactive visualizations in Python.
-Learn
-=====
-
-- :doc:`Quick-start Guide `
-- Basic :doc:`Plot Types ` and :doc:`Example Gallery `
-- `Introductory Tutorials <../tutorials/index.html#introductory>`_
-- :doc:`External Learning Resources `
-
-Reference
-=========
+Installation
+============
-- :doc:`API Reference `
+.. panels::
+ :card: + install-card
+ :column: col-lg-6 col-md-6 col-sm-12 col-xs-12 p-3
- - :doc:`pyplot API `: top-level interface to create
- Figures (`.pyplot.figure`) and Subplots (`.pyplot.subplots`,
- `.pyplot.subplot_mosaic`)
- - :doc:`Axes API ` for *most* plotting methods
- - :doc:`Figure API ` for figure-level methods
+ Installing using `conda `__
+ ^^^^^^^^^^^^^^^^^^^^^^
-- :doc:`Extra Toolkits `
-How-tos
-=======
-- :doc:`Installation Guide `
-- :doc:`Contributing to Matplotlib `
-- :doc:`Matplotlib FAQ `
+ .. code-block:: bash
-Understand how Matplotlib works
-===============================
+ conda install matplotlib
-- Many of the :doc:`Tutorials ` have explanatory material
+ ---
+
+ Installing using `pip `__
+ ^^^^^^^^^^^^^^^^^^^^
+
+
+ .. code-block:: bash
+
+ pip install matplotlib
+
+
+Further details are available in the :doc:`Installation Guide `.
+
+
+Learning resources
+==================
+
+
+.. panels::
+
+ Tutorials
+ ^^^^^^^^^
+
+ - :doc:`Quick-start Guide `
+ - :doc:`Plot Types `
+ - `Introductory Tutorials <../tutorials/index.html#introductory>`_
+ - :doc:`External Learning Resources `
+
+ ---
+
+ How-tos
+ ^^^^^^^
+ - :doc:`Example Gallery `
+ - :doc:`Matplotlib FAQ `
+
+ ---
+
+ Understand how Matplotlib works
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ - The :ref:`users-guide-explain` section of the :doc:`Users guide `
+ - Many of the :ref:`Intermediate ` and
+ :ref:`Advanced ` Tutorials
+ have explanatory material
+
+ ---
+
+ Reference
+ ^^^^^^^^^
+
+ - :doc:`API Reference `
+ - :doc:`Axes API ` for *most* plotting methods
+ - :doc:`Figure API ` for figure-level methods
+ - Top-level interfaces to create:
+
+ - Figures (`.pyplot.figure`)
+ - Subplots (`.pyplot.subplots`, `.pyplot.subplot_mosaic`)
+
+
+
+Third-party packages
+--------------------
+
+There are many `Third-party packages
+`_ built on top of and extending
+Matplotlib.
+
+
+Contributing
+------------
+
+Matplotlib is a community project maitained for and by its users. There are many ways
+you can help!
+
+- Help other users `on discourse `__
+- report a bug or request a feature `on GitHub `__
+- or improve the :ref:`documentation and code `
+
+
+Site map
+--------
+
+The :ref:`complete contents of the docs `.
diff --git a/doc/thirdpartypackages/index.rst b/doc/thirdpartypackages/index.rst
index e6c6aa401526..81dc4d710a52 100644
--- a/doc/thirdpartypackages/index.rst
+++ b/doc/thirdpartypackages/index.rst
@@ -1,369 +1,5 @@
:orphan:
-.. note::
+.. raw:: html
- This page has been moved to ,
- where you will find an up-to-date list of packages.
-
-
-********************
-Third party packages
-********************
-
-Several external packages that extend or build on Matplotlib functionality are
-listed below. You can find more packages at `PyPI `_.
-They are maintained and distributed separately from Matplotlib,
-and thus need to be installed individually.
-
-If you have a created a package that extends or builds on Matplotlib
-and would like to have your package listed on this page, please submit
-an issue or pull request on GitHub. The pull request should include a short
-description of the library and an image demonstrating the functionality.
-To be included in the PyPI listing, please include ``Framework :: Matplotlib``
-in the classifier list in the ``setup.py`` file for your package. We are also
-happy to host third party packages within the `Matplotlib GitHub Organization
-`_.
-
-
-Mapping toolkits
-****************
-
-Basemap
-=======
-`Basemap `_ plots data on map projections,
-with continental and political boundaries.
-
-.. image:: /_static/basemap_contour1.png
- :height: 400px
-
-Cartopy
-=======
-`Cartopy `_ builds on top
-of Matplotlib to provide object oriented map projection definitions
-and close integration with Shapely for powerful yet easy-to-use vector
-data processing tools. An example plot from the `Cartopy gallery
-`_:
-
-.. image:: /_static/cartopy_hurricane_katrina_01_00.png
- :height: 400px
-
-Geoplot
-=======
-`Geoplot `_ builds on top
-of Matplotlib and Cartopy to provide a "standard library" of simple, powerful,
-and customizable plot types. An example plot from the `Geoplot gallery
-`_:
-
-.. image:: /_static/geoplot_nyc_traffic_tickets.png
- :height: 400px
-
-Ridge Map
-=========
-`ridge_map `_ uses Matplotlib,
-SRTM.py, NumPy, and scikit-image to make ridge plots of your favorite
-ridges.
-
-.. image:: /_static/ridge_map_white_mountains.png
- :height: 364px
-
-Declarative libraries
-*********************
-
-ggplot
-======
-`ggplot `_ is a port of the R ggplot2 package
-to python based on Matplotlib.
-
-.. image:: /_static/ggplot.png
- :height: 195px
-
-holoviews
-=========
-`holoviews `_ makes it easier to visualize data
-interactively, especially in a `Jupyter notebook `_, by
-providing a set of declarative plotting objects that store your data and
-associated metadata. Your data is then immediately visualizable alongside or
-overlaid with other data, either statically or with automatically provided
-widgets for parameter exploration.
-
-.. image:: /_static/holoviews.png
- :height: 354px
-
-plotnine
-========
-
-`plotnine `_ implements a grammar
-of graphics, similar to R's `ggplot2 `_.
-The grammar allows users to compose plots by explicitly mapping data to the
-visual objects that make up the plot.
-
-.. image:: /_static/plotnine.png
-
-Specialty plots
-***************
-
-Broken Axes
-===========
-`brokenaxes `_ supplies an axes
-class that can have a visual break to indicate a discontinuous range.
-
-.. image:: /_static/brokenaxes.png
-
-DeCiDa
-======
-
-`DeCiDa `_ is a library of functions
-and classes for electron device characterization, electronic circuit design and
-general data visualization and analysis.
-
-matplotlib-scalebar
-===================
-
-`matplotlib-scalebar `_ provides a new artist to display a scale bar, aka micron bar.
-It is particularly useful when displaying calibrated images plotted using ``plt.imshow(...)``.
-
-.. image:: /_static/gold_on_carbon.jpg
-
-Matplotlib-Venn
-===============
-`Matplotlib-Venn `_ provides a
-set of functions for plotting 2- and 3-set area-weighted (or unweighted) Venn
-diagrams.
-
-mpl-probscale
-=============
-`mpl-probscale `_ is a small extension
-that allows Matplotlib users to specify probability scales. Simply importing the
-``probscale`` module registers the scale with Matplotlib, making it accessible
-via e.g., ``ax.set_xscale('prob')`` or ``plt.yscale('prob')``.
-
-.. image:: /_static/probscale_demo.png
-
-mpl-scatter-density
-===================
-
-`mpl-scatter-density `_ is a
-small package that makes it easy to make scatter plots of large numbers
-of points using a density map. The following example contains around 13 million
-points and the plotting (excluding reading in the data) took less than a
-second on an average laptop:
-
-.. image:: /_static/mpl-scatter-density.png
- :height: 400px
-
-When used in interactive mode, the density map is downsampled on-the-fly while
-panning/zooming in order to provide a smooth interactive experience.
-
-mplstereonet
-============
-`mplstereonet `_ provides
-stereonets for plotting and analyzing orientation data in Matplotlib.
-
-Natgrid
-=======
-`mpl_toolkits.natgrid `_ is an interface
-to the natgrid C library for gridding irregularly spaced data.
-
-pyUpSet
-=======
-`pyUpSet `_ is a
-static Python implementation of the `UpSet suite by Lex et al.
-`_ to explore complex intersections of
-sets and data frames.
-
-seaborn
-=======
-`seaborn `_ is a high level interface for drawing
-statistical graphics with Matplotlib. It aims to make visualization a central
-part of exploring and understanding complex datasets.
-
-.. image:: /_static/seaborn.png
- :height: 157px
-
-WCSAxes
-=======
-
-The `Astropy `_ core package includes a submodule
-called WCSAxes (available at `astropy.visualization.wcsaxes
-`_) which
-adds Matplotlib projections for Astronomical image data. The following is an
-example of a plot made with WCSAxes which includes the original coordinate
-system of the image and an overlay of a different coordinate system:
-
-.. image:: /_static/wcsaxes.jpg
- :height: 400px
-
-Windrose
-========
-`Windrose `_ is a Python Matplotlib,
-Numpy library to manage wind data, draw windroses (also known as polar rose
-plots), draw probability density functions and fit Weibull distributions.
-
-Yellowbrick
-===========
-`Yellowbrick `_ is a suite of visual diagnostic tools for machine learning that enables human steering of the model selection process. Yellowbrick combines scikit-learn with matplotlib using an estimator-based API called the ``Visualizer``, which wraps both sklearn models and matplotlib Axes. ``Visualizer`` objects fit neatly into the machine learning workflow allowing data scientists to integrate visual diagnostic and model interpretation tools into experimentation without extra steps.
-
-.. image:: /_static/yellowbrick.png
- :height: 400px
-
-Animations
-**********
-
-animatplot
-==========
-`animatplot `_ is a library for
-producing interactive animated plots with the goal of making production of
-animated plots almost as easy as static ones.
-
-.. image:: /_static/animatplot.png
-
-For an animated version of the above picture and more examples, see the
-`animatplot gallery. `_
-
-gif
-===
-`gif `_ is an ultra lightweight animated gif API.
-
-.. image:: /_static/gif_attachment_example.png
-
-numpngw
-=======
-
-`numpngw `_ provides functions for writing
-NumPy arrays to PNG and animated PNG files. It also includes the class
-``AnimatedPNGWriter`` that can be used to save a Matplotlib animation as an
-animated PNG file. See the example on the PyPI page or at the ``numpngw``
-`github repository `_.
-
-.. image:: /_static/numpngw_animated_example.png
-
-Interactivity
-*************
-
-mplcursors
-==========
-`mplcursors `_ provides interactive data
-cursors for Matplotlib.
-
-MplDataCursor
-=============
-`MplDataCursor `_ is a toolkit
-written by Joe Kington to provide interactive "data cursors" (clickable
-annotation boxes) for Matplotlib.
-
-mpl_interactions
-================
-`mpl_interactions `_
-makes it easy to create interactive plots controlled by sliders and other
-widgets. It also provides several handy capabilities such as manual
-image segmentation, comparing cross-sections of arrays, and using the
-scroll wheel to zoom.
-
-.. image:: /_static/mpl-interactions-slider-animated.png
-
-Rendering backends
-******************
-
-mplcairo
-========
-`mplcairo `_ is a cairo backend for
-Matplotlib, with faster and more accurate marker drawing, support for a wider
-selection of font formats and complex text layout, and various other features.
-
-gr
-==
-`gr `_ is a framework for cross-platform
-visualisation applications, which can be used as a high-performance Matplotlib
-backend.
-
-GUI integration
-***************
-
-wxmplot
-=======
-`WXMPlot `_ provides advanced wxPython
-widgets for plotting and image display of numerical data based on Matplotlib.
-
-Miscellaneous
-*************
-
-adjustText
-==========
-`adjustText `_ is a small library for
-automatically adjusting text position in Matplotlib plots to minimize overlaps
-between them, specified points and other objects.
-
-.. image:: /_static/adjustText.png
-
-iTerm2 terminal backend
-=======================
-`matplotlib_iterm2 `_ is an
-external Matplotlib backend using the iTerm2 nightly build inline image display
-feature.
-
-.. image:: /_static/matplotlib_iterm2_demo.png
-
-mpl-template
-============
-`mpl-template `_ provides
-a customizable way to add engineering figure elements such as a title block,
-border, and logo.
-
-.. image:: /_static/mpl_template_example.png
- :height: 330px
-
-figpager
-========
-`figpager `_ provides customizable figure
-elements such as text, lines and images and subplot layout control for single
-or multi page output.
-
- .. image:: /_static/figpager.png
-
-blume
-=====
-
-`blume `_ provides a replacement for
-the Matplotlib ``table`` module. It fixes a number of issues with the
-existing table. See the `blume github repository
-`_ for more details.
-
-.. image:: /_static/blume_table_example.png
-
-highlight-text
-==============
-
-`highlight-text `_ is a small library
-that provides an easy way to effectively annotate plots by highlighting
-substrings with the font properties of your choice.
-See the `highlight-text github repository
-`_ for more details and examples.
-
-.. image:: /_static/highlight_text_examples.png
-
-DNA Features Viewer
-===================
-
-`DNA Features Viewer `_
-provides methods to plot annotated DNA sequence maps (possibly along other Matplotlib
-plots) for Bioinformatics and Synthetic Biology applications.
-
-.. image:: /_static/dna_features_viewer_screenshot.png
-
-GUI applications
-****************
-
-sviewgui
-========
-
-`sviewgui `_ is a PyQt-based GUI for
-visualisation of data from csv files or `pandas.DataFrame`\s. Main features:
-
-- Scatter, line, density, histogram, and box plot types
-- Settings for the marker size, line width, number of bins of histogram,
- colormap (from cmocean)
-- Save figure as editable PDF
-- Code of the plotted graph is available so that it can be reused and modified
- outside of sviewgui
-
-.. image:: /_static/sviewgui_sample.png
+
diff --git a/doc/users/backmatter.rst b/doc/users/backmatter.rst
new file mode 100644
index 000000000000..8d9fc0407d6f
--- /dev/null
+++ b/doc/users/backmatter.rst
@@ -0,0 +1,11 @@
+
+Project Information
+-------------------
+
+.. toctree::
+ :maxdepth: 1
+
+ license.rst
+ ../citing.rst
+ credits.rst
+ history.rst
diff --git a/doc/users/explain.rst b/doc/users/explain.rst
new file mode 100644
index 000000000000..d9d7a8474dbb
--- /dev/null
+++ b/doc/users/explain.rst
@@ -0,0 +1,10 @@
+.. _users-guide-explain:
+
+Explanations
+------------
+
+.. toctree::
+ :maxdepth: 1
+
+ interactive.rst
+ fonts.rst
diff --git a/doc/users/fonts.rst b/doc/users/fonts.rst
index e385c98284c0..1b9861df7414 100644
--- a/doc/users/fonts.rst
+++ b/doc/users/fonts.rst
@@ -1,16 +1,16 @@
-Fonts in Matplotlib Text Engine
+Fonts in Matplotlib text engine
===============================
Matplotlib needs fonts to work with its text engine, some of which are shipped
alongside the installation. However, users can configure the default fonts, or
-even provide their own custom fonts! For more details, see :doc:`Customizing
+even provide their own custom fonts! For more details, see :doc:`Customizing
text properties `.
However, Matplotlib also provides an option to offload text rendering to a TeX
engine (``usetex=True``),
see :doc:`Text rendering with LaTeX `.
-Font Specifications
+Font specifications
-------------------
Fonts have a long and sometimes incompatible history in computing, leading to
different platforms supporting different types of fonts. In practice, there are
@@ -40,7 +40,7 @@ fonts', more about which is explained later in the guide):
NOTE: Adobe will disable support for authoring with Type 1 fonts in
January 2023. `Read more here. `_
-Special Mentions
+Special mentions
^^^^^^^^^^^^^^^^
Other font specifications which Matplotlib supports:
diff --git a/doc/users/github_stats.rst b/doc/users/github_stats.rst
index 4dfcd6e6fd1f..ea9966613f12 100644
--- a/doc/users/github_stats.rst
+++ b/doc/users/github_stats.rst
@@ -1,9 +1,9 @@
.. _github-stats:
-GitHub statistics
-=================
+GitHub statistics (Aug 12, 2021)
+================================
-GitHub statistics for 2021/05/08 - 2021/08/12 (tag: v3.4.2)
+GitHub statistics for 2021/05/08 (tag: v3.4.2) - 2021/08/12
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/index.rst b/doc/users/index.rst
index c4ec864df787..32d70d3537fe 100644
--- a/doc/users/index.rst
+++ b/doc/users/index.rst
@@ -1,23 +1,24 @@
.. _users-guide-index:
-############
-User's guide
-############
+###########
+Usage Guide
+###########
.. only:: html
:Release: |version|
:Date: |today|
+
+
+
.. toctree::
- :maxdepth: 2
-
- interactive.rst
- fonts.rst
- release_notes.rst
- license.rst
- ../citing.rst
- ../resources/index.rst
- ../faq/index.rst
- credits.rst
- history.rst
+ :maxdepth: 2
+
+ ../plot_types/index.rst
+ ../tutorials/index.rst
+ ../gallery/index.rst
+ explain.rst
+ ../faq/index.rst
+ ../api/index.rst
+ ../resources/index.rst
diff --git a/doc/users/next_whats_new/callbacks_on_norms.rst b/doc/users/next_whats_new/callbacks_on_norms.rst
new file mode 100644
index 000000000000..1904a92d2fba
--- /dev/null
+++ b/doc/users/next_whats_new/callbacks_on_norms.rst
@@ -0,0 +1,8 @@
+A callback registry has been added to Normalize objects
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`.colors.Normalize` objects now have a callback registry, ``callbacks``,
+that can be connected to by other objects to be notified when the norm is
+updated. The callback emits the key ``changed`` when the norm is modified.
+`.cm.ScalarMappable` is now a listener and will register a change
+when the norm's vmin, vmax or other attributes are changed.
diff --git a/doc/users/next_whats_new/fig_draw_no_output.rst b/doc/users/next_whats_new/fig_draw_no_output.rst
deleted file mode 100644
index 293c6590b8c9..000000000000
--- a/doc/users/next_whats_new/fig_draw_no_output.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Figure now has draw_no_output method
-------------------------------------
-
-Rarely, the user will want to trigger a draw without making output to
-either the screen or a file. This is useful for determining the final
-position of artists on the figure that require a draw, like text artists.
-This could be accomplished via ``fig.canvas.draw()`` but has side effects,
-sometimes requires an open file, and is documented on an object most users
-do not need to access. The `.Figure.draw_no_output` is provided to trigger
-a draw without pushing to the final output, and with fewer side effects.
\ No newline at end of file
diff --git a/doc/users/next_whats_new/fig_draw_without_rendering.rst b/doc/users/next_whats_new/fig_draw_without_rendering.rst
new file mode 100644
index 000000000000..8b9e3147bf07
--- /dev/null
+++ b/doc/users/next_whats_new/fig_draw_without_rendering.rst
@@ -0,0 +1,12 @@
+Figure now has ``draw_without_rendering`` method
+------------------------------------------------
+
+Some aspects of a figure are only determined at draw-time, such as the exact
+position of text artists or deferred computation like automatic data limits.
+If you need these values, you can use ``figure.canvas.draw()`` to force a full
+draw. However, this has side effects, sometimes requires an open file, and is
+doing more work than is needed.
+
+The new `.Figure.draw_without_rendering` method runs all the updates that
+``draw()`` does, but skips rendering the figure. It's thus more efficient if you
+need the updated values to configure further aspects of the figure.
diff --git a/doc/users/next_whats_new/marker_none.rst b/doc/users/next_whats_new/marker_none.rst
new file mode 100644
index 000000000000..b37f07ea1333
--- /dev/null
+++ b/doc/users/next_whats_new/marker_none.rst
@@ -0,0 +1,5 @@
+``marker`` can now be set to the string "none"
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... to mean *no-marker*, consistently with other APIs which support the
+lowercase version. Using "none" is recommended over using "None", to avoid
+confusion with the None object.
diff --git a/doc/users/next_whats_new/widget_clear.rst b/doc/users/next_whats_new/widget_clear.rst
new file mode 100644
index 000000000000..3c72dd60cc52
--- /dev/null
+++ b/doc/users/next_whats_new/widget_clear.rst
@@ -0,0 +1,7 @@
+Clear selector
+--------------
+The selectors (`~matplotlib.widgets.SpanSelector`, `~matplotlib.widgets.RectangleSelector`,
+`~matplotlib.widgets.EllipseSelector`, `~matplotlib.widgets.PolygonSelector` and
+`~matplotlib.widgets.LassoSelector` have a new method *clear*, which will clear
+the current selection and get the selector ready to make a new selection. This
+is equivalent to press the *escape* key.
diff --git a/doc/users/prev_whats_new/changelog.rst b/doc/users/prev_whats_new/changelog.rst
index ae9d40680e7c..483f6eda53c3 100644
--- a/doc/users/prev_whats_new/changelog.rst
+++ b/doc/users/prev_whats_new/changelog.rst
@@ -7,4029 +7,4743 @@ This is a list of the changes made to Matplotlib from 2003 to 2015. For more
recent changes, please refer to the `what's new <../whats_new.html>`_ or
the `API changes <../../api/api_changes.html>`_.
-2015-11-16 Levels passed to contour(f) and tricontour(f) must be in increasing
- order.
+2015-11-16
+ Levels passed to contour(f) and tricontour(f) must be in increasing order.
-2015-10-21 Added TextBox widget
+2015-10-21
+ Added TextBox widget
+
+2015-10-21
+ Added get_ticks_direction()
+
+2015-02-27
+ Added the rcParam 'image.composite_image' to permit users to decide whether
+ they want the vector graphics backends to combine all images within a set
+ of axes into a single composite image. (If images do not get combined,
+ users can open vector graphics files in Adobe Illustrator or Inkscape and
+ edit each image individually.)
+
+2015-02-19
+ Rewrite of C++ code that calculates contours to add support for corner
+ masking. This is controlled by the 'corner_mask' keyword in plotting
+ commands 'contour' and 'contourf'. - IMT
+
+2015-01-23
+ Text bounding boxes are now computed with advance width rather than ink
+ area. This may result in slightly different placement of text.
+
+2014-10-27
+ Allowed selection of the backend using the :envvar:`MPLBACKEND` environment
+ variable. Added documentation on backend selection methods.
+
+2014-09-27
+ Overhauled `.colors.LightSource`. Added `.LightSource.hillshade` to allow
+ the independent generation of illumination maps. Added new types of
+ blending for creating more visually appealing shaded relief plots (e.g.
+ ``blend_mode="overlay"``, etc, in addition to the legacy "hsv" mode).
+
+2014-06-10
+ Added Colorbar.remove()
+
+2014-06-07
+ Fixed bug so radial plots can be saved as ps in py3k.
+
+2014-06-01
+ Changed the fmt kwarg of errorbar to support the the mpl convention that
+ "none" means "don't draw it", and to default to the empty string, so that
+ plotting of data points is done with the plot() function defaults.
+ Deprecated use of the None object in place "none".
+
+2014-05-22
+ Allow the linscale keyword parameter of symlog scale to be smaller than
+ one.
+
+2014-05-20
+ Added logic to in FontManager to invalidate font-cache if if font-family
+ rcparams have changed.
+
+2014-05-16
+ Fixed the positioning of multi-line text in the PGF backend.
+
+2014-05-14
+ Added Axes.add_image() as the standard way to add AxesImage instances to
+ Axes. This improves the consistency with add_artist(), add_collection(),
+ add_container(), add_line(), add_patch(), and add_table().
+
+2014-05-02
+ Added colorblind-friendly colormap, named 'Wistia'.
+
+2014-04-27
+ Improved input clean up in Axes.{h|v}lines
+ Coerce input into a 1D ndarrays (after dealing with units).
+
+2014-04-27
+ removed un-needed cast to float in stem
+
+2014-04-23
+ Updated references to "ipython -pylab" The preferred method for invoking
+ pylab is now using the "%pylab" magic.
+ -Chris G.
+
+2014-04-22
+ Added (re-)generate a simple automatic legend to "Figure Options" dialog of
+ the Qt4Agg backend.
+
+2014-04-22
+ Added an example showing the difference between interpolation = 'none' and
+ interpolation = 'nearest' in `~.Axes.imshow` when saving vector graphics
+ files.
+
+2014-04-22
+ Added violin plotting functions. See `.Axes.violinplot`, `.Axes.violin`,
+ `.cbook.violin_stats` and `.mlab.GaussianKDE` for details.
+
+2014-04-10
+ Fixed the triangular marker rendering error. The "Up" triangle was rendered
+ instead of "Right" triangle and vice-versa.
+
+2014-04-08
+ Fixed a bug in parasite_axes.py by making a list out of a generator at line
+ 263.
+
+2014-04-02
+ Added ``clipon=False`` to patch creation of wedges and shadows in
+ `~.Axes.pie`.
+
+2014-02-25
+ In backend_qt4agg changed from using update -> repaint under windows. See
+ comment in source near ``self._priv_update`` for longer explanation.
+
+2014-03-27
+ Added tests for pie ccw parameter. Removed pdf and svg images from tests
+ for pie linewidth parameter.
+
+2014-03-24
+ Changed the behaviour of axes to not ignore leading or trailing patches of
+ height 0 (or width 0) while calculating the x and y axis limits. Patches
+ having both height == 0 and width == 0 are ignored.
+
+2014-03-24
+ Added bool kwarg (manage_xticks) to boxplot to enable/disable the
+ managemnet of the xlimits and ticks when making a boxplot. Default in True
+ which maintains current behavior by default.
+
+2014-03-23
+ Fixed a bug in projections/polar.py by making sure that the theta value
+ being calculated when given the mouse coordinates stays within the range of
+ 0 and 2 * pi.
+
+2014-03-22
+ Added the keyword arguments wedgeprops and textprops to pie. Users can
+ control the wedge and text properties of the pie in more detail, if they
+ choose.
+
+2014-03-17
+ Bug was fixed in append_axes from the AxesDivider class would not append
+ axes in the right location with respect to the reference locator axes
+
+2014-03-13
+ Add parameter 'clockwise' to function pie, True by default.
+
+2014-02-28
+ Added 'origin' kwarg to `~.Axes.spy`
+
+2014-02-27
+ Implemented separate horizontal/vertical axes padding to the ImageGrid in
+ the AxesGrid toolkit
+
+2014-02-27
+ Allowed markevery property of matplotlib.lines.Line2D to be, an int numpy
+ fancy index, slice object, or float. The float behaviour turns on markers
+ at approximately equal display-coordinate-distances along the line.
+
+2014-02-25
+ In backend_qt4agg changed from using update -> repaint under windows. See
+ comment in source near ``self._priv_update`` for longer explanation.
+
+2014-01-02
+ `~.Axes.triplot` now returns the artist it adds and support of line and
+ marker kwargs has been improved. GBY
+
+2013-12-30
+ Made streamplot grid size consistent for different types of density
+ argument. A 30x30 grid is now used for both density=1 and density=(1, 1).
+
+2013-12-03
+ Added a pure boxplot-drawing method that allow a more complete
+ customization of boxplots. It takes a list of dicts contains stats. Also
+ created a function (`.cbook.boxplot_stats`) that generates the stats
+ needed.
+
+2013-11-28
+ Added qhull extension module to perform Delaunay triangulation more
+ robustly than before. It is used by tri.Triangulation (and hence all
+ pyplot.tri* methods) and mlab.griddata. Deprecated matplotlib.delaunay
+ module. - IMT
+
+2013-11-05
+ Add power-law normalization method. This is useful for, e.g., showing small
+ populations in a "hist2d" histogram.
+
+2013-10-27
+ Added get_rlabel_position and set_rlabel_position methods to PolarAxes to
+ control angular position of radial tick labels.
+
+2013-10-06
+ Add stride-based functions to mlab for easy creation of 2D arrays with less
+ memory.
+
+2013-10-06
+ Improve window and detrend functions in mlab, particulart support for 2D
+ arrays.
+
+2013-10-06
+ Improve performance of all spectrum-related mlab functions and plots.
+
+2013-10-06
+ Added support for magnitude, phase, and angle spectrums to axes.specgram,
+ and support for magnitude, phase, angle, and complex spectrums to
+ mlab-specgram.
+
+2013-10-06
+ Added magnitude_spectrum, angle_spectrum, and phase_spectrum plots, as well
+ as magnitude_spectrum, angle_spectrum, phase_spectrum, and complex_spectrum
+ functions to mlab
+
+2013-07-12
+ Added support for datetime axes to 2d plots. Axis values are passed through
+ Axes.convert_xunits/Axes.convert_yunits before being used by
+ contour/contourf, pcolormesh and pcolor.
+
+2013-07-12
+ Allowed matplotlib.dates.date2num, matplotlib.dates.num2date, and
+ matplotlib.dates.datestr2num to accept n-d inputs. Also factored in support
+ for n-d arrays to matplotlib.dates.DateConverter and
+ matplotlib.units.Registry.
+
+2013-06-26
+ Refactored the axes module: the axes module is now a folder, containing the
+ following submodule:
+
+ - _subplots.py, containing all the subplots helper methods
+ - _base.py, containing several private methods and a new _AxesBase class.
+ This _AxesBase class contains all the methods that are not directly
+ linked to plots of the "old" Axes
+ - _axes.py contains the Axes class. This class now inherits from _AxesBase:
+ it contains all "plotting" methods and labelling methods.
+
+ This refactoring should not affect the API. Only private methods are not
+ importable from the axes module anymore.
+
+2013-05-18
+ Added support for arbitrary rasterization resolutions to the SVG backend.
+ Previously the resolution was hard coded to 72 dpi. Now the backend class
+ takes a image_dpi argument for its constructor, adjusts the image bounding
+ box accordingly and forwards a magnification factor to the image renderer.
+ The code and results now resemble those of the PDF backend.
+ - MW
+
+2013-05-08
+ Changed behavior of hist when given stacked=True and normed=True.
+ Histograms are now stacked first, then the sum is normalized. Previously,
+ each histogram was normalized, then they were stacked.
+
+2013-04-25
+ Changed all instances of::
+
+ from matplotlib import MatplotlibDeprecationWarning as mplDeprecation
+
+ to::
+
+ from cbook import mplDeprecation
+
+ and removed the import into the matplotlib namespace in __init__.py
+ - Thomas Caswell
+
+2013-04-15
+ Added 'axes.xmargin' and 'axes.ymargin' to rpParams to set default margins
+ on auto-scaleing. - TAC
+
+2013-04-16
+ Added patheffect support for Line2D objects. -JJL
+
+2013-03-31
+ Added support for arbitrary unstructured user-specified triangulations to
+ Axes3D.tricontour[f] - Damon McDougall
+
+2013-03-19
+ Added support for passing *linestyle* kwarg to `~.Axes.step` so all
+ `~.Axes.plot` kwargs are passed to the underlying `~.Axes.plot` call. -TAC
+
+2013-02-25
+ Added classes CubicTriInterpolator, UniformTriRefiner, TriAnalyzer to
+ matplotlib.tri module. - GBy
+
+2013-01-23
+ Add 'savefig.directory' to rcParams to remember and fill in the last
+ directory saved to for figure save dialogs - Martin Spacek
+
+2013-01-13
+ Add eventplot method to axes and pyplot and EventCollection class to
+ collections.
+
+2013-01-08
+ Added two extra titles to axes which are flush with the left and right
+ edges of the plot respectively. Andrew Dawson
+
+2013-01-07
+ Add framealpha keyword argument to legend - PO
+
+2013-01-16
+ Till Stensitzki added a baseline feature to stackplot
+
+2012-12-22
+ Added classes for interpolation within triangular grids
+ (LinearTriInterpolator) and to find the triangles in which points lie
+ (TrapezoidMapTriFinder) to matplotlib.tri module. - IMT
+
+2012-12-05
+ Added MatplotlibDeprecationWarning class for signaling deprecation.
+ Matplotlib developers can use this class as follows::
+
+ from matplotlib import MatplotlibDeprecationWarning as mplDeprecation
+
+ In light of the fact that Python builtin DeprecationWarnings are ignored by
+ default as of Python 2.7, this class was put in to allow for the signaling
+ of deprecation, but via UserWarnings which are not ignored by default. - PI
+
+2012-11-27
+ Added the *mtext* parameter for supplying matplotlib.text.Text instances to
+ RendererBase.draw_tex and RendererBase.draw_text. This allows backends to
+ utilize additional text attributes, like the alignment of text elements. -
+ pwuertz
+
+2012-11-26
+ deprecate matplotlib/mpl.py, which was used only in pylab.py and is now
+ replaced by the more suitable ``import matplotlib as mpl``. - PI
+
+2012-11-25
+ Make rc_context available via pyplot interface - PI
+
+2012-11-16
+ plt.set_cmap no longer throws errors if there is not already an active
+ colorable artist, such as an image, and just sets up the colormap to use
+ from that point forward. - PI
+
+2012-11-16
+ Added the funcction _get_rbga_face, which is identical to _get_rbg_face
+ except it return a (r,g,b,a) tuble, to line2D. Modified Line2D.draw to use
+ _get_rbga_face to get the markerface color so that any alpha set by
+ markerfacecolor will respected. - Thomas Caswell
+
+2012-11-13
+ Add a symmetric log normalization class to colors.py. Also added some
+ tests for the normalization class. Till Stensitzki
+2012-11-12
+ Make axes.stem take at least one argument. Uses a default range(n) when
+ the first arg not provided. Damon McDougall
-2015-10-21 Added get_ticks_direction()
+2012-11-09
+ Make plt.subplot() without arguments act as subplot(111) - PI
-2015-02-27 Added the rcParam 'image.composite_image' to permit users
- to decide whether they want the vector graphics backends to combine
- all images within a set of axes into a single composite image.
- (If images do not get combined, users can open vector graphics files
- in Adobe Illustrator or Inkscape and edit each image individually.)
+2012-11-08
+ Replaced plt.figure and plt.subplot calls by the newer, more convenient
+ single call to plt.subplots() in the documentation examples - PI
-2015-02-19 Rewrite of C++ code that calculates contours to add support for
- corner masking. This is controlled by the 'corner_mask' keyword
- in plotting commands 'contour' and 'contourf'. - IMT
+2012-10-05
+ Add support for saving animations as animated GIFs. - JVDP
+
+2012-08-11
+ Fix path-closing bug in patches.Polygon, so that regardless of whether the
+ path is the initial one or was subsequently set by set_xy(), get_xy() will
+ return a closed path if and only if get_closed() is True. Thanks to Jacob
+ Vanderplas. - EF
+
+2012-08-05
+ When a norm is passed to contourf, either or both of the vmin, vmax
+ attributes of that norm are now respected. Formerly they were respected
+ only if both were specified. In addition, vmin and/or vmax can now be
+ passed to contourf directly as kwargs. - EF
+
+2012-07-24
+ Contourf handles the extend kwarg by mapping the extended ranges outside
+ the normed 0-1 range so that they are handled by colormap colors determined
+ by the set_under and set_over methods. Previously the extended ranges were
+ mapped to 0 or 1 so that the "under" and "over" colormap colors were
+ ignored. This change also increases slightly the color contrast for a given
+ set of contour levels. - EF
+
+2012-06-24
+ Make use of mathtext in tick labels configurable - DSD
+
+2012-06-05
+ Images loaded through PIL are now ordered correctly - CG
+
+2012-06-02
+ Add new Axes method and pyplot function, hist2d. - PO
+
+2012-05-31
+ Remove support for 'cairo.' style of backend specification.
+ Deprecate 'cairo.format' and 'savefig.extension' rcParams and replace with
+ 'savefig.format'. - Martin Spacek
+
+2012-05-29
+ pcolormesh now obeys the passed in "edgecolor" kwarg. To support this, the
+ "shading" argument to pcolormesh now only takes "flat" or "gouraud". To
+ achieve the old "faceted" behavior, pass "edgecolors='k'". - MGD
+
+2012-05-22
+ Added radius kwarg to pie charts. - HH
+
+2012-05-22
+ Collections now have a setting "offset_position" to select whether the
+ offsets are given in "screen" coordinates (default, following the old
+ behavior) or "data" coordinates. This is currently used internally to
+ improve the performance of hexbin.
+
+ As a result, the "draw_path_collection" backend methods have grown a new
+ argument "offset_position". - MGD
+
+2012-05-04
+ Add a new argument to pie charts - startingangle - that allows one to
+ specify the angle offset for the first wedge of the chart. - EP
+
+2012-05-03
+ symlog scale now obeys the logarithmic base. Previously, it was completely
+ ignored and always treated as base e. - MGD
+
+2012-05-03
+ Allow linscalex/y keyword to symlog scale that allows the size of the
+ linear portion relative to the logarithmic portion to be adjusted. - MGD
+
+2012-04-14
+ Added new plot style: stackplot. This new feature supports stacked area
+ plots. - Damon McDougall
+
+2012-04-06
+ When path clipping changes a LINETO to a MOVETO, it also changes any
+ CLOSEPOLY command to a LINETO to the initial point. This fixes a problem
+ with pdf and svg where the CLOSEPOLY would then draw a line to the latest
+ MOVETO position instead of the intended initial position. - JKS
+
+2012-03-27
+ Add support to ImageGrid for placing colorbars only at one edge of each
+ column/row. - RMM
+
+2012-03-07
+ Refactor movie writing into useful classes that make use of pipes to write
+ image data to ffmpeg or mencoder. Also improve settings for these and the
+ ability to pass custom options. - RMM
+
+2012-02-29
+ errorevery keyword added to errorbar to enable errorbar subsampling. fixes
+ issue #600.
+
+2012-02-28
+ Added plot_trisurf to the mplot3d toolkit. This supports plotting three
+ dimensional surfaces on an irregular grid. - Damon McDougall
+
+2012-01-23
+ The radius labels in polar plots no longer use a fixed padding, but use a
+ different alignment depending on the quadrant they are in. This fixes
+ numerical problems when (rmax - rmin) gets too small. - MGD
+
+2012-01-08
+ Add axes.streamplot to plot streamlines of a velocity field. Adapted from
+ Tom Flannaghan streamplot implementation. -TSY
+
+2011-12-29
+ ps and pdf markers are now stroked only if the line width is nonzero for
+ consistency with agg, fixes issue #621. - JKS
+
+2011-12-27
+ Work around an EINTR bug in some versions of subprocess. - JKS
+
+2011-10-25
+ added support for \operatorname to mathtext, including the ability to
+ insert spaces, such as $\operatorname{arg\,max}$ - PI
+
+2011-08-18
+ Change api of Axes.get_tightbbox and add an optional keyword parameter
+ *call_axes_locator*. - JJL
+
+2011-07-29
+ A new rcParam "axes.formatter.use_locale" was added, that, when True, will
+ use the current locale to format tick labels. This means that, for
+ example, in the fr_FR locale, ',' will be used as a decimal separator. -
+ MGD
-2015-01-23 Text bounding boxes are now computed with advance width rather than
- ink area. This may result in slightly different placement of text.
+2011-07-15
+ The set of markers available in the plot() and scatter() commands has been
+ unified. In general, this gives more options to both than were previously
+ available, however, there is one backward-incompatible change to the
+ markers in scatter:
+
+ "d" used to mean "diamond", it now means "narrow diamond". "D" can be
+ used for a "diamond".
+
+ -MGD
+
+2011-07-13
+ Fix numerical problems in symlog scale, particularly when linthresh <= 1.0.
+ Symlog plots may look different if one was depending on the old broken
+ behavior - MGD
+
+2011-07-10
+ Fixed argument handling error in tripcolor/triplot/tricontour, issue #203.
+ - IMT
+
+2011-07-08
+ Many functions added to mplot3d.axes3d to bring Axes3D objects more
+ feature-parity with regular Axes objects. Significant revisions to the
+ documentation as well. - BVR
+
+2011-07-07
+ Added compatibility with IPython strategy for picking a version of Qt4
+ support, and an rcParam for making the choice explicitly: backend.qt4. - EF
+
+2011-07-07
+ Modified AutoMinorLocator to improve automatic choice of the number of
+ minor intervals per major interval, and to allow one to specify this number
+ via a kwarg. - EF
-2014-10-27 Allowed selection of the backend using the :envvar:`MPLBACKEND` environment
- variable. Added documentation on backend selection methods.
+2011-06-28
+ 3D versions of scatter, plot, plot_wireframe, plot_surface, bar3d, and some
+ other functions now support empty inputs. - BVR
-2014-09-27 Overhauled `.colors.LightSource`. Added `.LightSource.hillshade` to
- allow the independent generation of illumination maps. Added new
- types of blending for creating more visually appealing shaded relief
- plots (e.g. ``blend_mode="overlay"``, etc, in addition to the legacy
- "hsv" mode).
+2011-06-22
+ Add set_theta_offset, set_theta_direction and set_theta_zero_location to
+ polar axes to control the location of 0 and directionality of theta. - MGD
-2014-06-10 Added Colorbar.remove()
+2011-06-22
+ Add axes.labelweight parameter to set font weight to axis labels - MGD.
-2014-06-07 Fixed bug so radial plots can be saved as ps in py3k.
+2011-06-20
+ Add pause function to pyplot. - EF
-2014-06-01 Changed the fmt kwarg of errorbar to support the
- the mpl convention that "none" means "don't draw it",
- and to default to the empty string, so that plotting
- of data points is done with the plot() function
- defaults. Deprecated use of the None object in place
- "none".
+2011-06-16
+ Added *bottom* keyword parameter for the stem command. Also, implemented a
+ legend handler for the stem plot. - JJL
-2014-05-22 Allow the linscale keyword parameter of symlog scale to be
- smaller than one.
+2011-06-16
+ Added legend.frameon rcParams. - Mike Kaufman
-2014-05-20 Added logic to in FontManager to invalidate font-cache if
- if font-family rcparams have changed.
+2011-05-31
+ Made backend_qt4 compatible with PySide . - Gerald Storer
-2014-05-16 Fixed the positioning of multi-line text in the PGF backend.
+2011-04-17
+ Disable keyboard auto-repeat in qt4 backend by ignoring key events
+ resulting from auto-repeat. This makes constrained zoom/pan work. - EF
-2014-05-14 Added Axes.add_image() as the standard way to add AxesImage
- instances to Axes. This improves the consistency with
- add_artist(), add_collection(), add_container(), add_line(),
- add_patch(), and add_table().
+2011-04-14
+ interpolation="nearest" always interpolate images. A new mode "none" is
+ introduced for no interpolation - JJL
-2014-05-02 Added colorblind-friendly colormap, named 'Wistia'.
+2011-04-03
+ Fixed broken pick interface to AsteriskCollection objects used by scatter.
+ - EF
-2014-04-27 Improved input clean up in Axes.{h|v}lines
- Coerce input into a 1D ndarrays (after dealing with units).
+2011-04-01
+ The plot directive Sphinx extension now supports all of the features in the
+ Numpy fork of that extension. These include doctest formatting, an
+ 'include-source' option, and a number of new configuration options. - MGD
-2014-04-27 removed un-needed cast to float in stem
+2011-03-29
+ Wrapped ViewVCCachedServer definition in a factory function. This class
+ now inherits from urllib2.HTTPSHandler in order to fetch data from github,
+ but HTTPSHandler is not defined if python was built without SSL support. -
+ DSD
-2014-04-23 Updated references to "ipython -pylab"
- The preferred method for invoking pylab is now using the
- "%pylab" magic.
- -Chris G.
+2011-03-10
+ Update pytz version to 2011c, thanks to Simon Cross. - JKS
-2014-04-22 Added (re-)generate a simple automatic legend to "Figure Options"
- dialog of the Qt4Agg backend.
+2011-03-06
+ Add standalone tests.py test runner script. - JKS
+
+2011-03-06
+ Set edgecolor to 'face' for scatter asterisk-type symbols; this fixes a bug
+ in which these symbols were not responding to the c kwarg. The symbols
+ have no face area, so only the edgecolor is visible. - EF
-2014-04-22 Added an example showing the difference between
- interpolation = 'none' and interpolation = 'nearest' in
- `~.Axes.imshow` when saving vector graphics files.
+2011-02-27
+ Support libpng version 1.5.x; suggestion by Michael Albert. Changed
+ installation specification to a minimum of libpng version 1.2. - EF
-2014-04-22 Added violin plotting functions. See `.Axes.violinplot`,
- `.Axes.violin`, `.cbook.violin_stats` and `.mlab.GaussianKDE` for
- details.
+2011-02-20
+ clabel accepts a callable as an fmt kwarg; modified patch by Daniel Hyams.
+ - EF
-2014-04-10 Fixed the triangular marker rendering error. The "Up" triangle was
- rendered instead of "Right" triangle and vice-versa.
+2011-02-18
+ scatter([], []) is now valid. Also fixed issues with empty collections -
+ BVR
-2014-04-08 Fixed a bug in parasite_axes.py by making a list out
- of a generator at line 263.
+2011-02-07
+ Quick workaround for dviread bug #3175113 - JKS
-2014-04-02 Added ``clipon=False`` to patch creation of wedges and shadows
- in `~.Axes.pie`.
+2011-02-05
+ Add cbook memory monitoring for Windows, using tasklist. - EF
-2014-02-25 In backend_qt4agg changed from using update -> repaint under
- windows. See comment in source near ``self._priv_update`` for
- longer explanation.
+2011-02-05
+ Speed up Normalize and LogNorm by using in-place operations and by using
+ float32 for float32 inputs and for ints of 2 bytes or shorter; based on
+ patch by Christoph Gohlke. - EF
-2014-03-27 Added tests for pie ccw parameter. Removed pdf and svg images
- from tests for pie linewidth parameter.
+2011-02-04
+ Changed imshow to use rgba as uint8 from start to finish, instead of going
+ through an intermediate step as double precision; thanks to Christoph
+ Gohlke. - EF
-2014-03-24 Changed the behaviour of axes to not ignore leading or trailing
- patches of height 0 (or width 0) while calculating the x and y
- axis limits. Patches having both height == 0 and width == 0 are
- ignored.
+2011-01-13
+ Added zdir and offset arguments to contourf3d to bring contourf3d in
+ feature parity with contour3d. - BVR
-2014-03-24 Added bool kwarg (manage_xticks) to boxplot to enable/disable
- the managemnet of the xlimits and ticks when making a boxplot.
- Default in True which maintains current behavior by default.
+2011-01-04
+ Tag 1.0.1 for release at r8896
-2014-03-23 Fixed a bug in projections/polar.py by making sure that the theta
- value being calculated when given the mouse coordinates stays within
- the range of 0 and 2 * pi.
+2011-01-03
+ Added display of ticker offset to 3d plots. - BVR
+
+2011-01-03
+ Turn off tick labeling on interior subplots for pyplots.subplots when
+ sharex/sharey is True. - JDH
-2014-03-22 Added the keyword arguments wedgeprops and textprops to pie.
- Users can control the wedge and text properties of the pie
- in more detail, if they choose.
+2010-12-29
+ Implement axes_divider.HBox and VBox. -JJL
-2014-03-17 Bug was fixed in append_axes from the AxesDivider class would not
- append axes in the right location with respect to the reference
- locator axes
+2010-11-22
+ Fixed error with Hammer projection. - BVR
+
+2010-11-12
+ Fixed the placement and angle of axis labels in 3D plots. - BVR
+
+2010-11-07
+ New rc parameters examples.download and examples.directory allow bypassing
+ the download mechanism in get_sample_data. - JKS
+
+2010-10-04
+ Fix JPEG saving bug: only accept the kwargs documented by PIL for JPEG
+ files. - JKS
+
+2010-09-15
+ Remove unused _wxagg extension and numerix.h. - EF
+
+2010-08-25
+ Add new framework for doing animations with examples.- RM
+
+2010-08-21
+ Remove unused and inappropriate methods from Tick classes:
+ set_view_interval, get_minpos, and get_data_interval are properly found in
+ the Axis class and don't need to be duplicated in XTick and YTick. - EF
+
+2010-08-21
+ Change Axis.set_view_interval() so that when updating an existing interval,
+ it respects the orientation of that interval, and can enlarge but not
+ reduce the interval. This fixes a bug in which Axis.set_ticks would change
+ the view limits of an inverted axis. Whether set_ticks should be affecting
+ the viewLim at all remains an open question. - EF
+
+2010-08-16
+ Handle NaN's correctly in path analysis routines. Fixes a bug where the
+ best location for a legend was not calculated correctly when the line
+ contains NaNs. - MGD
-2014-03-13 Add parameter 'clockwise' to function pie, True by default.
+2010-08-14
+ Fix bug in patch alpha handling, and in bar color kwarg - EF
+
+2010-08-12
+ Removed all traces of numerix module after 17 months of deprecation
+ warnings. - EF
-2014-02-28 Added 'origin' kwarg to `~.Axes.spy`
+2010-08-05
+ Added keyword arguments 'thetaunits' and 'runits' for polar plots. Fixed
+ PolarAxes so that when it set default Formatters, it marked them as such.
+ Fixed semilogx and semilogy to no longer blindly reset the ticker
+ information on the non-log axis. Axes.arrow can now accept unitized data.
+ - JRE
-2014-02-27 Implemented separate horizontal/vertical axes padding to the
- ImageGrid in the AxesGrid toolkit
+2010-08-03
+ Add support for MPLSETUPCFG variable for custom setup.cfg filename. Used
+ by sage buildbot to build an mpl w/ no gui support - JDH
-2014-02-27 Allowed markevery property of matplotlib.lines.Line2D to be, an int
- numpy fancy index, slice object, or float. The float behaviour
- turns on markers at approximately equal display-coordinate-distances
- along the line.
+2010-08-01
+ Create directory specified by MPLCONFIGDIR if it does not exist. - ADS
-2014-02-25 In backend_qt4agg changed from using update -> repaint under
- windows. See comment in source near ``self._priv_update`` for
- longer explanation.
+2010-07-20
+ Return Qt4's default cursor when leaving the canvas - DSD
-2014-01-02 `~.Axes.triplot` now returns the artist it adds and support of line and
- marker kwargs has been improved. GBY
+2010-07-06
+ Tagging for mpl 1.0 at r8502
-2013-12-30 Made streamplot grid size consistent for different types of density
- argument. A 30x30 grid is now used for both density=1 and
- density=(1, 1).
+2010-07-05
+ Added Ben Root's patch to put 3D plots in arbitrary axes, allowing you to
+ mix 3d and 2d in different axes/subplots or to have multiple 3D plots in
+ one figure. See examples/mplot3d/subplot3d_demo.py - JDH
-2013-12-03 Added a pure boxplot-drawing method that allow a more complete
- customization of boxplots. It takes a list of dicts contains stats.
- Also created a function (`.cbook.boxplot_stats`) that generates the
- stats needed.
+2010-07-05
+ Preferred kwarg names in set_xlim are now 'left' and 'right'; in set_ylim,
+ 'bottom' and 'top'; original kwargs are still accepted without complaint. -
+ EF
-2013-11-28 Added qhull extension module to perform Delaunay triangulation more
- robustly than before. It is used by tri.Triangulation (and hence
- all pyplot.tri* methods) and mlab.griddata. Deprecated
- matplotlib.delaunay module. - IMT
+2010-07-05
+ TkAgg and FltkAgg backends are now consistent with other interactive
+ backends: when used in scripts from the command line (not from ipython
+ -pylab), show blocks, and can be called more than once. - EF
-2013-11-05 Add power-law normalization method. This is useful for,
- e.g., showing small populations in a "hist2d" histogram.
+2010-07-02
+ Modified CXX/WrapPython.h to fix "swab bug" on solaris so mpl can compile
+ on Solaris with CXX6 in the trunk. Closes tracker bug 3022815 - JDH
-2013-10-27 Added get_rlabel_position and set_rlabel_position methods to
- PolarAxes to control angular position of radial tick labels.
+2010-06-30
+ Added autoscale convenience method and corresponding pyplot function for
+ simplified control of autoscaling; and changed axis, set_xlim, and set_ylim
+ so that by default, they turn off the autoscaling on the relevant axis or
+ axes. Therefore one can call set_xlim before plotting a line, for example,
+ and the limits will be retained. - EF
-2013-10-06 Add stride-based functions to mlab for easy creation of 2D arrays
- with less memory.
+2010-06-20
+ Added Axes.tick_params and corresponding pyplot function to control tick
+ and tick label appearance after an Axes has been created. - EF
-2013-10-06 Improve window and detrend functions in mlab, particulart support for
- 2D arrays.
+2010-06-09
+ Allow Axes.grid to control minor gridlines; allow Axes.grid and Axis.grid
+ to control major and minor gridlines in the same method call. - EF
-2013-10-06 Improve performance of all spectrum-related mlab functions and plots.
+2010-06-06
+ Change the way we do split/dividend adjustments in finance.py to handle
+ dividends and fix the zero division bug reported in sf bug 2949906 and
+ 2123566. Note that volume is not adjusted because the Yahoo CSV does not
+ distinguish between share split and dividend adjustments making it near
+ impossible to get volume adjustment right (unless we want to guess based on
+ the size of the adjustment or scrape the html tables, which we don't) - JDH
-2013-10-06 Added support for magnitude, phase, and angle spectrums to
- axes.specgram, and support for magnitude, phase, angle, and complex
- spectrums to mlab-specgram.
+2010-06-06
+ Updated dateutil to 1.5 and pytz to 2010h.
-2013-10-06 Added magnitude_spectrum, angle_spectrum, and phase_spectrum plots,
- as well as magnitude_spectrum, angle_spectrum, phase_spectrum,
- and complex_spectrum functions to mlab
+2010-06-02
+ Add error_kw kwarg to Axes.bar(). - EF
-2013-07-12 Added support for datetime axes to 2d plots. Axis values are passed
- through Axes.convert_xunits/Axes.convert_yunits before being used by
- contour/contourf, pcolormesh and pcolor.
+2010-06-01
+ Fix pcolormesh() and QuadMesh to pass on kwargs as appropriate. - RM
-2013-07-12 Allowed matplotlib.dates.date2num, matplotlib.dates.num2date,
- and matplotlib.dates.datestr2num to accept n-d inputs. Also
- factored in support for n-d arrays to matplotlib.dates.DateConverter
- and matplotlib.units.Registry.
+2010-05-18
+ Merge mpl_toolkits.gridspec into the main tree. - JJL
+
+2010-05-04
+ Improve backend_qt4 so it displays figures with the correct size - DSD
+
+2010-04-20
+ Added generic support for connecting to a timer for events. This adds
+ TimerBase, TimerGTK, TimerQT, TimerWx, and TimerTk to the backends and a
+ new_timer() method to each backend's canvas to allow ease of creating a new
+ timer. - RM
+
+2010-04-20
+ Added margins() Axes method and pyplot function. - EF
-2013-06-26 Refactored the axes module: the axes module is now a folder,
- containing the following submodule:
- - _subplots.py, containing all the subplots helper methods
- - _base.py, containing several private methods and a new
- _AxesBase class. This _AxesBase class contains all the methods
- that are not directly linked to plots of the "old" Axes
- - _axes.py contains the Axes class. This class now inherits from
- _AxesBase: it contains all "plotting" methods and labelling
- methods.
+2010-04-18
+ update the axes_grid documentation. -JJL
- This refactoring should not affect the API. Only private methods
- are not importable from the axes module anymore.
+2010-04-18
+ Control MaxNLocator parameters after instantiation, and via
+ Axes.locator_params method, with corresponding pyplot function. -EF
-2013-05-18 Added support for arbitrary rasterization resolutions to the
- SVG backend. Previously the resolution was hard coded to 72
- dpi. Now the backend class takes a image_dpi argument for
- its constructor, adjusts the image bounding box accordingly
- and forwards a magnification factor to the image renderer.
- The code and results now resemble those of the PDF backend.
- - MW
+2010-04-18
+ Control ScalarFormatter offsets directly and via the
+ Axes.ticklabel_format() method, and add that to pyplot. -EF
+
+2010-04-16
+ Add a close_event to the backends. -RM
-2013-05-08 Changed behavior of hist when given stacked=True and normed=True.
- Histograms are now stacked first, then the sum is normalized.
- Previously, each histogram was normalized, then they were stacked.
+2010-04-06
+ modify axes_grid examples to use axes_grid1 and axisartist. -JJL
-2013-04-25 Changed all instances of:
+2010-04-06
+ rebase axes_grid using axes_grid1 and axisartist modules. -JJL
- from matplotlib import MatplotlibDeprecationWarning as mplDeprecation
- to:
+2010-04-06
+ axes_grid toolkit is split into two separate modules, axes_grid1 and
+ axisartist. -JJL
- from cbook import mplDeprecation
+2010-04-05
+ Speed up import: import pytz only if and when it is needed. It is not
+ needed if the rc timezone is UTC. - EF
- and removed the import into the matplotlib namespace in __init__.py
- Thomas Caswell
+2010-04-03
+ Added color kwarg to Axes.hist(), based on work by Jeff Klukas. - EF
-2013-04-15 Added 'axes.xmargin' and 'axes.ymargin' to rpParams to set default
- margins on auto-scaleing. - TAC
+2010-03-24
+ refactor colorbar code so that no cla() is necessary when mappable is
+ changed. -JJL
+
+2010-03-22
+ fix incorrect rubber band during the zoom mode when mouse leaves the axes.
+ -JJL
-2013-04-16 Added patheffect support for Line2D objects. -JJL
+2010-03-21
+ x/y key during the zoom mode only changes the x/y limits. -JJL
-2013-03-31 Added support for arbitrary unstructured user-specified
- triangulations to Axes3D.tricontour[f] - Damon McDougall
+2010-03-20
+ Added pyplot.sca() function suggested by JJL. - EF
-2013-03-19 Added support for passing *linestyle* kwarg to `~.Axes.step` so all `~.Axes.plot`
- kwargs are passed to the underlying `~.Axes.plot` call. -TAC
+2010-03-20
+ Added conditional support for new Tooltip API in gtk backend. - EF
-2013-02-25 Added classes CubicTriInterpolator, UniformTriRefiner, TriAnalyzer
- to matplotlib.tri module. - GBy
+2010-03-20
+ Changed plt.fig_subplot() to plt.subplots() after discussion on list, and
+ changed its API to return axes as a numpy object array (with control of
+ dimensions via squeeze keyword). FP.
-2013-01-23 Add 'savefig.directory' to rcParams to remember and fill in the last
- directory saved to for figure save dialogs - Martin Spacek
+2010-03-13
+ Manually brought in commits from branch::
-2013-01-13 Add eventplot method to axes and pyplot and EventCollection class
- to collections.
+ ------------------------------------------------------------------------
+ r8191 | leejjoon | 2010-03-13
+ 17:27:57 -0500 (Sat, 13 Mar 2010) | 1 line
-2013-01-08 Added two extra titles to axes which are flush with the left and
- right edges of the plot respectively.
- Andrew Dawson
+ fix the bug that handles for scatter are incorrectly set when dpi!=72.
+ Thanks to Ray Speth for the bug report.
-2013-01-07 Add framealpha keyword argument to legend - PO
+2010-03-03
+ Manually brought in commits from branch via diff/patch (svnmerge is broken)::
-2013-01-16 Till Stensitzki added a baseline feature to stackplot
+ ------------------------------------------------------------------------
+ r8175 | leejjoon | 2010-03-03
+ 10:03:30 -0800 (Wed, 03 Mar 2010) | 1 line
-2012-12-22 Added classes for interpolation within triangular grids
- (LinearTriInterpolator) and to find the triangles in which points
- lie (TrapezoidMapTriFinder) to matplotlib.tri module. - IMT
+ fix arguments of allow_rasterization.draw_wrapper
+ ------------------------------------------------------------------------
+ r8174 | jdh2358 | 2010-03-03
+ 09:15:58 -0800 (Wed, 03 Mar 2010) | 1 line
-2012-12-05 Added MatplotlibDeprecationWarning class for signaling deprecation.
- Matplotlib developers can use this class as follows:
+ added support for favicon in docs build
+ ------------------------------------------------------------------------
+ r8173 | jdh2358 | 2010-03-03
+ 08:56:16 -0800 (Wed, 03 Mar 2010) | 1 line
- from matplotlib import MatplotlibDeprecationWarning as mplDeprecation
+ applied Mattias get_bounds patch
+ ------------------------------------------------------------------------
+ r8172 | jdh2358 | 2010-03-03
+ 08:31:42 -0800 (Wed, 03 Mar 2010) | 1 line
- In light of the fact that Python builtin DeprecationWarnings are
- ignored by default as of Python 2.7, this class was put in to allow
- for the signaling of deprecation, but via UserWarnings which are
- not ignored by default. - PI
+ fix svnmerge download instructions
+ ------------------------------------------------------------------------
+ r8171 | jdh2358 | 2010-03-03
+ 07:47:48 -0800 (Wed, 03 Mar 2010) | 1 line
-2012-11-27 Added the *mtext* parameter for supplying matplotlib.text.Text
- instances to RendererBase.draw_tex and RendererBase.draw_text.
- This allows backends to utilize additional text attributes, like
- the alignment of text elements. - pwuertz
+2010-02-25
+ add annotation_demo3.py that demonstrates new functionality. -JJL
-2012-11-26 deprecate matplotlib/mpl.py, which was used only in pylab.py and is
- now replaced by the more suitable ``import matplotlib as mpl``. - PI
+2010-02-25
+ refactor Annotation to support arbitrary Transform as xycoords or
+ textcoords. Also, if a tuple of two coordinates is provided, they are
+ interpreted as coordinates for each x and y position. -JJL
-2012-11-25 Make rc_context available via pyplot interface - PI
+2010-02-24
+ Added pyplot.fig_subplot(), to create a figure and a group of subplots in a
+ single call. This offers an easier pattern than manually making figures
+ and calling add_subplot() multiple times. FP
-2012-11-16 plt.set_cmap no longer throws errors if there is not already
- an active colorable artist, such as an image, and just sets
- up the colormap to use from that point forward. - PI
+2010-02-17
+ Added Gokhan's and Mattias' customizable keybindings patch for the toolbar.
+ You can now set the keymap.* properties in the matplotlibrc file.
+ Newbindings were added for toggling log scaling on the x-axis. JDH
-2012-11-16 Added the funcction _get_rbga_face, which is identical to
- _get_rbg_face except it return a (r,g,b,a) tuble, to line2D.
- Modified Line2D.draw to use _get_rbga_face to get the markerface
- color so that any alpha set by markerfacecolor will respected.
- - Thomas Caswell
+2010-02-16
+ Committed TJ's filled marker patch for left|right|bottom|top|full filled
+ markers. See examples/pylab_examples/filledmarker_demo.py. JDH
-2012-11-13 Add a symmetric log normalization class to colors.py.
- Also added some tests for the normalization class.
- Till Stensitzki
+2010-02-11
+ Added 'bootstrap' option to boxplot. This allows bootstrap estimates of
+ median confidence intervals. Based on an initial patch by Paul Hobson. -
+ ADS
-2012-11-12 Make axes.stem take at least one argument.
- Uses a default range(n) when the first arg not provided.
- Damon McDougall
+2010-02-06
+ Added setup.cfg "basedirlist" option to override setting in setupext.py
+ "basedir" dictionary; added "gnu0" platform requested by Benjamin Drung. -
+ EF
-2012-11-09 Make plt.subplot() without arguments act as subplot(111) - PI
+2010-02-06
+ Added 'xy' scaling option to EllipseCollection. - EF
-2012-11-08 Replaced plt.figure and plt.subplot calls by the newer, more
- convenient single call to plt.subplots() in the documentation
- examples - PI
+2010-02-03
+ Made plot_directive use a custom PlotWarning category, so that warnings can
+ be turned into fatal errors easily if desired. - FP
-2012-10-05 Add support for saving animations as animated GIFs. - JVDP
+2010-01-29
+ Added draggable method to Legend to allow mouse drag placement. Thanks
+ Adam Fraser. JDH
-2012-08-11 Fix path-closing bug in patches.Polygon, so that regardless
- of whether the path is the initial one or was subsequently
- set by set_xy(), get_xy() will return a closed path if and
- only if get_closed() is True. Thanks to Jacob Vanderplas. - EF
+2010-01-25
+ Fixed a bug reported by Olle Engdegard, when using histograms with
+ stepfilled and log=True - MM
-2012-08-05 When a norm is passed to contourf, either or both of the
- vmin, vmax attributes of that norm are now respected.
- Formerly they were respected only if both were
- specified. In addition, vmin and/or vmax can now
- be passed to contourf directly as kwargs. - EF
+2010-01-16
+ Upgraded CXX to 6.1.1 - JDH
-2012-07-24 Contourf handles the extend kwarg by mapping the extended
- ranges outside the normed 0-1 range so that they are
- handled by colormap colors determined by the set_under
- and set_over methods. Previously the extended ranges
- were mapped to 0 or 1 so that the "under" and "over"
- colormap colors were ignored. This change also increases
- slightly the color contrast for a given set of contour
- levels. - EF
+2009-01-16
+ Don't create minor ticks on top of existing major ticks. Patch by Neil
+ Crighton. -ADS
-2012-06-24 Make use of mathtext in tick labels configurable - DSD
+2009-01-16
+ Ensure three minor ticks always drawn (SF# 2924245). Patch by Neil
+ Crighton. -ADS
-2012-06-05 Images loaded through PIL are now ordered correctly - CG
+2010-01-16
+ Applied patch by Ian Thomas to fix two contouring problems: now contourf
+ handles interior masked regions, and the boundaries of line and filled
+ contours coincide. - EF
-2012-06-02 Add new Axes method and pyplot function, hist2d. - PO
+2009-01-11
+ The color of legend patch follows the rc parameters axes.facecolor and
+ axes.edgecolor. -JJL
-2012-05-31 Remove support for 'cairo.' style of backend specification.
- Deprecate 'cairo.format' and 'savefig.extension' rcParams and
- replace with 'savefig.format'. - Martin Spacek
+2009-01-11
+ adjustable of Axes can be "box-forced" which allow sharing axes. -JJL
-2012-05-29 pcolormesh now obeys the passed in "edgecolor" kwarg.
- To support this, the "shading" argument to pcolormesh now only
- takes "flat" or "gouraud". To achieve the old "faceted" behavior,
- pass "edgecolors='k'". - MGD
+2009-01-11
+ Add add_click and pop_click methods in BlockingContourLabeler. -JJL
-2012-05-22 Added radius kwarg to pie charts. - HH
+2010-01-03
+ Added rcParams['axes.color_cycle'] - EF
-2012-05-22 Collections now have a setting "offset_position" to select whether
- the offsets are given in "screen" coordinates (default,
- following the old behavior) or "data" coordinates. This is currently
- used internally to improve the performance of hexbin.
+2010-01-03
+ Added Pierre's qt4 formlayout editor and toolbar button - JDH
- As a result, the "draw_path_collection" backend methods have grown
- a new argument "offset_position". - MGD
+2009-12-31
+ Add support for using math text as marker symbols (Thanks to tcb) - MGD
+
+2009-12-31
+ Commit a workaround for a regression in PyQt4-4.6.{0,1} - DSD
-2012-05-04 Add a new argument to pie charts - startingangle - that
- allows one to specify the angle offset for the first wedge
- of the chart. - EP
+2009-12-22
+ Fix cmap data for gist_earth_r, etc. -JJL
-2012-05-03 symlog scale now obeys the logarithmic base. Previously, it was
- completely ignored and always treated as base e. - MGD
+2009-12-20
+ spines: put spines in data coordinates, add set_bounds() call. -ADS
-2012-05-03 Allow linscalex/y keyword to symlog scale that allows the size of
- the linear portion relative to the logarithmic portion to be
- adjusted. - MGD
+2009-12-18
+ Don't limit notch size in boxplot to q1-q3 range, as this is effectively
+ making the data look better than it is. - ADS
-2012-04-14 Added new plot style: stackplot. This new feature supports stacked
- area plots. - Damon McDougall
+2009-12-18
+ mlab.prctile handles even-length data, such that the median is the mean of
+ the two middle values. - ADS
-2012-04-06 When path clipping changes a LINETO to a MOVETO, it also
- changes any CLOSEPOLY command to a LINETO to the initial
- point. This fixes a problem with pdf and svg where the
- CLOSEPOLY would then draw a line to the latest MOVETO
- position instead of the intended initial position. - JKS
+2009-12-15
+ Add raw-image (unsampled) support for the ps backend. - JJL
-2012-03-27 Add support to ImageGrid for placing colorbars only at
- one edge of each column/row. - RMM
+2009-12-14
+ Add patch_artist kwarg to boxplot, but keep old default. Convert
+ boxplot_demo2.py to use the new patch_artist. - ADS
-2012-03-07 Refactor movie writing into useful classes that make use
- of pipes to write image data to ffmpeg or mencoder. Also
- improve settings for these and the ability to pass custom
- options. - RMM
+2009-12-06
+ axes_grid: reimplemented AxisArtist with FloatingAxes support. Added new
+ examples. - JJL
-2012-02-29 errorevery keyword added to errorbar to enable errorbar
- subsampling. fixes issue #600.
+2009-12-01
+ Applied Laurent Dufrechou's patch to improve blitting with the qt4 backend
+ - DSD
-2012-02-28 Added plot_trisurf to the mplot3d toolkit. This supports plotting
- three dimensional surfaces on an irregular grid. - Damon McDougall
+2009-11-13
+ The pdf backend now allows changing the contents of a pdf file's
+ information dictionary via PdfPages.infodict. - JKS
-2012-01-23 The radius labels in polar plots no longer use a fixed
- padding, but use a different alignment depending on the
- quadrant they are in. This fixes numerical problems when
- (rmax - rmin) gets too small. - MGD
+2009-11-12
+ font_manager.py should no longer cause EINTR on Python 2.6 (but will on the
+ 2.5 version of subprocess). Also the fc-list command in that file was fixed
+ so now it should actually find the list of fontconfig fonts. - JKS
-2012-01-08 Add axes.streamplot to plot streamlines of a velocity field.
- Adapted from Tom Flannaghan streamplot implementation. -TSY
+2009-11-10
+ Single images, and all images in renderers with option_image_nocomposite
+ (i.e. agg, macosx and the svg backend when rcParams['svg.image_noscale'] is
+ True), are now drawn respecting the zorder relative to other artists. (Note
+ that there may now be inconsistencies across backends when more than one
+ image is drawn at varying zorders, but this change introduces correct
+ behavior for the backends in which it's easy to do so.)
-2011-12-29 ps and pdf markers are now stroked only if the line width
- is nonzero for consistency with agg, fixes issue #621. - JKS
+2009-10-21
+ Make AutoDateLocator more configurable by adding options to control the
+ maximum and minimum number of ticks. Also add control of the intervals to
+ be used for ticking. This does not change behavior but opens previously
+ hard-coded behavior to runtime modification`. - RMM
-2011-12-27 Work around an EINTR bug in some versions of subprocess. - JKS
+2009-10-19
+ Add "path_effects" support for Text and Patch. See
+ examples/pylab_examples/patheffect_demo.py -JJL
-2011-10-25 added support for \operatorname to mathtext,
- including the ability to insert spaces, such as
- $\operatorname{arg\,max}$ - PI
+2009-10-19
+ Add "use_clabeltext" option to clabel. If True, clabels will be created
+ with ClabelText class, which recalculates rotation angle of the label
+ during the drawing time. -JJL
-2011-08-18 Change api of Axes.get_tightbbox and add an optional
- keyword parameter *call_axes_locator*. - JJL
+2009-10-16
+ Make AutoDateFormatter actually use any specified timezone setting.This was
+ only working correctly when no timezone was specified. - RMM
-2011-07-29 A new rcParam "axes.formatter.use_locale" was added, that,
- when True, will use the current locale to format tick
- labels. This means that, for example, in the fr_FR locale,
- ',' will be used as a decimal separator. - MGD
+2009-09-27
+ Beginnings of a capability to test the pdf backend. - JKS
-2011-07-15 The set of markers available in the plot() and scatter()
- commands has been unified. In general, this gives more
- options to both than were previously available, however,
- there is one backward-incompatible change to the markers in
- scatter:
-
- "d" used to mean "diamond", it now means "narrow
- diamond". "D" can be used for a "diamond".
-
- -MGD
-
-2011-07-13 Fix numerical problems in symlog scale, particularly when
- linthresh <= 1.0. Symlog plots may look different if one
- was depending on the old broken behavior - MGD
-
-2011-07-10 Fixed argument handling error in tripcolor/triplot/tricontour,
- issue #203. - IMT
-
-2011-07-08 Many functions added to mplot3d.axes3d to bring Axes3D
- objects more feature-parity with regular Axes objects.
- Significant revisions to the documentation as well.
- - BVR
-
-2011-07-07 Added compatibility with IPython strategy for picking
- a version of Qt4 support, and an rcParam for making
- the choice explicitly: backend.qt4. - EF
-
-2011-07-07 Modified AutoMinorLocator to improve automatic choice of
- the number of minor intervals per major interval, and
- to allow one to specify this number via a kwarg. - EF
-
-2011-06-28 3D versions of scatter, plot, plot_wireframe, plot_surface,
- bar3d, and some other functions now support empty inputs. - BVR
-
-2011-06-22 Add set_theta_offset, set_theta_direction and
- set_theta_zero_location to polar axes to control the
- location of 0 and directionality of theta. - MGD
-
-2011-06-22 Add axes.labelweight parameter to set font weight to axis
- labels - MGD.
-
-2011-06-20 Add pause function to pyplot. - EF
-
-2011-06-16 Added *bottom* keyword parameter for the stem command.
- Also, implemented a legend handler for the stem plot.
- - JJL
-
-2011-06-16 Added legend.frameon rcParams. - Mike Kaufman
-
-2011-05-31 Made backend_qt4 compatible with PySide . - Gerald Storer
-
-2011-04-17 Disable keyboard auto-repeat in qt4 backend by ignoring
- key events resulting from auto-repeat. This makes
- constrained zoom/pan work. - EF
-
-2011-04-14 interpolation="nearest" always interpolate images. A new
- mode "none" is introduced for no interpolation - JJL
-
-2011-04-03 Fixed broken pick interface to AsteriskCollection objects
- used by scatter. - EF
-
-2011-04-01 The plot directive Sphinx extension now supports all of the
- features in the Numpy fork of that extension. These
- include doctest formatting, an 'include-source' option, and
- a number of new configuration options. - MGD
-
-2011-03-29 Wrapped ViewVCCachedServer definition in a factory function.
- This class now inherits from urllib2.HTTPSHandler in order
- to fetch data from github, but HTTPSHandler is not defined
- if python was built without SSL support. - DSD
-
-2011-03-10 Update pytz version to 2011c, thanks to Simon Cross. - JKS
-
-2011-03-06 Add standalone tests.py test runner script. - JKS
-
-2011-03-06 Set edgecolor to 'face' for scatter asterisk-type
- symbols; this fixes a bug in which these symbols were
- not responding to the c kwarg. The symbols have no
- face area, so only the edgecolor is visible. - EF
-
-2011-02-27 Support libpng version 1.5.x; suggestion by Michael
- Albert. Changed installation specification to a
- minimum of libpng version 1.2. - EF
-
-2011-02-20 clabel accepts a callable as an fmt kwarg; modified
- patch by Daniel Hyams. - EF
-
-2011-02-18 scatter([], []) is now valid. Also fixed issues
- with empty collections - BVR
-
-2011-02-07 Quick workaround for dviread bug #3175113 - JKS
-
-2011-02-05 Add cbook memory monitoring for Windows, using
- tasklist. - EF
-
-2011-02-05 Speed up Normalize and LogNorm by using in-place
- operations and by using float32 for float32 inputs
- and for ints of 2 bytes or shorter; based on
- patch by Christoph Gohlke. - EF
-
-2011-02-04 Changed imshow to use rgba as uint8 from start to
- finish, instead of going through an intermediate
- step as double precision; thanks to Christoph Gohlke. - EF
-
-2011-01-13 Added zdir and offset arguments to contourf3d to
- bring contourf3d in feature parity with contour3d. - BVR
-
-2011-01-04 Tag 1.0.1 for release at r8896
-
-2011-01-03 Added display of ticker offset to 3d plots. - BVR
-
-2011-01-03 Turn off tick labeling on interior subplots for
- pyplots.subplots when sharex/sharey is True. - JDH
-
-2010-12-29 Implement axes_divider.HBox and VBox. -JJL
-
-
-2010-11-22 Fixed error with Hammer projection. - BVR
-
-2010-11-12 Fixed the placement and angle of axis labels in 3D plots. - BVR
-
-2010-11-07 New rc parameters examples.download and examples.directory
- allow bypassing the download mechanism in get_sample_data.
- - JKS
-
-2010-10-04 Fix JPEG saving bug: only accept the kwargs documented
- by PIL for JPEG files. - JKS
-
-2010-09-15 Remove unused _wxagg extension and numerix.h. - EF
-
-2010-08-25 Add new framework for doing animations with examples.- RM
-
-2010-08-21 Remove unused and inappropriate methods from Tick classes:
- set_view_interval, get_minpos, and get_data_interval are
- properly found in the Axis class and don't need to be
- duplicated in XTick and YTick. - EF
-
-2010-08-21 Change Axis.set_view_interval() so that when updating an
- existing interval, it respects the orientation of that
- interval, and can enlarge but not reduce the interval.
- This fixes a bug in which Axis.set_ticks would
- change the view limits of an inverted axis. Whether
- set_ticks should be affecting the viewLim at all remains
- an open question. - EF
-
-2010-08-16 Handle NaN's correctly in path analysis routines. Fixes a
- bug where the best location for a legend was not calculated
- correctly when the line contains NaNs. - MGD
-
-2010-08-14 Fix bug in patch alpha handling, and in bar color kwarg - EF
-
-2010-08-12 Removed all traces of numerix module after 17 months of
- deprecation warnings. - EF
-
-2010-08-05 Added keyword arguments 'thetaunits' and 'runits' for polar
- plots. Fixed PolarAxes so that when it set default
- Formatters, it marked them as such. Fixed semilogx and
- semilogy to no longer blindly reset the ticker information
- on the non-log axis. Axes.arrow can now accept unitized
- data. - JRE
-
-2010-08-03 Add support for MPLSETUPCFG variable for custom setup.cfg
- filename. Used by sage buildbot to build an mpl w/ no gui
- support - JDH
-
-2010-08-01 Create directory specified by MPLCONFIGDIR if it does
- not exist. - ADS
-
-2010-07-20 Return Qt4's default cursor when leaving the canvas - DSD
-
-2010-07-06 Tagging for mpl 1.0 at r8502
-
-
-2010-07-05 Added Ben Root's patch to put 3D plots in arbitrary axes,
- allowing you to mix 3d and 2d in different axes/subplots or
- to have multiple 3D plots in one figure. See
- examples/mplot3d/subplot3d_demo.py - JDH
-
-2010-07-05 Preferred kwarg names in set_xlim are now 'left' and
- 'right'; in set_ylim, 'bottom' and 'top'; original
- kwargs are still accepted without complaint. - EF
-
-2010-07-05 TkAgg and FltkAgg backends are now consistent with other
- interactive backends: when used in scripts from the
- command line (not from ipython -pylab), show blocks,
- and can be called more than once. - EF
-
-2010-07-02 Modified CXX/WrapPython.h to fix "swab bug" on solaris so
- mpl can compile on Solaris with CXX6 in the trunk. Closes
- tracker bug 3022815 - JDH
-
-2010-06-30 Added autoscale convenience method and corresponding
- pyplot function for simplified control of autoscaling;
- and changed axis, set_xlim, and set_ylim so that by
- default, they turn off the autoscaling on the relevant
- axis or axes. Therefore one can call set_xlim before
- plotting a line, for example, and the limits will be
- retained. - EF
-
-2010-06-20 Added Axes.tick_params and corresponding pyplot function
- to control tick and tick label appearance after an Axes
- has been created. - EF
-
-2010-06-09 Allow Axes.grid to control minor gridlines; allow
- Axes.grid and Axis.grid to control major and minor
- gridlines in the same method call. - EF
-
-2010-06-06 Change the way we do split/dividend adjustments in
- finance.py to handle dividends and fix the zero division bug reported
- in sf bug 2949906 and 2123566. Note that volume is not adjusted
- because the Yahoo CSV does not distinguish between share
- split and dividend adjustments making it near impossible to
- get volume adjustment right (unless we want to guess based
- on the size of the adjustment or scrape the html tables,
- which we don't) - JDH
-
-2010-06-06 Updated dateutil to 1.5 and pytz to 2010h.
-
-2010-06-02 Add error_kw kwarg to Axes.bar(). - EF
-
-2010-06-01 Fix pcolormesh() and QuadMesh to pass on kwargs as
- appropriate. - RM
-
-2010-05-18 Merge mpl_toolkits.gridspec into the main tree. - JJL
-
-2010-05-04 Improve backend_qt4 so it displays figures with the
- correct size - DSD
-
-2010-04-20 Added generic support for connecting to a timer for events. This
- adds TimerBase, TimerGTK, TimerQT, TimerWx, and TimerTk to
- the backends and a new_timer() method to each backend's
- canvas to allow ease of creating a new timer. - RM
-
-2010-04-20 Added margins() Axes method and pyplot function. - EF
-
-2010-04-18 update the axes_grid documentation. -JJL
-
-2010-04-18 Control MaxNLocator parameters after instantiation,
- and via Axes.locator_params method, with corresponding
- pyplot function. -EF
-
-2010-04-18 Control ScalarFormatter offsets directly and via the
- Axes.ticklabel_format() method, and add that to pyplot. -EF
-
-2010-04-16 Add a close_event to the backends. -RM
-
-2010-04-06 modify axes_grid examples to use axes_grid1 and axisartist. -JJL
-
-2010-04-06 rebase axes_grid using axes_grid1 and axisartist modules. -JJL
-
-2010-04-06 axes_grid toolkit is split into two separate modules,
- axes_grid1 and axisartist. -JJL
-
-2010-04-05 Speed up import: import pytz only if and when it is
- needed. It is not needed if the rc timezone is UTC. - EF
-
-2010-04-03 Added color kwarg to Axes.hist(), based on work by
- Jeff Klukas. - EF
-
-2010-03-24 refactor colorbar code so that no cla() is necessary when
- mappable is changed. -JJL
-
-2010-03-22 fix incorrect rubber band during the zoom mode when mouse
- leaves the axes. -JJL
-
-2010-03-21 x/y key during the zoom mode only changes the x/y limits. -JJL
-
-2010-03-20 Added pyplot.sca() function suggested by JJL. - EF
-
-2010-03-20 Added conditional support for new Tooltip API in gtk backend. - EF
-
-2010-03-20 Changed plt.fig_subplot() to plt.subplots() after discussion on
- list, and changed its API to return axes as a numpy object array
- (with control of dimensions via squeeze keyword). FP.
-
-2010-03-13 Manually brought in commits from branch::
-
- ------------------------------------------------------------------------
- r8191 | leejjoon | 2010-03-13 17:27:57 -0500 (Sat, 13 Mar 2010) | 1 line
-
- fix the bug that handles for scatter are incorrectly set when dpi!=72.
- Thanks to Ray Speth for the bug report.
-
-
-2010-03-03 Manually brought in commits from branch via diff/patch (svnmerge is broken)::
-
- ------------------------------------------------------------------------
- r8175 | leejjoon | 2010-03-03 10:03:30 -0800 (Wed, 03 Mar 2010) | 1 line
-
- fix arguments of allow_rasterization.draw_wrapper
- ------------------------------------------------------------------------
- r8174 | jdh2358 | 2010-03-03 09:15:58 -0800 (Wed, 03 Mar 2010) | 1 line
-
- added support for favicon in docs build
- ------------------------------------------------------------------------
- r8173 | jdh2358 | 2010-03-03 08:56:16 -0800 (Wed, 03 Mar 2010) | 1 line
-
- applied Mattias get_bounds patch
- ------------------------------------------------------------------------
- r8172 | jdh2358 | 2010-03-03 08:31:42 -0800 (Wed, 03 Mar 2010) | 1 line
-
- fix svnmerge download instructions
- ------------------------------------------------------------------------
- r8171 | jdh2358 | 2010-03-03 07:47:48 -0800 (Wed, 03 Mar 2010) | 1 line
-
-
-
-2010-02-25 add annotation_demo3.py that demonstrates new functionality. -JJL
-
-2010-02-25 refactor Annotation to support arbitrary Transform as xycoords
- or textcoords. Also, if a tuple of two coordinates is provided,
- they are interpreted as coordinates for each x and y position.
- -JJL
-
-2010-02-24 Added pyplot.fig_subplot(), to create a figure and a group of
- subplots in a single call. This offers an easier pattern than
- manually making figures and calling add_subplot() multiple times. FP
-
-2010-02-17 Added Gokhan's and Mattias' customizable keybindings patch
- for the toolbar. You can now set the keymap.* properties
- in the matplotlibrc file. Newbindings were added for
- toggling log scaling on the x-axis. JDH
-
-2010-02-16 Committed TJ's filled marker patch for
- left|right|bottom|top|full filled markers. See
- examples/pylab_examples/filledmarker_demo.py. JDH
-
-2010-02-11 Added 'bootstrap' option to boxplot. This allows bootstrap
- estimates of median confidence intervals. Based on an
- initial patch by Paul Hobson. - ADS
-
-2010-02-06 Added setup.cfg "basedirlist" option to override setting
- in setupext.py "basedir" dictionary; added "gnu0"
- platform requested by Benjamin Drung. - EF
-
-2010-02-06 Added 'xy' scaling option to EllipseCollection. - EF
-
-2010-02-03 Made plot_directive use a custom PlotWarning category, so that
- warnings can be turned into fatal errors easily if desired. - FP
-
-2010-01-29 Added draggable method to Legend to allow mouse drag
- placement. Thanks Adam Fraser. JDH
-
-2010-01-25 Fixed a bug reported by Olle Engdegard, when using
- histograms with stepfilled and log=True - MM
-
-2010-01-16 Upgraded CXX to 6.1.1 - JDH
-
-2009-01-16 Don't create minor ticks on top of existing major
- ticks. Patch by Neil Crighton. -ADS
-
-2009-01-16 Ensure three minor ticks always drawn (SF# 2924245). Patch
- by Neil Crighton. -ADS
-
-2010-01-16 Applied patch by Ian Thomas to fix two contouring
- problems: now contourf handles interior masked regions,
- and the boundaries of line and filled contours coincide. - EF
-
-2009-01-11 The color of legend patch follows the rc parameters
- axes.facecolor and axes.edgecolor. -JJL
-
-2009-01-11 adjustable of Axes can be "box-forced" which allow
- sharing axes. -JJL
-
-2009-01-11 Add add_click and pop_click methods in
- BlockingContourLabeler. -JJL
-
-
-2010-01-03 Added rcParams['axes.color_cycle'] - EF
-
-2010-01-03 Added Pierre's qt4 formlayout editor and toolbar button - JDH
-
-2009-12-31 Add support for using math text as marker symbols (Thanks to tcb)
- - MGD
-
-2009-12-31 Commit a workaround for a regression in PyQt4-4.6.{0,1} - DSD
-
-2009-12-22 Fix cmap data for gist_earth_r, etc. -JJL
-
-2009-12-20 spines: put spines in data coordinates, add set_bounds()
- call. -ADS
-
-2009-12-18 Don't limit notch size in boxplot to q1-q3 range, as this
- is effectively making the data look better than it is. - ADS
-
-2009-12-18 mlab.prctile handles even-length data, such that the median
- is the mean of the two middle values. - ADS
-
-2009-12-15 Add raw-image (unsampled) support for the ps backend. - JJL
-
-2009-12-14 Add patch_artist kwarg to boxplot, but keep old default.
- Convert boxplot_demo2.py to use the new patch_artist. - ADS
-
-2009-12-06 axes_grid: reimplemented AxisArtist with FloatingAxes support.
- Added new examples. - JJL
-
-2009-12-01 Applied Laurent Dufrechou's patch to improve blitting with
- the qt4 backend - DSD
-
-2009-11-13 The pdf backend now allows changing the contents of
- a pdf file's information dictionary via PdfPages.infodict. - JKS
-
-2009-11-12 font_manager.py should no longer cause EINTR on Python 2.6
- (but will on the 2.5 version of subprocess). Also the
- fc-list command in that file was fixed so now it should
- actually find the list of fontconfig fonts. - JKS
-
-2009-11-10 Single images, and all images in renderers with
- option_image_nocomposite (i.e. agg, macosx and the svg
- backend when rcParams['svg.image_noscale'] is True), are
- now drawn respecting the zorder relative to other
- artists. (Note that there may now be inconsistencies across
- backends when more than one image is drawn at varying
- zorders, but this change introduces correct behavior for
- the backends in which it's easy to do so.)
-
-2009-10-21 Make AutoDateLocator more configurable by adding options
- to control the maximum and minimum number of ticks. Also
- add control of the intervals to be used for ticking. This
- does not change behavior but opens previously hard-coded
- behavior to runtime modification`. - RMM
-
-2009-10-19 Add "path_effects" support for Text and Patch. See
- examples/pylab_examples/patheffect_demo.py -JJL
-
-2009-10-19 Add "use_clabeltext" option to clabel. If True, clabels
- will be created with ClabelText class, which recalculates
- rotation angle of the label during the drawing time. -JJL
-
-2009-10-16 Make AutoDateFormatter actually use any specified
- timezone setting.This was only working correctly
- when no timezone was specified. - RMM
-
-2009-09-27 Beginnings of a capability to test the pdf backend. - JKS
-
-2009-09-27 Add a savefig.extension rcparam to control the default
- filename extension used by savefig. - JKS
+2009-09-27
+ Add a savefig.extension rcparam to control the default filename extension
+ used by savefig. - JKS
===============================================
-2009-09-21 Tagged for release 0.99.1
-
-2009-09-20 Fix usetex spacing errors in pdf backend. - JKS
-
-2009-09-20 Add Sphinx extension to highlight IPython console sessions,
- originally authored (I think) by Michael Droetboom. - FP
-
-2009-09-20 Fix off-by-one error in dviread.Tfm, and additionally protect
- against exceptions in case a dvi font is missing some metrics. - JKS
+2009-09-21
+ Tagged for release 0.99.1
-2009-09-15 Implement draw_text and draw_tex method of backend_base using
- the textpath module. Implement draw_tex method of the svg
- backend. - JJL
+2009-09-20
+ Fix usetex spacing errors in pdf backend. - JKS
-2009-09-15 Don't fail on AFM files containing floating-point bounding boxes - JKS
+2009-09-20
+ Add Sphinx extension to highlight IPython console sessions, originally
+ authored (I think) by Michael Droetboom. - FP
-2009-09-13 AxesGrid : add modified version of colorbar. Add colorbar
- location howto. - JJL
+2009-09-20
+ Fix off-by-one error in dviread.Tfm, and additionally protect against
+ exceptions in case a dvi font is missing some metrics. - JKS
-2009-09-07 AxesGrid : implemented axisline style.
- Added a demo examples/axes_grid/demo_axisline_style.py- JJL
+2009-09-15
+ Implement draw_text and draw_tex method of backend_base using the textpath
+ module. Implement draw_tex method of the svg backend. - JJL
-2009-09-04 Make the textpath class as a separate module
- (textpath.py). Add support for mathtext and tex.- JJL
+2009-09-15
+ Don't fail on AFM files containing floating-point bounding boxes - JKS
-2009-09-01 Added support for Gouraud interpolated triangles.
- pcolormesh now accepts shading='gouraud' as an option. - MGD
+2009-09-13
+ AxesGrid : add modified version of colorbar. Add colorbar location howto. -
+ JJL
-2009-08-29 Added matplotlib.testing package, which contains a Nose
- plugin and a decorator that lets tests be marked as
- KnownFailures - ADS
+2009-09-07
+ AxesGrid : implemented axisline style. Added a demo
+ examples/axes_grid/demo_axisline_style.py- JJL
-2009-08-20 Added scaled dict to AutoDateFormatter for customized
- scales - JDH
+2009-09-04
+ Make the textpath class as a separate module (textpath.py). Add support for
+ mathtext and tex.- JJL
-2009-08-15 Pyplot interface: the current image is now tracked at the
- figure and axes level, addressing tracker item 1656374. - EF
+2009-09-01
+ Added support for Gouraud interpolated triangles. pcolormesh now accepts
+ shading='gouraud' as an option. - MGD
-2009-08-15 Docstrings are now manipulated with decorators defined
- in a new module, docstring.py, thanks to Jason Coombs. - EF
+2009-08-29
+ Added matplotlib.testing package, which contains a Nose plugin and a
+ decorator that lets tests be marked as KnownFailures - ADS
-2009-08-14 Add support for image filtering for agg back end. See the example
- demo_agg_filter.py. -JJL
+2009-08-20
+ Added scaled dict to AutoDateFormatter for customized scales - JDH
-2009-08-09 AnnotationBbox added. Similar to Annotation, but works with
- OffsetBox instead of Text. See the example
- demo_annotation_box.py. -JJL
+2009-08-15
+ Pyplot interface: the current image is now tracked at the figure and axes
+ level, addressing tracker item 1656374. - EF
-2009-08-07 BboxImage implemented. Two examples, demo_bboximage.py and
- demo_ribbon_box.py added. - JJL
+2009-08-15
+ Docstrings are now manipulated with decorators defined in a new module,
+ docstring.py, thanks to Jason Coombs. - EF
-2009-08-07 In an effort to simplify the backend API, all clipping rectangles
- and paths are now passed in using GraphicsContext objects, even
- on collections and images. Therefore:
+2009-08-14
+ Add support for image filtering for agg back end. See the example
+ demo_agg_filter.py. -JJL
- draw_path_collection(self, master_transform, cliprect, clippath,
- clippath_trans, paths, all_transforms, offsets,
- offsetTrans, facecolors, edgecolors, linewidths,
- linestyles, antialiaseds, urls)
+2009-08-09
+ AnnotationBbox added. Similar to Annotation, but works with OffsetBox
+ instead of Text. See the example demo_annotation_box.py. -JJL
- becomes:
+2009-08-07
+ BboxImage implemented. Two examples, demo_bboximage.py and
+ demo_ribbon_box.py added. - JJL
- draw_path_collection(self, gc, master_transform, paths, all_transforms,
- offsets, offsetTrans, facecolors, edgecolors,
- linewidths, linestyles, antialiaseds, urls)
+2009-08-07
+ In an effort to simplify the backend API, all clipping rectangles and paths
+ are now passed in using GraphicsContext objects, even on collections and
+ images. Therefore::
+ draw_path_collection(self, master_transform, cliprect, clippath,
+ clippath_trans, paths, all_transforms, offsets,
+ offsetTrans, facecolors, edgecolors, linewidths,
+ linestyles, antialiaseds, urls)
+ becomes::
- draw_quad_mesh(self, master_transform, cliprect, clippath,
- clippath_trans, meshWidth, meshHeight, coordinates,
- offsets, offsetTrans, facecolors, antialiased,
- showedges)
+ draw_path_collection(self, gc, master_transform, paths, all_transforms,
+ offsets, offsetTrans, facecolors, edgecolors,
+ linewidths, linestyles, antialiaseds, urls)
- becomes:
+ ::
- draw_quad_mesh(self, gc, master_transform, meshWidth, meshHeight,
- coordinates, offsets, offsetTrans, facecolors,
- antialiased, showedges)
+ draw_quad_mesh(self, master_transform, cliprect, clippath,
+ clippath_trans, meshWidth, meshHeight, coordinates,
+ offsets, offsetTrans, facecolors, antialiased,
+ showedges)
+ becomes::
+ draw_quad_mesh(self, gc, master_transform, meshWidth, meshHeight,
+ coordinates, offsets, offsetTrans, facecolors,
+ antialiased, showedges)
- draw_image(self, x, y, im, bbox, clippath=None, clippath_trans=None)
+ ::
- becomes:
+ draw_image(self, x, y, im, bbox, clippath=None, clippath_trans=None)
- draw_image(self, gc, x, y, im)
+ becomes::
- - MGD
+ draw_image(self, gc, x, y, im)
-2009-08-06 Tagging the 0.99.0 release at svn r7397 - JDH
+ - MGD
- * fixed an alpha colormapping bug posted on sf 2832575
+2009-08-06
+ Tagging the 0.99.0 release at svn r7397 - JDH
- * fix typo in axes_divider.py. use nanmin, nanmax in angle_helper.py
- (patch by Christoph Gohlke)
+ * fixed an alpha colormapping bug posted on sf 2832575
- * remove dup gui event in enter/leave events in gtk
+ * fix typo in axes_divider.py. use nanmin, nanmax in angle_helper.py (patch
+ by Christoph Gohlke)
- * lots of fixes for os x binaries (Thanks Russell Owen)
+ * remove dup gui event in enter/leave events in gtk
- * attach gtk events to mpl events -- fixes sf bug 2816580
+ * lots of fixes for os x binaries (Thanks Russell Owen)
- * applied sf patch 2815064 (middle button events for wx) and
- patch 2818092 (resize events for wx)
+ * attach gtk events to mpl events -- fixes sf bug 2816580
- * fixed boilerplate.py so it doesn't break the ReST docs.
+ * applied sf patch 2815064 (middle button events for wx) and patch 2818092
+ (resize events for wx)
- * removed a couple of cases of mlab.load
+ * fixed boilerplate.py so it doesn't break the ReST docs.
- * fixed rec2csv win32 file handle bug from sf patch 2831018
+ * removed a couple of cases of mlab.load
- * added two examples from Josh Hemann: examples/pylab_examples/barchart_demo2.py
- and examples/pylab_examples/boxplot_demo2.py
+ * fixed rec2csv win32 file handle bug from sf patch 2831018
- * handled sf bugs 2831556 and 2830525; better bar error messages and
- backend driver configs
+ * added two examples from Josh Hemann:
+ examples/pylab_examples/barchart_demo2.py and
+ examples/pylab_examples/boxplot_demo2.py
- * added miktex win32 patch from sf patch 2820194
+ * handled sf bugs 2831556 and 2830525; better bar error messages and
+ backend driver configs
- * apply sf patches 2830233 and 2823885 for osx setup and 64 bit; thanks Michiel
+ * added miktex win32 patch from sf patch 2820194
-2009-08-04 Made cbook.get_sample_data make use of the ETag and Last-Modified
- headers of mod_dav_svn. - JKS
+ * apply sf patches 2830233 and 2823885 for osx setup and 64 bit; thanks
+ Michiel
-2009-08-03 Add PathCollection; modify contourf to use complex
- paths instead of simple paths with cuts. - EF
+2009-08-04
+ Made cbook.get_sample_data make use of the ETag and Last-Modified headers
+ of mod_dav_svn. - JKS
+2009-08-03
+ Add PathCollection; modify contourf to use complex paths instead of simple
+ paths with cuts. - EF
-2009-08-03 Fixed boilerplate.py so it doesn't break the ReST docs. - JKS
+2009-08-03
+ Fixed boilerplate.py so it doesn't break the ReST docs. - JKS
-2009-08-03 pylab no longer provides a load and save function. These
- are available in matplotlib.mlab, or you can use
- numpy.loadtxt and numpy.savetxt for text files, or np.save
- and np.load for binary numpy arrays. - JDH
+2009-08-03
+ pylab no longer provides a load and save function. These are available in
+ matplotlib.mlab, or you can use numpy.loadtxt and numpy.savetxt for text
+ files, or np.save and np.load for binary numpy arrays. - JDH
-2009-07-31 Added cbook.get_sample_data for urllib enabled fetching and
- caching of data needed for examples. See
- examples/misc/sample_data_demo.py - JDH
+2009-07-31
+ Added cbook.get_sample_data for urllib enabled fetching and caching of data
+ needed for examples. See examples/misc/sample_data_demo.py - JDH
-2009-07-31 Tagging 0.99.0.rc1 at 7314 - MGD
+2009-07-31
+ Tagging 0.99.0.rc1 at 7314 - MGD
-2009-07-30 Add set_cmap and register_cmap, and improve get_cmap,
- to provide convenient handling of user-generated
- colormaps. Reorganized _cm and cm modules. - EF
+2009-07-30
+ Add set_cmap and register_cmap, and improve get_cmap, to provide convenient
+ handling of user-generated colormaps. Reorganized _cm and cm modules. - EF
-2009-07-28 Quiver speed improved, thanks to tip by Ray Speth. -EF
+2009-07-28
+ Quiver speed improved, thanks to tip by Ray Speth. -EF
-2009-07-27 Simplify argument handling code for plot method. -EF
+2009-07-27
+ Simplify argument handling code for plot method. -EF
-2009-07-25 Allow "plot(1, 2, 'r*')" to work. - EF
+2009-07-25
+ Allow "plot(1, 2, 'r*')" to work. - EF
-2009-07-22 Added an 'interp' keyword to griddata so the faster linear
- interpolation method can be chosen. Default is 'nn', so
- default behavior (using natural neighbor method) is unchanged (JSW)
+2009-07-22
+ Added an 'interp' keyword to griddata so the faster linear interpolation
+ method can be chosen. Default is 'nn', so default behavior (using natural
+ neighbor method) is unchanged (JSW)
-2009-07-22 Improved boilerplate.py so that it generates the correct
- signatures for pyplot functions. - JKS
+2009-07-22
+ Improved boilerplate.py so that it generates the correct signatures for
+ pyplot functions. - JKS
-2009-07-19 Fixed the docstring of Axes.step to reflect the correct
- meaning of the kwargs "pre" and "post" - See SF bug
- \https://sourceforge.net/tracker/index.php?func=detail&aid=2823304&group_id=80706&atid=560720
- - JDH
+2009-07-19
+ Fixed the docstring of Axes.step to reflect the correct meaning of the
+ kwargs "pre" and "post" - See SF bug
+ \https://sourceforge.net/tracker/index.php?func=detail&aid=2823304&group_id=80706&atid=560720
+ - JDH
-2009-07-18 Fix support for hatches without color fills to pdf and svg
- backends. Add an example of that to hatch_demo.py. - JKS
+2009-07-18
+ Fix support for hatches without color fills to pdf and svg backends. Add an
+ example of that to hatch_demo.py. - JKS
-2009-07-17 Removed fossils from swig version of agg backend. - EF
+2009-07-17
+ Removed fossils from swig version of agg backend. - EF
-2009-07-14 initial submission of the annotation guide. -JJL
+2009-07-14
+ initial submission of the annotation guide. -JJL
-2009-07-14 axes_grid : minor improvements in anchored_artists and
- inset_locator. -JJL
+2009-07-14
+ axes_grid : minor improvements in anchored_artists and inset_locator. -JJL
-2009-07-14 Fix a few bugs in ConnectionStyle algorithms. Add
- ConnectionPatch class. -JJL
+2009-07-14
+ Fix a few bugs in ConnectionStyle algorithms. Add ConnectionPatch class.
+ -JJL
-2009-07-11 Added a fillstyle Line2D property for half filled markers
- -- see examples/pylab_examples/fillstyle_demo.py JDH
+2009-07-11
+ Added a fillstyle Line2D property for half filled markers -- see
+ examples/pylab_examples/fillstyle_demo.py JDH
-2009-07-08 Attempt to improve performance of qt4 backend, do not call
- qApp.processEvents while processing an event. Thanks Ole
- Streicher for tracking this down - DSD
+2009-07-08
+ Attempt to improve performance of qt4 backend, do not call
+ qApp.processEvents while processing an event. Thanks Ole Streicher for
+ tracking this down - DSD
-2009-06-24 Add withheader option to mlab.rec2csv and changed
- use_mrecords default to False in mlab.csv2rec since this is
- partially broken - JDH
+2009-06-24
+ Add withheader option to mlab.rec2csv and changed use_mrecords default to
+ False in mlab.csv2rec since this is partially broken - JDH
-2009-06-24 backend_agg.draw_marker quantizes the main path (as in the
- draw_path). - JJL
+2009-06-24
+ backend_agg.draw_marker quantizes the main path (as in the draw_path). -
+ JJL
-2009-06-24 axes_grid: floating axis support added. - JJL
+2009-06-24
+ axes_grid: floating axis support added. - JJL
-2009-06-14 Add new command line options to backend_driver.py to support
- running only some directories of tests - JKS
+2009-06-14
+ Add new command line options to backend_driver.py to support running only
+ some directories of tests - JKS
-2009-06-13 partial cleanup of mlab and its importation in pylab - EF
+2009-06-13
+ partial cleanup of mlab and its importation in pylab - EF
-2009-06-13 Introduce a rotation_mode property for the Text artist. See
- examples/pylab_examples/demo_text_rotation_mode.py -JJL
+2009-06-13
+ Introduce a rotation_mode property for the Text artist. See
+ examples/pylab_examples/demo_text_rotation_mode.py -JJL
-2009-06-07 add support for bz2 files per sf support request 2794556 -
- JDH
+2009-06-07
+ add support for bz2 files per sf support request 2794556 - JDH
-2009-06-06 added a properties method to the artist and inspector to
- return a dict mapping property name -> value; see sf
- feature request 2792183 - JDH
+2009-06-06
+ added a properties method to the artist and inspector to return a dict
+ mapping property name -> value; see sf feature request 2792183 - JDH
-2009-06-06 added Neil's auto minor tick patch; sf patch #2789713 - JDH
+2009-06-06
+ added Neil's auto minor tick patch; sf patch #2789713 - JDH
-2009-06-06 do not apply alpha to rgba color conversion if input is
- already rgba - JDH
+2009-06-06
+ do not apply alpha to rgba color conversion if input is already rgba - JDH
-2009-06-03 axes_grid : Initial check-in of curvelinear grid support. See
- examples/axes_grid/demo_curvelinear_grid.py - JJL
+2009-06-03
+ axes_grid : Initial check-in of curvelinear grid support. See
+ examples/axes_grid/demo_curvelinear_grid.py - JJL
-2009-06-01 Add set_color method to Patch - EF
+2009-06-01
+ Add set_color method to Patch - EF
-2009-06-01 Spine is now derived from Patch - ADS
+2009-06-01
+ Spine is now derived from Patch - ADS
-2009-06-01 use cbook.is_string_like() instead of isinstance() for spines - ADS
+2009-06-01
+ use cbook.is_string_like() instead of isinstance() for spines - ADS
-2009-06-01 cla() support for spines - ADS
+2009-06-01
+ cla() support for spines - ADS
-2009-06-01 Removed support for gtk < 2.4. - EF
+2009-06-01
+ Removed support for gtk < 2.4. - EF
-2009-05-29 Improved the animation_blit_qt4 example, which was a mix
- of the object-oriented and pylab interfaces. It is now
- strictly object-oriented - DSD
+2009-05-29
+ Improved the animation_blit_qt4 example, which was a mix of the
+ object-oriented and pylab interfaces. It is now strictly object-oriented -
+ DSD
-2009-05-28 Fix axes_grid toolkit to work with spine patch by ADS. - JJL
+2009-05-28
+ Fix axes_grid toolkit to work with spine patch by ADS. - JJL
-2009-05-28 Applied fbianco's patch to handle scroll wheel events in
- the qt4 backend - DSD
+2009-05-28
+ Applied fbianco's patch to handle scroll wheel events in the qt4 backend -
+ DSD
-2009-05-26 Add support for "axis spines" to have arbitrary location. -ADS
+2009-05-26
+ Add support for "axis spines" to have arbitrary location. -ADS
-2009-05-20 Add an empty matplotlibrc to the tests/ directory so that running
- tests will use the default set of rcparams rather than the user's
- config. - RMM
+2009-05-20
+ Add an empty matplotlibrc to the tests/ directory so that running tests
+ will use the default set of rcparams rather than the user's config. - RMM
-2009-05-19 Axis.grid(): allow use of which='major,minor' to have grid
- on major and minor ticks. -ADS
+2009-05-19
+ Axis.grid(): allow use of which='major,minor' to have grid on major and
+ minor ticks. -ADS
-2009-05-18 Make psd(), csd(), and cohere() wrap properly for complex/two-sided
- versions, like specgram() (SF #2791686) - RMM
+2009-05-18
+ Make psd(), csd(), and cohere() wrap properly for complex/two-sided
+ versions, like specgram() (SF #2791686) - RMM
-2009-05-18 Fix the linespacing bug of multiline text (#1239682). See
- examples/pylab_examples/multiline.py -JJL
+2009-05-18
+ Fix the linespacing bug of multiline text (#1239682). See
+ examples/pylab_examples/multiline.py -JJL
-2009-05-18 Add *annotation_clip* attr. for text.Annotation class.
- If True, annotation is only drawn when the annotated point is
- inside the axes area. -JJL
+2009-05-18
+ Add *annotation_clip* attr. for text.Annotation class. If True, annotation
+ is only drawn when the annotated point is inside the axes area. -JJL
-2009-05-17 Fix bug(#2749174) that some properties of minor ticks are
- not conserved -JJL
+2009-05-17
+ Fix bug(#2749174) that some properties of minor ticks are not conserved
+ -JJL
-2009-05-17 applied Michiel's sf patch 2790638 to turn off gtk event
- loop in setupext for pygtk>=2.15.10 - JDH
+2009-05-17
+ applied Michiel's sf patch 2790638 to turn off gtk event loop in setupext
+ for pygtk>=2.15.10 - JDH
-2009-05-17 applied Michiel's sf patch 2792742 to speed up Cairo and
- macosx collections; speedups can be 20x. Also fixes some
- bugs in which gc got into inconsistent state
+2009-05-17
+ applied Michiel's sf patch 2792742 to speed up Cairo and macosx
+ collections; speedups can be 20x. Also fixes some bugs in which gc got
+ into inconsistent state
-----------------------
-2008-05-17 Release 0.98.5.3 at r7107 from the branch - JDH
+2008-05-17
+ Release 0.98.5.3 at r7107 from the branch - JDH
-2009-05-13 An optional offset and bbox support in restore_bbox.
- Add animation_blit_gtk2.py. -JJL
+2009-05-13
+ An optional offset and bbox support in restore_bbox. Add
+ animation_blit_gtk2.py. -JJL
-2009-05-13 psfrag in backend_ps now uses baseline-alignment
- when preview.sty is used ((default is
- bottom-alignment). Also, a small API improvement
- in OffsetBox-JJL
+2009-05-13
+ psfrag in backend_ps now uses baseline-alignment when preview.sty is used
+ ((default is bottom-alignment). Also, a small API improvement in
+ OffsetBox-JJL
-2009-05-13 When the x-coordinate of a line is monotonically
- increasing, it is now automatically clipped at
- the stage of generating the transformed path in
- the draw method; this greatly speeds up zooming and
- panning when one is looking at a short segment of
- a long time series, for example. - EF
+2009-05-13
+ When the x-coordinate of a line is monotonically increasing, it is now
+ automatically clipped at the stage of generating the transformed path in
+ the draw method; this greatly speeds up zooming and panning when one is
+ looking at a short segment of a long time series, for example. - EF
-2009-05-11 aspect=1 in log-log plot gives square decades. -JJL
+2009-05-11
+ aspect=1 in log-log plot gives square decades. -JJL
-2009-05-08 clabel takes new kwarg, rightside_up; if False, labels
- will not be flipped to keep them rightside-up. This
- allows the use of clabel to make streamfunction arrows,
- as requested by Evan Mason. - EF
+2009-05-08
+ clabel takes new kwarg, rightside_up; if False, labels will not be flipped
+ to keep them rightside-up. This allows the use of clabel to make
+ streamfunction arrows, as requested by Evan Mason. - EF
-2009-05-07 'labelpad' can now be passed when setting x/y labels. This
- allows controlling the spacing between the label and its
- axis. - RMM
+2009-05-07
+ 'labelpad' can now be passed when setting x/y labels. This allows
+ controlling the spacing between the label and its axis. - RMM
-2009-05-06 print_ps now uses mixed-mode renderer. Axes.draw rasterize
- artists whose zorder smaller than rasterization_zorder.
- -JJL
+2009-05-06
+ print_ps now uses mixed-mode renderer. Axes.draw rasterize artists whose
+ zorder smaller than rasterization_zorder. -JJL
-2009-05-06 Per-artist Rasterization, originally by Eric Bruning. -JJ
+2009-05-06
+ Per-artist Rasterization, originally by Eric Bruning. -JJ
-2009-05-05 Add an example that shows how to make a plot that updates
- using data from another process. Thanks to Robert
- Cimrman - RMM
+2009-05-05
+ Add an example that shows how to make a plot that updates using data from
+ another process. Thanks to Robert Cimrman - RMM
-2009-05-05 Add Axes.get_legend_handles_labels method. - JJL
+2009-05-05
+ Add Axes.get_legend_handles_labels method. - JJL
-2009-05-04 Fix bug that Text.Annotation is still drawn while set to
- not visible. - JJL
+2009-05-04
+ Fix bug that Text.Annotation is still drawn while set to not visible. - JJL
-2009-05-04 Added TJ's fill_betweenx patch - JDH
+2009-05-04
+ Added TJ's fill_betweenx patch - JDH
-2009-05-02 Added options to plotfile based on question from
- Joseph Smidt and patch by Matthias Michler. - EF
+2009-05-02
+ Added options to plotfile based on question from Joseph Smidt and patch by
+ Matthias Michler. - EF
+2009-05-01
+ Changed add_artist and similar Axes methods to return their argument. - EF
-2009-05-01 Changed add_artist and similar Axes methods to
- return their argument. - EF
+2009-04-30
+ Incorrect eps bbox for landscape mode fixed - JJL
-2009-04-30 Incorrect eps bbox for landscape mode fixed - JJL
+2009-04-28
+ Fixed incorrect bbox of eps output when usetex=True. - JJL
-2009-04-28 Fixed incorrect bbox of eps output when usetex=True. - JJL
+2009-04-24
+ Changed use of os.open* to instead use subprocess.Popen. os.popen* are
+ deprecated in 2.6 and are removed in 3.0. - RMM
-2009-04-24 Changed use of os.open* to instead use subprocess.Popen.
- os.popen* are deprecated in 2.6 and are removed in 3.0. - RMM
+2009-04-20
+ Worked on axes_grid documentation. Added axes_grid.inset_locator. - JJL
-2009-04-20 Worked on axes_grid documentation. Added
- axes_grid.inset_locator. - JJL
+2009-04-17
+ Initial check-in of the axes_grid toolkit. - JJL
-2009-04-17 Initial check-in of the axes_grid toolkit. - JJL
+2009-04-17
+ Added a support for bbox_to_anchor in offsetbox.AnchoredOffsetbox. Improved
+ a documentation. - JJL
-2009-04-17 Added a support for bbox_to_anchor in
- offsetbox.AnchoredOffsetbox. Improved a documentation.
- - JJL
+2009-04-16
+ Fixed a offsetbox bug that multiline texts are not correctly aligned. -
+ JJL
-2009-04-16 Fixed a offsetbox bug that multiline texts are not
- correctly aligned. - JJL
+2009-04-16
+ Fixed a bug in mixed mode renderer that images produced by an rasterizing
+ backend are placed with incorrect size. - JJL
-2009-04-16 Fixed a bug in mixed mode renderer that images produced by
- an rasterizing backend are placed with incorrect size.
- - JJL
+2009-04-14
+ Added Jonathan Taylor's Reinier Heeres' port of John Porters' mplot3d to
+ svn trunk. Package in mpl_toolkits.mplot3d and demo is
+ examples/mplot3d/demo.py. Thanks Reiner
-2009-04-14 Added Jonathan Taylor's Reinier Heeres' port of John
- Porters' mplot3d to svn trunk. Package in
- mpl_toolkits.mplot3d and demo is examples/mplot3d/demo.py.
- Thanks Reiner
+2009-04-06
+ The pdf backend now escapes newlines and linefeeds in strings. Fixes sf
+ bug #2708559; thanks to Tiago Pereira for the report.
-2009-04-06 The pdf backend now escapes newlines and linefeeds in strings.
- Fixes sf bug #2708559; thanks to Tiago Pereira for the report.
+2009-04-06
+ texmanager.make_dvi now raises an error if LaTeX failed to create an output
+ file. Thanks to Joao Luis Silva for reporting this. - JKS
-2009-04-06 texmanager.make_dvi now raises an error if LaTeX failed to
- create an output file. Thanks to Joao Luis Silva for reporting
- this. - JKS
+2009-04-05
+ _png.read_png() reads 12 bit PNGs (patch from Tobias Wood) - ADS
-2009-04-05 _png.read_png() reads 12 bit PNGs (patch from
- Tobias Wood) - ADS
+2009-04-04
+ Allow log axis scale to clip non-positive values to small positive value;
+ this is useful for errorbars. - EF
-2009-04-04 Allow log axis scale to clip non-positive values to
- small positive value; this is useful for errorbars. - EF
+2009-03-28
+ Make images handle nan in their array argument. A helper,
+ cbook.safe_masked_invalid() was added. - EF
-2009-03-28 Make images handle nan in their array argument.
- A helper, cbook.safe_masked_invalid() was added. - EF
+2009-03-25
+ Make contour and contourf handle nan in their Z argument. - EF
-2009-03-25 Make contour and contourf handle nan in their Z argument. - EF
+2009-03-20
+ Add AuxTransformBox in offsetbox.py to support some transformation.
+ anchored_text.py example is enhanced and renamed (anchored_artists.py). -
+ JJL
-2009-03-20 Add AuxTransformBox in offsetbox.py to support some transformation.
- anchored_text.py example is enhanced and renamed
- (anchored_artists.py). - JJL
+2009-03-20
+ Add "bar" connection style for annotation - JJL
-2009-03-20 Add "bar" connection style for annotation - JJL
+2009-03-17
+ Fix bugs in edge color handling by contourf, found by Jae-Joon Lee. - EF
-2009-03-17 Fix bugs in edge color handling by contourf, found
- by Jae-Joon Lee. - EF
+2009-03-14
+ Added 'LightSource' class to colors module for creating shaded relief maps.
+ shading_example.py added to illustrate usage. - JSW
-2009-03-14 Added 'LightSource' class to colors module for
- creating shaded relief maps. shading_example.py
- added to illustrate usage. - JSW
+2009-03-11
+ Ensure wx version >= 2.8; thanks to Sandro Tosi and Chris Barker. - EF
-2009-03-11 Ensure wx version >= 2.8; thanks to Sandro Tosi and
- Chris Barker. - EF
+2009-03-10
+ Fix join style bug in pdf. - JKS
-2009-03-10 Fix join style bug in pdf. - JKS
+2009-03-07
+ Add pyplot access to figure number list - EF
-2009-03-07 Add pyplot access to figure number list - EF
+2009-02-28
+ hashing of FontProperties accounts current rcParams - JJL
-2009-02-28 hashing of FontProperties accounts current rcParams - JJL
+2009-02-28
+ Prevent double-rendering of shared axis in twinx, twiny - EF
-2009-02-28 Prevent double-rendering of shared axis in twinx, twiny - EF
+2009-02-26
+ Add optional bbox_to_anchor argument for legend class - JJL
-2009-02-26 Add optional bbox_to_anchor argument for legend class - JJL
+2009-02-26
+ Support image clipping in pdf backend. - JKS
-2009-02-26 Support image clipping in pdf backend. - JKS
+2009-02-25
+ Improve tick location subset choice in FixedLocator. - EF
-2009-02-25 Improve tick location subset choice in FixedLocator. - EF
+2009-02-24
+ Deprecate numerix, and strip out all but the numpy part of the code. - EF
-2009-02-24 Deprecate numerix, and strip out all but the numpy
- part of the code. - EF
+2009-02-21
+ Improve scatter argument handling; add an early error message, allow inputs
+ to have more than one dimension. - EF
-2009-02-21 Improve scatter argument handling; add an early error
- message, allow inputs to have more than one dimension. - EF
+2009-02-16
+ Move plot_directive.py to the installed source tree. Add support for
+ inline code content - MGD
-2009-02-16 Move plot_directive.py to the installed source tree. Add
- support for inline code content - MGD
+2009-02-16
+ Move mathmpl.py to the installed source tree so it is available to other
+ projects. - MGD
-2009-02-16 Move mathmpl.py to the installed source tree so it is
- available to other projects. - MGD
+2009-02-14
+ Added the legend title support - JJL
-2009-02-14 Added the legend title support - JJL
+2009-02-10
+ Fixed a bug in backend_pdf so it doesn't break when the setting
+ pdf.use14corefonts=True is used. Added test case in
+ unit/test_pdf_use14corefonts.py. - NGR
-2009-02-10 Fixed a bug in backend_pdf so it doesn't break when the setting
- pdf.use14corefonts=True is used. Added test case in
- unit/test_pdf_use14corefonts.py. - NGR
+2009-02-08
+ Added a new imsave function to image.py and exposed it in the pyplot
+ interface - GR
-2009-02-08 Added a new imsave function to image.py and exposed it in
- the pyplot interface - GR
+2009-02-04
+ Some reorgnization of the legend code. anchored_text.py added as an
+ example. - JJL
-2009-02-04 Some reorgnization of the legend code. anchored_text.py
- added as an example. - JJL
+2009-02-04
+ Add extent keyword arg to hexbin - ADS
-2009-02-04 Add extent keyword arg to hexbin - ADS
+2009-02-04
+ Fix bug in mathtext related to \dots and \ldots - MGD
-2009-02-04 Fix bug in mathtext related to \dots and \ldots - MGD
+2009-02-03
+ Change default joinstyle to round - MGD
-2009-02-03 Change default joinstyle to round - MGD
+2009-02-02
+ Reduce number of marker XObjects in pdf output - JKS
-2009-02-02 Reduce number of marker XObjects in pdf output - JKS
+2009-02-02
+ Change default resolution on polar plot to 1 - MGD
-2009-02-02 Change default resolution on polar plot to 1 - MGD
+2009-02-02
+ Avoid malloc errors in ttconv for fonts that don't have e.g., PostName (a
+ version of Tahoma triggered this) - JKS
-2009-02-02 Avoid malloc errors in ttconv for fonts that don't have
- e.g., PostName (a version of Tahoma triggered this) - JKS
+2009-01-30
+ Remove support for pyExcelerator in exceltools -- use xlwt instead - JDH
-2009-01-30 Remove support for pyExcelerator in exceltools -- use xlwt
- instead - JDH
+2009-01-29
+ Document 'resolution' kwarg for polar plots. Support it when using
+ pyplot.polar, not just Figure.add_axes. - MGD
-2009-01-29 Document 'resolution' kwarg for polar plots. Support it
- when using pyplot.polar, not just Figure.add_axes. - MGD
+2009-01-29
+ Rework the nan-handling/clipping/quantizing/simplification framework so
+ each is an independent part of a pipeline. Expose the C++-implementation
+ of all of this so it can be used from all Python backends. Add rcParam
+ "path.simplify_threshold" to control the threshold of similarity below
+ which vertices will be removed.
-2009-01-29 Rework the nan-handling/clipping/quantizing/simplification
- framework so each is an independent part of a pipeline.
- Expose the C++-implementation of all of this so it can be
- used from all Python backends. Add rcParam
- "path.simplify_threshold" to control the threshold of
- similarity below which vertices will be removed.
+2009-01-26
+ Improved tight bbox option of the savefig. - JJL
-2009-01-26 Improved tight bbox option of the savefig. - JJL
+2009-01-26
+ Make curves and NaNs play nice together - MGD
-2009-01-26 Make curves and NaNs play nice together - MGD
+2009-01-21
+ Changed the defaults of acorr and xcorr to use usevlines=True, maxlags=10
+ and normed=True since these are the best defaults
-2009-01-21 Changed the defaults of acorr and xcorr to use
- usevlines=True, maxlags=10 and normed=True since these are
- the best defaults
+2009-01-19
+ Fix bug in quiver argument handling. - EF
-2009-01-19 Fix bug in quiver argument handling. - EF
+2009-01-19
+ Fix bug in backend_gtk: don't delete nonexistent toolbar. - EF
-2009-01-19 Fix bug in backend_gtk: don't delete nonexistent toolbar. - EF
+2009-01-16
+ Implement bbox_inches option for savefig. If bbox_inches is "tight", try to
+ determine the tight bounding box. - JJL
-2009-01-16 Implement bbox_inches option for savefig. If bbox_inches is
- "tight", try to determine the tight bounding box. - JJL
+2009-01-16
+ Fix bug in is_string_like so it doesn't raise an unnecessary exception. -
+ EF
-2009-01-16 Fix bug in is_string_like so it doesn't raise an
- unnecessary exception. - EF
+2009-01-16
+ Fix an infinite recursion in the unit registry when searching for a
+ converter for a sequence of strings. Add a corresponding test. - RM
-2009-01-16 Fix an infinite recursion in the unit registry when searching
- for a converter for a sequence of strings. Add a corresponding
- test. - RM
+2009-01-16
+ Bugfix of C typedef of MPL_Int64 that was failing on Windows XP 64 bit, as
+ reported by George Goussard on numpy mailing list. - ADS
-2009-01-16 Bugfix of C typedef of MPL_Int64 that was failing on
- Windows XP 64 bit, as reported by George Goussard on numpy
- mailing list. - ADS
+2009-01-16
+ Added helper function LinearSegmentedColormap.from_list to facilitate
+ building simple custom colomaps. See
+ examples/pylab_examples/custom_cmap_fromlist.py - JDH
-2009-01-16 Added helper function LinearSegmentedColormap.from_list to
- facilitate building simple custom colomaps. See
- examples/pylab_examples/custom_cmap_fromlist.py - JDH
+2009-01-16
+ Applied Michiel's patch for macosx backend to fix rounding bug. Closed sf
+ bug 2508440 - JSW
-2009-01-16 Applied Michiel's patch for macosx backend to fix rounding
- bug. Closed sf bug 2508440 - JSW
+2009-01-10
+ Applied Michiel's hatch patch for macosx backend and draw_idle patch for
+ qt. Closes sf patched 2497785 and 2468809 - JDH
-2009-01-10 Applied Michiel's hatch patch for macosx backend and
- draw_idle patch for qt. Closes sf patched 2497785 and
- 2468809 - JDH
+2009-01-10
+ Fix bug in pan/zoom with log coordinates. - EF
-2009-01-10 Fix bug in pan/zoom with log coordinates. - EF
+2009-01-06
+ Fix bug in setting of dashed negative contours. - EF
-2009-01-06 Fix bug in setting of dashed negative contours. - EF
+2009-01-06
+ Be fault tolerant when len(linestyles)>NLev in contour. - MM
-2009-01-06 Be fault tolerant when len(linestyles)>NLev in contour. - MM
+2009-01-06
+ Added marginals kwarg to hexbin to plot marginal densities JDH
-2009-01-06 Added marginals kwarg to hexbin to plot marginal densities
- JDH
+2009-01-06
+ Change user-visible multipage pdf object to PdfPages to avoid accidents
+ with the file-like PdfFile. - JKS
-2009-01-06 Change user-visible multipage pdf object to PdfPages to
- avoid accidents with the file-like PdfFile. - JKS
+2009-01-05
+ Fix a bug in pdf usetex: allow using non-embedded fonts. - JKS
-2009-01-05 Fix a bug in pdf usetex: allow using non-embedded fonts. - JKS
+2009-01-05
+ optional use of preview.sty in usetex mode. - JJL
-2009-01-05 optional use of preview.sty in usetex mode. - JJL
+2009-01-02
+ Allow multipage pdf files. - JKS
-2009-01-02 Allow multipage pdf files. - JKS
+2008-12-31
+ Improve pdf usetex by adding support for font effects (slanting and
+ extending). - JKS
-2008-12-31 Improve pdf usetex by adding support for font effects
- (slanting and extending). - JKS
+2008-12-29
+ Fix a bug in pdf usetex support, which occurred if the same Type-1 font was
+ used with different encodings, e.g., with Minion Pro and MnSymbol. - JKS
-2008-12-29 Fix a bug in pdf usetex support, which occurred if the same
- Type-1 font was used with different encodings, e.g., with
- Minion Pro and MnSymbol. - JKS
+2008-12-20
+ fix the dpi-dependent offset of Shadow. - JJL
-2008-12-20 fix the dpi-dependent offset of Shadow. - JJL
+2008-12-20
+ fix the hatch bug in the pdf backend. minor update in docs and example -
+ JJL
-2008-12-20 fix the hatch bug in the pdf backend. minor update
- in docs and example - JJL
+2008-12-19
+ Add axes_locator attribute in Axes. Two examples are added. - JJL
-2008-12-19 Add axes_locator attribute in Axes. Two examples are added.
- - JJL
+2008-12-19
+ Update Axes.legend documentation. /api/api_changes.rst is also updated to
+ describe changes in keyword parameters. Issue a warning if old keyword
+ parameters are used. - JJL
-2008-12-19 Update Axes.legend documentation. /api/api_changes.rst is also
- updated to describe changes in keyword parameters.
- Issue a warning if old keyword parameters are used. - JJL
-
-2008-12-18 add new arrow style, a line + filled triangles. -JJL
+2008-12-18
+ add new arrow style, a line + filled triangles. -JJL
----------------
-2008-12-18 Re-Released 0.98.5.2 from v0_98_5_maint at r6679
- Released 0.98.5.2 from v0_98_5_maint at r6667
-
-2008-12-18 Removed configobj, experimental traits and doc/mpl_data link - JDH
-
-2008-12-18 Fix bug where a line with NULL data limits prevents
- subsequent data limits from calculating correctly - MGD
+2008-12-18
+ Re-Released 0.98.5.2 from v0_98_5_maint at r6679 Released 0.98.5.2 from
+ v0_98_5_maint at r6667
-2008-12-17 Major documentation generator changes - MGD
+2008-12-18
+ Removed configobj, experimental traits and doc/mpl_data link - JDH
-2008-12-17 Applied macosx backend patch with support for path
- collections, quadmesh, etc... - JDH
+2008-12-18
+ Fix bug where a line with NULL data limits prevents subsequent data limits
+ from calculating correctly - MGD
-2008-12-17 fix dpi-dependent behavior of text bbox and arrow in annotate
- -JJL
+2008-12-17
+ Major documentation generator changes - MGD
-2008-12-17 Add group id support in artist. Two examples which
- demonstrate svg filter are added. -JJL
+2008-12-17
+ Applied macosx backend patch with support for path collections, quadmesh,
+ etc... - JDH
-2008-12-16 Another attempt to fix dpi-dependent behavior of Legend. -JJL
+2008-12-17
+ fix dpi-dependent behavior of text bbox and arrow in annotate -JJL
-2008-12-16 Fixed dpi-dependent behavior of Legend and fancybox in Text.
+2008-12-17
+ Add group id support in artist. Two examples which demonstrate svg filter
+ are added. -JJL
-2008-12-16 Added markevery property to Line2D to support subsampling
- of markers - JDH
-2008-12-15 Removed mpl_data symlink in docs. On platforms that do not
- support symlinks, these become copies, and the font files
- are large, so the distro becomes unnecessarily bloated.
- Keeping the mpl_examples dir because relative links are
- harder for the plot directive and the \*.py files are not so
- large. - JDH
+2008-12-16
+ Another attempt to fix dpi-dependent behavior of Legend. -JJL
-2008-12-15 Fix \$ in non-math text with usetex off. Document
- differences between usetex on/off - MGD
+2008-12-16
+ Fixed dpi-dependent behavior of Legend and fancybox in Text.
-2008-12-15 Fix anti-aliasing when auto-snapping - MGD
+2008-12-16
+ Added markevery property to Line2D to support subsampling of markers - JDH
-2008-12-15 Fix grid lines not moving correctly during pan and zoom - MGD
+2008-12-15
+ Removed mpl_data symlink in docs. On platforms that do not support
+ symlinks, these become copies, and the font files are large, so the distro
+ becomes unnecessarily bloated. Keeping the mpl_examples dir because
+ relative links are harder for the plot directive and the \*.py files are
+ not so large. - JDH
-2008-12-12 Preparations to eliminate maskedarray rcParams key: its
- use will now generate a warning. Similarly, importing
- the obsolote numerix.npyma will generate a warning. - EF
+2008-12-15
+ Fix \$ in non-math text with usetex off. Document differences between
+ usetex on/off - MGD
-2008-12-12 Added support for the numpy.histogram() weights parameter
- to the axes hist() method. Docs taken from numpy - MM
+2008-12-15
+ Fix anti-aliasing when auto-snapping - MGD
-2008-12-12 Fixed warning in hist() with numpy 1.2 - MM
+2008-12-15
+ Fix grid lines not moving correctly during pan and zoom - MGD
-2008-12-12 Removed external packages: configobj and enthought.traits
- which are only required by the experimental traited config
- and are somewhat out of date. If needed, install them
- independently, see:
+2008-12-12
+ Preparations to eliminate maskedarray rcParams key: its use will now
+ generate a warning. Similarly, importing the obsolote numerix.npyma will
+ generate a warning. - EF
- http://code.enthought.com/pages/traits.html
+2008-12-12
+ Added support for the numpy.histogram() weights parameter to the axes
+ hist() method. Docs taken from numpy - MM
- and:
+2008-12-12
+ Fixed warning in hist() with numpy 1.2 - MM
- http://www.voidspace.org.uk/python/configobj.html
+2008-12-12
+ Removed external packages: configobj and enthought.traits which are only
+ required by the experimental traited config and are somewhat out of date.
+ If needed, install them independently, see
+ http://code.enthought.com/pages/traits.html and
+ http://www.voidspace.org.uk/python/configobj.html
-2008-12-12 Added support to assign labels to histograms of multiple
- data. - MM
+2008-12-12
+ Added support to assign labels to histograms of multiple data. - MM
-------------------------
-2008-12-11 Released 0.98.5 at svn r6573
+2008-12-11
+ Released 0.98.5 at svn r6573
-2008-12-11 Use subprocess.Popen instead of os.popen in dviread
- (Windows problem reported by Jorgen Stenarson) - JKS
+2008-12-11
+ Use subprocess.Popen instead of os.popen in dviread (Windows problem
+ reported by Jorgen Stenarson) - JKS
-2008-12-10 Added Michael's font_manager fix and Jae-Joon's
- figure/subplot fix. Bumped version number to 0.98.5 - JDH
+2008-12-10
+ Added Michael's font_manager fix and Jae-Joon's figure/subplot fix. Bumped
+ version number to 0.98.5 - JDH
----------------------------
-2008-12-09 Released 0.98.4 at svn r6536
-
-2008-12-08 Added mdehoon's native macosx backend from sf patch 2179017 - JDH
-
-2008-12-08 Removed the prints in the set_*style commands. Return the
- list of pprinted strings instead - JDH
-
-2008-12-08 Some of the changes Michael made to improve the output of
- the property tables in the rest docs broke of made
- difficult to use some of the interactive doc helpers, e.g.,
- setp and getp. Having all the rest markup in the ipython
- shell also confused the docstrings. I added a new rc param
- docstring.hardcopy, to format the docstrings differently for
- hard copy and other use. The ArtistInspector could use a
- little refactoring now since there is duplication of effort
- between the rest out put and the non-rest output - JDH
-
-2008-12-08 Updated spectral methods (psd, csd, etc.) to scale one-sided
- densities by a factor of 2 and, optionally, scale all densities
- by the sampling frequency. This gives better MatLab
- compatibility. -RM
-
-2008-12-08 Fixed alignment of ticks in colorbars. -MGD
-
-2008-12-07 drop the deprecated "new" keyword of np.histogram() for
- numpy 1.2 or later. -JJL
-
-2008-12-06 Fixed a bug in svg backend that new_figure_manager()
- ignores keywords arguments such as figsize, etc. -JJL
+2008-12-09
+ Released 0.98.4 at svn r6536
+
+2008-12-08
+ Added mdehoon's native macosx backend from sf patch 2179017 - JDH
+
+2008-12-08
+ Removed the prints in the set_*style commands. Return the list of pprinted
+ strings instead - JDH
-2008-12-05 Fixed a bug that the handlelength of the new legend class
- set too short when numpoints=1 -JJL
+2008-12-08
+ Some of the changes Michael made to improve the output of the property
+ tables in the rest docs broke of made difficult to use some of the
+ interactive doc helpers, e.g., setp and getp. Having all the rest markup
+ in the ipython shell also confused the docstrings. I added a new rc param
+ docstring.hardcopy, to format the docstrings differently for hard copy and
+ other use. The ArtistInspector could use a little refactoring now since
+ there is duplication of effort between the rest out put and the non-rest
+ output - JDH
-2008-12-04 Added support for data with units (e.g., dates) to
- Axes.fill_between. -RM
+2008-12-08
+ Updated spectral methods (psd, csd, etc.) to scale one-sided densities by a
+ factor of 2 and, optionally, scale all densities by the sampling frequency.
+ This gives better MatLab compatibility. -RM
-2008-12-04 Added fancybox keyword to legend. Also applied some changes
- for better look, including baseline adjustment of the
- multiline texts so that it is center aligned. -JJL
+2008-12-08
+ Fixed alignment of ticks in colorbars. -MGD
-2008-12-02 The transmuter classes in the patches.py are reorganized as
- subclasses of the Style classes. A few more box and arrow
- styles are added. -JJL
+2008-12-07
+ drop the deprecated "new" keyword of np.histogram() for numpy 1.2 or later.
+ -JJL
-2008-12-02 Fixed a bug in the new legend class that didn't allowed
- a tuple of coordinate values as loc. -JJL
+2008-12-06
+ Fixed a bug in svg backend that new_figure_manager() ignores keywords
+ arguments such as figsize, etc. -JJL
-2008-12-02 Improve checks for external dependencies, using subprocess
- (instead of deprecated popen*) and distutils (for version
- checking) - DSD
+2008-12-05
+ Fixed a bug that the handlelength of the new legend class set too short
+ when numpoints=1 -JJL
-2008-11-30 Reimplementation of the legend which supports baseline alignment,
- multi-column, and expand mode. - JJL
+2008-12-04
+ Added support for data with units (e.g., dates) to Axes.fill_between. -RM
-2008-12-01 Fixed histogram autoscaling bug when bins or range are given
- explicitly (fixes Debian bug 503148) - MM
+2008-12-04
+ Added fancybox keyword to legend. Also applied some changes for better
+ look, including baseline adjustment of the multiline texts so that it is
+ center aligned. -JJL
-2008-11-25 Added rcParam axes.unicode_minus which allows plain hyphen
- for minus when False - JDH
+2008-12-02
+ The transmuter classes in the patches.py are reorganized as subclasses of
+ the Style classes. A few more box and arrow styles are added. -JJL
-2008-11-25 Added scatterpoints support in Legend. patch by Erik
- Tollerud - JJL
+2008-12-02
+ Fixed a bug in the new legend class that didn't allowed a tuple of
+ coordinate values as loc. -JJL
-2008-11-24 Fix crash in log ticking. - MGD
+2008-12-02
+ Improve checks for external dependencies, using subprocess (instead of
+ deprecated popen*) and distutils (for version checking) - DSD
+
+2008-11-30
+ Reimplementation of the legend which supports baseline alignment,
+ multi-column, and expand mode. - JJL
+
+2008-12-01
+ Fixed histogram autoscaling bug when bins or range are given explicitly
+ (fixes Debian bug 503148) - MM
-2008-11-20 Added static helper method BrokenHBarCollection.span_where
- and Axes/pyplot method fill_between. See
- examples/pylab/fill_between.py - JDH
+2008-11-25
+ Added rcParam axes.unicode_minus which allows plain hyphen for minus when
+ False - JDH
+
+2008-11-25
+ Added scatterpoints support in Legend. patch by Erik Tollerud - JJL
+
+2008-11-24
+ Fix crash in log ticking. - MGD
-2008-11-12 Add x_isdata and y_isdata attributes to Artist instances,
- and use them to determine whether either or both
- coordinates are used when updating dataLim. This is
- used to fix autoscaling problems that had been triggered
- by axhline, axhspan, axvline, axvspan. - EF
+2008-11-20
+ Added static helper method BrokenHBarCollection.span_where and Axes/pyplot
+ method fill_between. See examples/pylab/fill_between.py - JDH
+
+2008-11-12
+ Add x_isdata and y_isdata attributes to Artist instances, and use them to
+ determine whether either or both coordinates are used when updating
+ dataLim. This is used to fix autoscaling problems that had been triggered
+ by axhline, axhspan, axvline, axvspan. - EF
+
+2008-11-11
+ Update the psd(), csd(), cohere(), and specgram() methods of Axes and the
+ csd() cohere(), and specgram() functions in mlab to be in sync with the
+ changes to psd(). In fact, under the hood, these all call the same core to
+ do computations. - RM
+
+2008-11-11
+ Add 'pad_to' and 'sides' parameters to mlab.psd() to allow controlling of
+ zero padding and returning of negative frequency components, respecitively.
+ These are added in a way that does not change the API. - RM
+
+2008-11-10
+ Fix handling of c kwarg by scatter; generalize is_string_like to accept
+ numpy and numpy.ma string array scalars. - RM and EF
+
+2008-11-09
+ Fix a possible EINTR problem in dviread, which might help when saving pdf
+ files from the qt backend. - JKS
+
+2008-11-05
+ Fix bug with zoom to rectangle and twin axes - MGD
+
+2008-10-24
+ Added Jae Joon's fancy arrow, box and annotation enhancements -- see
+ examples/pylab_examples/annotation_demo2.py
+
+2008-10-23
+ Autoscaling is now supported with shared axes - EF
-2008-11-11 Update the psd(), csd(), cohere(), and specgram() methods
- of Axes and the csd() cohere(), and specgram() functions
- in mlab to be in sync with the changes to psd().
- In fact, under the hood, these all call the same core
- to do computations. - RM
+2008-10-23
+ Fixed exception in dviread that happened with Minion - JKS
-2008-11-11 Add 'pad_to' and 'sides' parameters to mlab.psd() to
- allow controlling of zero padding and returning of
- negative frequency components, respecitively. These are
- added in a way that does not change the API. - RM
+2008-10-21
+ set_xlim, ylim now return a copy of the viewlim array to avoid modify
+ inplace surprises
-2008-11-10 Fix handling of c kwarg by scatter; generalize
- is_string_like to accept numpy and numpy.ma string
- array scalars. - RM and EF
+2008-10-20
+ Added image thumbnail generating function matplotlib.image.thumbnail. See
+ examples/misc/image_thumbnail.py - JDH
-2008-11-09 Fix a possible EINTR problem in dviread, which might help
- when saving pdf files from the qt backend. - JKS
+2008-10-20
+ Applied scatleg patch based on ideas and work by Erik Tollerud and Jae-Joon
+ Lee. - MM
-2008-11-05 Fix bug with zoom to rectangle and twin axes - MGD
+2008-10-11
+ Fixed bug in pdf backend: if you pass a file object for output instead of a
+ filename, e.g., in a wep app, we now flush the object at the end. - JKS
-2008-10-24 Added Jae Joon's fancy arrow, box and annotation
- enhancements -- see
- examples/pylab_examples/annotation_demo2.py
+2008-10-08
+ Add path simplification support to paths with gaps. - EF
-2008-10-23 Autoscaling is now supported with shared axes - EF
+2008-10-05
+ Fix problem with AFM files that don't specify the font's full name or
+ family name. - JKS
-2008-10-23 Fixed exception in dviread that happened with Minion - JKS
+2008-10-04
+ Added 'scilimits' kwarg to Axes.ticklabel_format() method, for easy access
+ to the set_powerlimits method of the major ScalarFormatter. - EF
-2008-10-21 set_xlim, ylim now return a copy of the viewlim array to
- avoid modify inplace surprises
+2008-10-04
+ Experimental new kwarg borderpad to replace pad in legend, based on
+ suggestion by Jae-Joon Lee. - EF
-2008-10-20 Added image thumbnail generating function
- matplotlib.image.thumbnail. See
- examples/misc/image_thumbnail.py - JDH
+2008-09-27
+ Allow spy to ignore zero values in sparse arrays, based on patch by Tony
+ Yu. Also fixed plot to handle empty data arrays, and fixed handling of
+ markers in figlegend. - EF
-2008-10-20 Applied scatleg patch based on ideas and work by Erik
- Tollerud and Jae-Joon Lee. - MM
+2008-09-24
+ Introduce drawstyles for lines. Transparently split linestyles like
+ 'steps--' into drawstyle 'steps' and linestyle '--'. Legends always use
+ drawstyle 'default'. - MM
-2008-10-11 Fixed bug in pdf backend: if you pass a file object for
- output instead of a filename, e.g., in a wep app, we now
- flush the object at the end. - JKS
+2008-09-18
+ Fixed quiver and quiverkey bugs (failure to scale properly when resizing)
+ and added additional methods for determining the arrow angles - EF
-2008-10-08 Add path simplification support to paths with gaps. - EF
+2008-09-18
+ Fix polar interpolation to handle negative values of theta - MGD
-2008-10-05 Fix problem with AFM files that don't specify the font's
- full name or family name. - JKS
+2008-09-14
+ Reorganized cbook and mlab methods related to numerical calculations that
+ have little to do with the goals of those two modules into a separate
+ module numerical_methods.py Also, added ability to select points and stop
+ point selection with keyboard in ginput and manual contour labeling code.
+ Finally, fixed contour labeling bug. - DMK
-2008-10-04 Added 'scilimits' kwarg to Axes.ticklabel_format() method,
- for easy access to the set_powerlimits method of the
- major ScalarFormatter. - EF
+2008-09-11
+ Fix backtick in Postscript output. - MGD
-2008-10-04 Experimental new kwarg borderpad to replace pad in legend,
- based on suggestion by Jae-Joon Lee. - EF
+2008-09-10
+ [ 2089958 ] Path simplification for vector output backends Leverage the
+ simplification code exposed through path_to_polygons to simplify certain
+ well-behaved paths in the vector backends (PDF, PS and SVG).
+ "path.simplify" must be set to True in matplotlibrc for this to work.
+ - MGD
-2008-09-27 Allow spy to ignore zero values in sparse arrays, based
- on patch by Tony Yu. Also fixed plot to handle empty
- data arrays, and fixed handling of markers in figlegend. - EF
+2008-09-10
+ Add "filled" kwarg to Path.intersects_path and Path.intersects_bbox. - MGD
-2008-09-24 Introduce drawstyles for lines. Transparently split linestyles
- like 'steps--' into drawstyle 'steps' and linestyle '--'.
- Legends always use drawstyle 'default'. - MM
+2008-09-07
+ Changed full arrows slightly to avoid an xpdf rendering problem reported by
+ Friedrich Hagedorn. - JKS
-2008-09-18 Fixed quiver and quiverkey bugs (failure to scale properly
- when resizing) and added additional methods for determining
- the arrow angles - EF
+2008-09-07
+ Fix conversion of quadratic to cubic Bezier curves in PDF and PS backends.
+ Patch by Jae-Joon Lee. - JKS
-2008-09-18 Fix polar interpolation to handle negative values of theta - MGD
+2008-09-06
+ Added 5-point star marker to plot command - EF
-2008-09-14 Reorganized cbook and mlab methods related to numerical
- calculations that have little to do with the goals of those two
- modules into a separate module numerical_methods.py
- Also, added ability to select points and stop point selection
- with keyboard in ginput and manual contour labeling code.
- Finally, fixed contour labeling bug. - DMK
+2008-09-05
+ Fix hatching in PS backend - MGD
-2008-09-11 Fix backtick in Postscript output. - MGD
+2008-09-03
+ Fix log with base 2 - MGD
-2008-09-10 [ 2089958 ] Path simplification for vector output backends
- Leverage the simplification code exposed through
- path_to_polygons to simplify certain well-behaved paths in
- the vector backends (PDF, PS and SVG). "path.simplify"
- must be set to True in matplotlibrc for this to work. -
- MGD
+2008-09-01
+ Added support for bilinear interpolation in NonUniformImage; patch by
+ Gregory Lielens. - EF
-2008-09-10 Add "filled" kwarg to Path.intersects_path and
- Path.intersects_bbox. - MGD
+2008-08-28
+ Added support for multiple histograms with data of different length - MM
-2008-09-07 Changed full arrows slightly to avoid an xpdf rendering
- problem reported by Friedrich Hagedorn. - JKS
+2008-08-28
+ Fix step plots with log scale - MGD
-2008-09-07 Fix conversion of quadratic to cubic Bezier curves in PDF
- and PS backends. Patch by Jae-Joon Lee. - JKS
+2008-08-28
+ Fix masked arrays with markers in non-Agg backends - MGD
-2008-09-06 Added 5-point star marker to plot command - EF
+2008-08-28
+ Fix clip_on kwarg so it actually works correctly - MGD
-2008-09-05 Fix hatching in PS backend - MGD
+2008-08-25
+ Fix locale problems in SVG backend - MGD
-2008-09-03 Fix log with base 2 - MGD
+2008-08-22
+ fix quiver so masked values are not plotted - JSW
-2008-09-01 Added support for bilinear interpolation in
- NonUniformImage; patch by Gregory Lielens. - EF
+2008-08-18
+ improve interactive pan/zoom in qt4 backend on windows - DSD
-2008-08-28 Added support for multiple histograms with data of
- different length - MM
-
-2008-08-28 Fix step plots with log scale - MGD
-
-2008-08-28 Fix masked arrays with markers in non-Agg backends - MGD
-
-2008-08-28 Fix clip_on kwarg so it actually works correctly - MGD
-
-2008-08-25 Fix locale problems in SVG backend - MGD
-
-2008-08-22 fix quiver so masked values are not plotted - JSW
-
-2008-08-18 improve interactive pan/zoom in qt4 backend on windows - DSD
-
-2008-08-11 Fix more bugs in NaN/inf handling. In particular, path simplification
- (which does not handle NaNs or infs) will be turned off automatically
- when infs or NaNs are present. Also masked arrays are now converted
- to arrays with NaNs for consistent handling of masks and NaNs
- - MGD and EF
+2008-08-11
+ Fix more bugs in NaN/inf handling. In particular, path simplification
+ (which does not handle NaNs or infs) will be turned off automatically when
+ infs or NaNs are present. Also masked arrays are now converted to arrays
+ with NaNs for consistent handling of masks and NaNs - MGD and EF
------------------------
-2008-08-03 Released 0.98.3 at svn r5947
+2008-08-03
+ Released 0.98.3 at svn r5947
-2008-08-01 Backported memory leak fixes in _ttconv.cpp - MGD
+2008-08-01
+ Backported memory leak fixes in _ttconv.cpp - MGD
-2008-07-31 Added masked array support to griddata. - JSW
+2008-07-31
+ Added masked array support to griddata. - JSW
-2008-07-26 Added optional C and reduce_C_function arguments to
- axes.hexbin(). This allows hexbin to accumulate the values
- of C based on the x,y coordinates and display in hexagonal
- bins. - ADS
+2008-07-26
+ Added optional C and reduce_C_function arguments to axes.hexbin(). This
+ allows hexbin to accumulate the values of C based on the x,y coordinates
+ and display in hexagonal bins. - ADS
-2008-07-24 Deprecated (raise NotImplementedError) all the mlab2
- functions from matplotlib.mlab out of concern that some of
- them were not clean room implementations. JDH
+2008-07-24
+ Deprecated (raise NotImplementedError) all the mlab2 functions from
+ matplotlib.mlab out of concern that some of them were not clean room
+ implementations. JDH
-2008-07-24 Rewrite of a significant portion of the clabel code (class
- ContourLabeler) to improve inlining. - DMK
+2008-07-24
+ Rewrite of a significant portion of the clabel code (class ContourLabeler)
+ to improve inlining. - DMK
-2008-07-22 Added Barbs polygon collection (similar to Quiver) for plotting
- wind barbs. Added corresponding helpers to Axes and pyplot as
- well. (examples/pylab_examples/barb_demo.py shows it off.) - RMM
+2008-07-22
+ Added Barbs polygon collection (similar to Quiver) for plotting wind barbs.
+ Added corresponding helpers to Axes and pyplot as well.
+ (examples/pylab_examples/barb_demo.py shows it off.) - RMM
-2008-07-21 Added scikits.delaunay as matplotlib.delaunay. Added griddata
- function in matplotlib.mlab, with example (griddata_demo.py) in
- pylab_examples. griddata function will use mpl_toolkits._natgrid
- if installed. - JSW
+2008-07-21
+ Added scikits.delaunay as matplotlib.delaunay. Added griddata function in
+ matplotlib.mlab, with example (griddata_demo.py) in pylab_examples.
+ griddata function will use mpl_toolkits._natgrid if installed. - JSW
-2008-07-21 Re-introduced offset_copy that works in the context of the
- new transforms. - MGD
+2008-07-21
+ Re-introduced offset_copy that works in the context of the new transforms.
+ - MGD
-2008-07-21 Committed patch by Ryan May to add get_offsets and
- set_offsets to Collections base class - EF
+2008-07-21
+ Committed patch by Ryan May to add get_offsets and set_offsets to
+ Collections base class - EF
-2008-07-21 Changed the "asarray" strategy in image.py so that
- colormapping of masked input should work for all
- image types (thanks Klaus Zimmerman) - EF
+2008-07-21
+ Changed the "asarray" strategy in image.py so that colormapping of masked
+ input should work for all image types (thanks Klaus Zimmerman) - EF
-2008-07-20 Rewrote cbook.delete_masked_points and corresponding
- unit test to support rgb color array inputs, datetime
- inputs, etc. - EF
+2008-07-20
+ Rewrote cbook.delete_masked_points and corresponding unit test to support
+ rgb color array inputs, datetime inputs, etc. - EF
-2008-07-20 Renamed unit/axes_unit.py to cbook_unit.py and modified
- in accord with Ryan's move of delete_masked_points from
- axes to cbook. - EF
+2008-07-20
+ Renamed unit/axes_unit.py to cbook_unit.py and modified in accord with
+ Ryan's move of delete_masked_points from axes to cbook. - EF
-2008-07-18 Check for nan and inf in axes.delete_masked_points().
- This should help hexbin and scatter deal with nans. - ADS
+2008-07-18
+ Check for nan and inf in axes.delete_masked_points(). This should help
+ hexbin and scatter deal with nans. - ADS
-2008-07-17 Added ability to manually select contour label locations.
- Also added a waitforbuttonpress function. - DMK
+2008-07-17
+ Added ability to manually select contour label locations. Also added a
+ waitforbuttonpress function. - DMK
-2008-07-17 Fix bug with NaNs at end of path (thanks, Andrew Straw for
- the report) - MGD
+2008-07-17
+ Fix bug with NaNs at end of path (thanks, Andrew Straw for the report) -
+ MGD
-2008-07-16 Improve error handling in texmanager, thanks to Ian Henry
- for reporting - DSD
+2008-07-16
+ Improve error handling in texmanager, thanks to Ian Henry for reporting -
+ DSD
-2008-07-12 Added support for external backends with the
- "module://my_backend" syntax - JDH
+2008-07-12
+ Added support for external backends with the "module://my_backend" syntax -
+ JDH
-2008-07-11 Fix memory leak related to shared axes. Grouper should
- store weak references. - MGD
+2008-07-11
+ Fix memory leak related to shared axes. Grouper should store weak
+ references. - MGD
-2008-07-10 Bugfix: crash displaying fontconfig pattern - MGD
+2008-07-10
+ Bugfix: crash displaying fontconfig pattern - MGD
-2008-07-10 Bugfix: [ 2013963 ] update_datalim_bounds in Axes not works - MGD
+2008-07-10
+ Bugfix: [ 2013963 ] update_datalim_bounds in Axes not works - MGD
-2008-07-10 Bugfix: [ 2014183 ] multiple imshow() causes gray edges - MGD
+2008-07-10
+ Bugfix: [ 2014183 ] multiple imshow() causes gray edges - MGD
-2008-07-09 Fix rectangular axes patch on polar plots bug - MGD
+2008-07-09
+ Fix rectangular axes patch on polar plots bug - MGD
-2008-07-09 Improve mathtext radical rendering - MGD
+2008-07-09
+ Improve mathtext radical rendering - MGD
-2008-07-08 Improve mathtext superscript placement - MGD
+2008-07-08
+ Improve mathtext superscript placement - MGD
-2008-07-07 Fix custom scales in pcolormesh (thanks Matthew Turk) - MGD
+2008-07-07
+ Fix custom scales in pcolormesh (thanks Matthew Turk) - MGD
-2008-07-03 Implemented findobj method for artist and pyplot - see
- examples/pylab_examples/findobj_demo.py - JDH
+2008-07-03
+ Implemented findobj method for artist and pyplot - see
+ examples/pylab_examples/findobj_demo.py - JDH
-2008-06-30 Another attempt to fix TextWithDash - DSD
+2008-06-30
+ Another attempt to fix TextWithDash - DSD
-2008-06-30 Removed Qt4 NavigationToolbar2.destroy -- it appears to
- have been unnecessary and caused a bug reported by P.
- Raybaut - DSD
+2008-06-30
+ Removed Qt4 NavigationToolbar2.destroy -- it appears to have been
+ unnecessary and caused a bug reported by P. Raybaut - DSD
-2008-06-27 Fixed tick positioning bug - MM
+2008-06-27
+ Fixed tick positioning bug - MM
-2008-06-27 Fix dashed text bug where text was at the wrong end of the
- dash - MGD
+2008-06-27
+ Fix dashed text bug where text was at the wrong end of the dash - MGD
-2008-06-26 Fix mathtext bug for expressions like $x_{\leftarrow}$ - MGD
+2008-06-26
+ Fix mathtext bug for expressions like $x_{\leftarrow}$ - MGD
-2008-06-26 Fix direction of horizontal/vertical hatches - MGD
+2008-06-26
+ Fix direction of horizontal/vertical hatches - MGD
-2008-06-25 Figure.figurePatch renamed Figure.patch, Axes.axesPatch
- renamed Axes.patch, Axes.axesFrame renamed Axes.frame,
- Axes.get_frame, which returns Axes.patch, is deprecated.
- Examples and users guide updated - JDH
+2008-06-25
+ Figure.figurePatch renamed Figure.patch, Axes.axesPatch renamed Axes.patch,
+ Axes.axesFrame renamed Axes.frame, Axes.get_frame, which returns
+ Axes.patch, is deprecated. Examples and users guide updated - JDH
-2008-06-25 Fix rendering quality of pcolor - MGD
+2008-06-25
+ Fix rendering quality of pcolor - MGD
----------------------------
-2008-06-24 Released 0.98.2 at svn r5667 - (source only for debian) JDH
+2008-06-24
+ Released 0.98.2 at svn r5667 - (source only for debian) JDH
-2008-06-24 Added "transparent" kwarg to savefig. - MGD
+2008-06-24
+ Added "transparent" kwarg to savefig. - MGD
-2008-06-24 Applied Stefan's patch to draw a single centered marker over
- a line with numpoints==1 - JDH
+2008-06-24
+ Applied Stefan's patch to draw a single centered marker over a line with
+ numpoints==1 - JDH
-2008-06-23 Use splines to render circles in scatter plots - MGD
+2008-06-23
+ Use splines to render circles in scatter plots - MGD
----------------------------
-2008-06-22 Released 0.98.1 at revision 5637
+2008-06-22
+ Released 0.98.1 at revision 5637
-2008-06-22 Removed axes3d support and replaced it with a
- NotImplementedError for one release cycle
+2008-06-22
+ Removed axes3d support and replaced it with a NotImplementedError for one
+ release cycle
-2008-06-21 fix marker placement bug in backend_ps - DSD
+2008-06-21
+ fix marker placement bug in backend_ps - DSD
-2008-06-20 [ 1978629 ] scale documentation missing/incorrect for log - MGD
+2008-06-20
+ [ 1978629 ] scale documentation missing/incorrect for log - MGD
-2008-06-20 Added closed kwarg to PolyCollection. Fixes bug [ 1994535
- ] still missing lines on graph with svn (r 5548). - MGD
+2008-06-20
+ Added closed kwarg to PolyCollection. Fixes bug [ 1994535 ] still missing
+ lines on graph with svn (r 5548). - MGD
-2008-06-20 Added set/get_closed method to Polygon; fixes error
- in hist - MM
+2008-06-20
+ Added set/get_closed method to Polygon; fixes error in hist - MM
-2008-06-19 Use relative font sizes (e.g., 'medium' and 'large') in
- rcsetup.py and matplotlibrc.template so that text will
- be scaled by default when changing rcParams['font.size'] -
- EF
+2008-06-19
+ Use relative font sizes (e.g., 'medium' and 'large') in rcsetup.py and
+ matplotlibrc.template so that text will be scaled by default when changing
+ rcParams['font.size'] - EF
-2008-06-17 Add a generic PatchCollection class that can contain any
- kind of patch. - MGD
+2008-06-17
+ Add a generic PatchCollection class that can contain any kind of patch. -
+ MGD
-2008-06-13 Change pie chart label alignment to avoid having labels
- overwrite the pie - MGD
+2008-06-13
+ Change pie chart label alignment to avoid having labels overwrite the pie -
+ MGD
-2008-06-12 Added some helper functions to the mathtext parser to
- return bitmap arrays or write pngs to make it easier to use
- mathtext outside the context of an mpl figure. modified
- the mathpng sphinxext to use the mathtext png save
- functionality - see examples/api/mathtext_asarray.py - JDH
+2008-06-12
+ Added some helper functions to the mathtext parser to return bitmap arrays
+ or write pngs to make it easier to use mathtext outside the context of an
+ mpl figure. modified the mathpng sphinxext to use the mathtext png save
+ functionality - see examples/api/mathtext_asarray.py - JDH
-2008-06-11 Use matplotlib.mathtext to render math expressions in
- online docs - MGD
+2008-06-11
+ Use matplotlib.mathtext to render math expressions in online docs - MGD
-2008-06-11 Move PNG loading/saving to its own extension module, and
- remove duplicate code in _backend_agg.cpp and _image.cpp
- that does the same thing - MGD
+2008-06-11
+ Move PNG loading/saving to its own extension module, and remove duplicate
+ code in _backend_agg.cpp and _image.cpp that does the same thing - MGD
-2008-06-11 Numerous mathtext bugfixes, primarily related to
- dpi-independence - MGD
+2008-06-11
+ Numerous mathtext bugfixes, primarily related to dpi-independence - MGD
-2008-06-10 Bar now applies the label only to the first patch only, and
- sets '_nolegend_' for the other patch labels. This lets
- autolegend work as expected for hist and bar - see
- \https://sourceforge.net/tracker/index.php?func=detail&aid=1986597&group_id=80706&atid=560720
- JDH
+2008-06-10
+ Bar now applies the label only to the first patch only, and sets
+ '_nolegend_' for the other patch labels. This lets autolegend work as
+ expected for hist and bar - see
+ \https://sourceforge.net/tracker/index.php?func=detail&aid=1986597&group_id=80706&atid=560720
+ JDH
-2008-06-10 Fix text baseline alignment bug. [ 1985420 ] Repair of
- baseline alignment in Text._get_layout. Thanks Stan West -
- MGD
+2008-06-10
+ Fix text baseline alignment bug. [ 1985420 ] Repair of baseline alignment
+ in Text._get_layout. Thanks Stan West - MGD
-2008-06-09 Committed Gregor's image resample patch to downsampling
- images with new rcparam image.resample - JDH
+2008-06-09
+ Committed Gregor's image resample patch to downsampling images with new
+ rcparam image.resample - JDH
-2008-06-09 Don't install Enthought.Traits along with matplotlib. For
- matplotlib developers convenience, it can still be
- installed by setting an option in setup.cfg while we figure
- decide if there is a future for the traited config - DSD
+2008-06-09
+ Don't install Enthought.Traits along with matplotlib. For matplotlib
+ developers convenience, it can still be installed by setting an option in
+ setup.cfg while we figure decide if there is a future for the traited
+ config - DSD
-2008-06-09 Added range keyword arg to hist() - MM
+2008-06-09
+ Added range keyword arg to hist() - MM
-2008-06-07 Moved list of backends to rcsetup.py; made use of lower
- case for backend names consistent; use validate_backend
- when importing backends subpackage - EF
+2008-06-07
+ Moved list of backends to rcsetup.py; made use of lower case for backend
+ names consistent; use validate_backend when importing backends subpackage -
+ EF
-2008-06-06 hist() revision, applied ideas proposed by Erik Tollerud and
- Olle Engdegard: make histtype='step' unfilled by default
- and introduce histtype='stepfilled'; use default color
- cycle; introduce reverse cumulative histogram; new align
- keyword - MM
+2008-06-06
+ hist() revision, applied ideas proposed by Erik Tollerud and Olle
+ Engdegard: make histtype='step' unfilled by default and introduce
+ histtype='stepfilled'; use default color cycle; introduce reverse
+ cumulative histogram; new align keyword - MM
-2008-06-06 Fix closed polygon patch and also provide the option to
- not close the polygon - MGD
+2008-06-06
+ Fix closed polygon patch and also provide the option to not close the
+ polygon - MGD
-2008-06-05 Fix some dpi-changing-related problems with PolyCollection,
- as called by Axes.scatter() - MGD
+2008-06-05
+ Fix some dpi-changing-related problems with PolyCollection, as called by
+ Axes.scatter() - MGD
-2008-06-05 Fix image drawing so there is no extra space to the right
- or bottom - MGD
+2008-06-05
+ Fix image drawing so there is no extra space to the right or bottom - MGD
-2006-06-04 Added a figure title command suptitle as a Figure method
- and pyplot command -- see examples/figure_title.py - JDH
+2006-06-04
+ Added a figure title command suptitle as a Figure method and pyplot command
+ -- see examples/figure_title.py - JDH
-2008-06-02 Added support for log to hist with histtype='step' and fixed
- a bug for log-scale stacked histograms - MM
+2008-06-02
+ Added support for log to hist with histtype='step' and fixed a bug for
+ log-scale stacked histograms - MM
-----------------------------
-2008-05-29 Released 0.98.0 at revision 5314
+2008-05-29
+ Released 0.98.0 at revision 5314
-2008-05-29 matplotlib.image.imread now no longer always returns RGBA
- -- if the image is luminance or RGB, it will return a MxN
- or MxNx3 array if possible. Also uint8 is no longer always
- forced to float.
+2008-05-29
+ matplotlib.image.imread now no longer always returns RGBA -- if the image
+ is luminance or RGB, it will return a MxN or MxNx3 array if possible. Also
+ uint8 is no longer always forced to float.
-2008-05-29 Implement path clipping in PS backend - JDH
+2008-05-29
+ Implement path clipping in PS backend - JDH
-2008-05-29 Fixed two bugs in texmanager.py:
- improved comparison of dvipng versions
- fixed a bug introduced when get_grey method was added
- - DSD
+2008-05-29
+ Fixed two bugs in texmanager.py: improved comparison of dvipng versions
+ fixed a bug introduced when get_grey method was added - DSD
-2008-05-28 Fix crashing of PDFs in xpdf and ghostscript when two-byte
- characters are used with Type 3 fonts - MGD
+2008-05-28
+ Fix crashing of PDFs in xpdf and ghostscript when two-byte characters are
+ used with Type 3 fonts - MGD
-2008-05-28 Allow keyword args to configure widget properties as
- requested in
- \http://sourceforge.net/tracker/index.php?func=detail&aid=1866207&group_id=80706&atid=560722
- - JDH
+2008-05-28
+ Allow keyword args to configure widget properties as requested in
+ \http://sourceforge.net/tracker/index.php?func=detail&aid=1866207&group_id=80706&atid=560722
+ - JDH
-2008-05-28 Replaced '-' with u'\u2212' for minus sign as requested in
- \http://sourceforge.net/tracker/index.php?func=detail&aid=1962574&group_id=80706&atid=560720
+2008-05-28
+ Replaced '-' with u'\\u2212' for minus sign as requested in
+ \http://sourceforge.net/tracker/index.php?func=detail&aid=1962574&group_id=80706&atid=560720
-2008-05-28 zero width/height Rectangles no longer influence the
- autoscaler. Useful for log histograms with empty bins -
- JDH
+2008-05-28
+ zero width/height Rectangles no longer influence the autoscaler. Useful
+ for log histograms with empty bins - JDH
-2008-05-28 Fix rendering of composite glyphs in Type 3 conversion
- (particularly as evidenced in the Eunjin.ttf Korean font)
- Thanks Jae-Joon Lee for finding this!
+2008-05-28
+ Fix rendering of composite glyphs in Type 3 conversion (particularly as
+ evidenced in the Eunjin.ttf Korean font) Thanks Jae-Joon Lee for finding
+ this!
-2008-05-27 Rewrote the cm.ScalarMappable callback infrastructure to
- use cbook.CallbackRegistry rather than custom callback
- handling. Amy users of add_observer/notify of the
- cm.ScalarMappable should uae the
- cm.ScalarMappable.callbacksSM CallbackRegistry instead. JDH
+2008-05-27
+ Rewrote the cm.ScalarMappable callback infrastructure to use
+ cbook.CallbackRegistry rather than custom callback handling. Any users of
+ add_observer/notify of the cm.ScalarMappable should use the
+ cm.ScalarMappable.callbacksSM CallbackRegistry instead. JDH
-2008-05-27 Fix TkAgg build on Ubuntu 8.04 (and hopefully a more
- general solution for other platforms, too.)
+2008-05-27
+ Fix TkAgg build on Ubuntu 8.04 (and hopefully a more general solution for
+ other platforms, too.)
-2008-05-24 Added PIL support for loading images to imread (if PIL is
- available) - JDH
+2008-05-24
+ Added PIL support for loading images to imread (if PIL is available) - JDH
-2008-05-23 Provided a function and a method for controlling the
- plot color cycle. - EF
+2008-05-23
+ Provided a function and a method for controlling the plot color cycle. - EF
-2008-05-23 Major revision of hist(). Can handle 2D arrays and create
- stacked histogram plots; keyword 'width' deprecated and
- rwidth (relative width) introduced; align='edge' changed
- to center of bin - MM
+2008-05-23
+ Major revision of hist(). Can handle 2D arrays and create stacked histogram
+ plots; keyword 'width' deprecated and rwidth (relative width) introduced;
+ align='edge' changed to center of bin - MM
-2008-05-22 Added support for ReST-based doumentation using Sphinx.
- Documents are located in doc/, and are broken up into
- a users guide and an API reference. To build, run the
- make.py files. Sphinx-0.4 is needed to build generate xml,
- which will be useful for rendering equations with mathml,
- use sphinx from svn until 0.4 is released - DSD
+2008-05-22
+ Added support for ReST-based doumentation using Sphinx. Documents are
+ located in doc/, and are broken up into a users guide and an API reference.
+ To build, run the make.py files. Sphinx-0.4 is needed to build generate
+ xml, which will be useful for rendering equations with mathml, use sphinx
+ from svn until 0.4 is released - DSD
-2008-05-21 Fix segfault in TkAgg backend - MGD
+2008-05-21
+ Fix segfault in TkAgg backend - MGD
-2008-05-21 Fix a "local variable unreferenced" bug in plotfile - MM
+2008-05-21
+ Fix a "local variable unreferenced" bug in plotfile - MM
-2008-05-19 Fix crash when Windows can not access the registry to
- determine font path [Bug 1966974, thanks Patrik Simons] - MGD
+2008-05-19
+ Fix crash when Windows can not access the registry to determine font path
+ [Bug 1966974, thanks Patrik Simons] - MGD
-2008-05-16 removed some unneeded code w/ the python 2.4 requirement.
- cbook no longer provides compatibility for reversed,
- enumerate, set or izip. removed lib/subprocess, mpl1,
- sandbox/units, and the swig code. This stuff should remain
- on the maintenance branch for archival purposes. JDH
+2008-05-16
+ removed some unneeded code w/ the python 2.4 requirement. cbook no longer
+ provides compatibility for reversed, enumerate, set or izip. removed
+ lib/subprocess, mpl1, sandbox/units, and the swig code. This stuff should
+ remain on the maintenance branch for archival purposes. JDH
-2008-05-16 Reorganized examples dir - JDH
+2008-05-16
+ Reorganized examples dir - JDH
-2008-05-16 Added 'elinewidth' keyword arg to errorbar, based on patch
- by Christopher Brown - MM
+2008-05-16
+ Added 'elinewidth' keyword arg to errorbar, based on patch by Christopher
+ Brown - MM
-2008-05-16 Added 'cumulative' keyword arg to hist to plot cumulative
- histograms. For normed hists, this is normalized to one - MM
+2008-05-16
+ Added 'cumulative' keyword arg to hist to plot cumulative histograms. For
+ normed hists, this is normalized to one - MM
-2008-05-15 Fix Tk backend segfault on some machines - MGD
+2008-05-15
+ Fix Tk backend segfault on some machines - MGD
-2008-05-14 Don't use stat on Windows (fixes font embedding problem) - MGD
+2008-05-14
+ Don't use stat on Windows (fixes font embedding problem) - MGD
-2008-05-09 Fix /singlequote (') in Postscript backend - MGD
+2008-05-09
+ Fix /singlequote (') in Postscript backend - MGD
-2008-05-08 Fix kerning in SVG when embedding character outlines - MGD
+2008-05-08
+ Fix kerning in SVG when embedding character outlines - MGD
-2008-05-07 Switched to future numpy histogram semantic in hist - MM
+2008-05-07
+ Switched to future numpy histogram semantic in hist - MM
-2008-05-06 Fix strange colors when blitting in QtAgg and Qt4Agg - MGD
+2008-05-06
+ Fix strange colors when blitting in QtAgg and Qt4Agg - MGD
-2008-05-05 pass notify_axes_change to the figure's add_axobserver
- in the qt backends, like we do for the other backends.
- Thanks Glenn Jones for the report - DSD
+2008-05-05
+ pass notify_axes_change to the figure's add_axobserver in the qt backends,
+ like we do for the other backends. Thanks Glenn Jones for the report - DSD
-2008-05-02 Added step histograms, based on patch by Erik Tollerud. - MM
+2008-05-02
+ Added step histograms, based on patch by Erik Tollerud. - MM
-2008-05-02 On PyQt <= 3.14 there is no way to determine the underlying
- Qt version. [1851364] - MGD
+2008-05-02
+ On PyQt <= 3.14 there is no way to determine the underlying Qt version.
+ [1851364] - MGD
-2008-05-02 Don't call sys.exit() when pyemf is not found [1924199] -
- MGD
+2008-05-02
+ Don't call sys.exit() when pyemf is not found [1924199] - MGD
-2008-05-02 Update _subprocess.c from upstream Python 2.5.2 to get a
- few memory and reference-counting-related bugfixes. See
- bug 1949978. - MGD
+2008-05-02
+ Update _subprocess.c from upstream Python 2.5.2 to get a few memory and
+ reference-counting-related bugfixes. See bug 1949978. - MGD
-2008-04-30 Added some record array editing widgets for gtk -- see
- examples/rec_edit*.py - JDH
+2008-04-30
+ Added some record array editing widgets for gtk -- see
+ examples/rec_edit*.py - JDH
-2008-04-29 Fix bug in mlab.sqrtm - MM
+2008-04-29
+ Fix bug in mlab.sqrtm - MM
-2008-04-28 Fix bug in SVG text with Mozilla-based viewers (the symbol
- tag is not supported) - MGD
+2008-04-28
+ Fix bug in SVG text with Mozilla-based viewers (the symbol tag is not
+ supported) - MGD
-2008-04-27 Applied patch by Michiel de Hoon to add hexbin
- axes method and pyplot function - EF
+2008-04-27
+ Applied patch by Michiel de Hoon to add hexbin axes method and pyplot
+ function - EF
-2008-04-25 Enforce python >= 2.4; remove subprocess build - EF
+2008-04-25
+ Enforce python >= 2.4; remove subprocess build - EF
-2008-04-25 Enforce the numpy requirement at build time - JDH
+2008-04-25
+ Enforce the numpy requirement at build time - JDH
-2008-04-24 Make numpy 1.1 and python 2.3 required when importing
- matplotlib - EF
+2008-04-24
+ Make numpy 1.1 and python 2.3 required when importing matplotlib - EF
-2008-04-24 Fix compilation issues on VS2003 (Thanks Martin Spacek for
- all the help) - MGD
+2008-04-24
+ Fix compilation issues on VS2003 (Thanks Martin Spacek for all the help) -
+ MGD
-2008-04-24 Fix sub/superscripts when the size of the font has been
- changed - MGD
+2008-04-24
+ Fix sub/superscripts when the size of the font has been changed - MGD
-2008-04-22 Use "svg.embed_char_paths" consistently everywhere - MGD
+2008-04-22
+ Use "svg.embed_char_paths" consistently everywhere - MGD
-2008-04-20 Add support to MaxNLocator for symmetric axis autoscaling. - EF
+2008-04-20
+ Add support to MaxNLocator for symmetric axis autoscaling. - EF
-2008-04-20 Fix double-zoom bug. - MM
+2008-04-20
+ Fix double-zoom bug. - MM
-2008-04-15 Speed up colormapping. - EF
+2008-04-15
+ Speed up colormapping. - EF
-2008-04-12 Speed up zooming and panning of dense images. - EF
+2008-04-12
+ Speed up zooming and panning of dense images. - EF
-2008-04-11 Fix global font rcParam setting after initialization
- time. - MGD
+2008-04-11
+ Fix global font rcParam setting after initialization time. - MGD
-2008-04-11 Revert commits 5002 and 5031, which were intended to
- avoid an unnecessary call to draw(). 5002 broke saving
- figures before show(). 5031 fixed the problem created in
- 5002, but broke interactive plotting. Unnecessary call to
- draw still needs resolution - DSD
+2008-04-11
+ Revert commits 5002 and 5031, which were intended to avoid an unnecessary
+ call to draw(). 5002 broke saving figures before show(). 5031 fixed the
+ problem created in 5002, but broke interactive plotting. Unnecessary call
+ to draw still needs resolution - DSD
-2008-04-07 Improve color validation in rc handling, suggested
- by Lev Givon - EF
+2008-04-07
+ Improve color validation in rc handling, suggested by Lev Givon - EF
-2008-04-02 Allow to use both linestyle definition arguments, '-' and
- 'solid' etc. in plots/collections - MM
+2008-04-02
+ Allow to use both linestyle definition arguments, '-' and 'solid' etc. in
+ plots/collections - MM
-2008-03-27 Fix saving to Unicode filenames with Agg backend
- (other backends appear to already work...)
- (Thanks, Christopher Barker) - MGD
+2008-03-27
+ Fix saving to Unicode filenames with Agg backend (other backends appear to
+ already work...) (Thanks, Christopher Barker) - MGD
-2008-03-26 Fix SVG backend bug that prevents copying and pasting in
- Inkscape (thanks Kaushik Ghose) - MGD
+2008-03-26
+ Fix SVG backend bug that prevents copying and pasting in Inkscape (thanks
+ Kaushik Ghose) - MGD
-2008-03-24 Removed an unnecessary call to draw() in the backend_qt*
- mouseReleaseEvent. Thanks to Ted Drain - DSD
+2008-03-24
+ Removed an unnecessary call to draw() in the backend_qt* mouseReleaseEvent.
+ Thanks to Ted Drain - DSD
-2008-03-23 Fix a pdf backend bug which sometimes caused the outermost
- gsave to not be balanced with a grestore. - JKS
+2008-03-23
+ Fix a pdf backend bug which sometimes caused the outermost gsave to not be
+ balanced with a grestore. - JKS
-2008-03-20 Fixed a minor bug in ContourSet._process_linestyles when
- len(linestyles)==Nlev - MM
+2008-03-20
+ Fixed a minor bug in ContourSet._process_linestyles when
+ len(linestyles)==Nlev - MM
-2008-03-19 Changed ma import statements to "from numpy import ma";
- this should work with past and future versions of
- numpy, whereas "import numpy.ma as ma" will work only
- with numpy >= 1.05, and "import numerix.npyma as ma"
- is obsolete now that maskedarray is replacing the
- earlier implementation, as of numpy 1.05.
+2008-03-19
+ Changed ma import statements to "from numpy import ma"; this should work
+ with past and future versions of numpy, whereas "import numpy.ma as ma"
+ will work only with numpy >= 1.05, and "import numerix.npyma as ma" is
+ obsolete now that maskedarray is replacing the earlier implementation, as
+ of numpy 1.05.
-2008-03-14 Removed an apparently unnecessary call to
- FigureCanvasAgg.draw in backend_qt*agg. Thanks to Ted
- Drain - DSD
+2008-03-14
+ Removed an apparently unnecessary call to FigureCanvasAgg.draw in
+ backend_qt*agg. Thanks to Ted Drain - DSD
-2008-03-10 Workaround a bug in backend_qt4agg's blitting due to a
- buffer width/bbox width mismatch in _backend_agg's
- copy_from_bbox - DSD
+2008-03-10
+ Workaround a bug in backend_qt4agg's blitting due to a buffer width/bbox
+ width mismatch in _backend_agg's copy_from_bbox - DSD
-2008-02-29 Fix class Wx toolbar pan and zoom functions (Thanks Jeff
- Peery) - MGD
+2008-02-29
+ Fix class Wx toolbar pan and zoom functions (Thanks Jeff Peery) - MGD
-2008-02-16 Added some new rec array functionality to mlab
- (rec_summarize, rec2txt and rec_groupby). See
- examples/rec_groupby_demo.py. Thanks to Tim M for rec2txt.
+2008-02-16
+ Added some new rec array functionality to mlab (rec_summarize, rec2txt and
+ rec_groupby). See examples/rec_groupby_demo.py. Thanks to Tim M for
+ rec2txt.
-2008-02-12 Applied Erik Tollerud's span selector patch - JDH
+2008-02-12
+ Applied Erik Tollerud's span selector patch - JDH
-2008-02-11 Update plotting() doc string to refer to getp/setp. - JKS
+2008-02-11
+ Update plotting() doc string to refer to getp/setp. - JKS
-2008-02-10 Fixed a problem with square roots in the pdf backend with
- usetex. - JKS
+2008-02-10
+ Fixed a problem with square roots in the pdf backend with usetex. - JKS
-2008-02-08 Fixed minor __str__ bugs so getp(gca()) works. - JKS
+2008-02-08
+ Fixed minor __str__ bugs so getp(gca()) works. - JKS
-2008-02-05 Added getters for title, xlabel, ylabel, as requested
- by Brandon Kieth - EF
+2008-02-05
+ Added getters for title, xlabel, ylabel, as requested by Brandon Kieth - EF
-2008-02-05 Applied Gael's ginput patch and created
- examples/ginput_demo.py - JDH
+2008-02-05
+ Applied Gael's ginput patch and created examples/ginput_demo.py - JDH
-2008-02-03 Expose interpnames, a list of valid interpolation
- methods, as an AxesImage class attribute. - EF
+2008-02-03
+ Expose interpnames, a list of valid interpolation methods, as an AxesImage
+ class attribute. - EF
-2008-02-03 Added BoundaryNorm, with examples in colorbar_only.py
- and image_masked.py. - EF
+2008-02-03
+ Added BoundaryNorm, with examples in colorbar_only.py and image_masked.py.
+ - EF
-2008-02-03 Force dpi=72 in pdf backend to fix picture size bug. - JKS
+2008-02-03
+ Force dpi=72 in pdf backend to fix picture size bug. - JKS
-2008-02-01 Fix doubly-included font problem in Postscript backend - MGD
+2008-02-01
+ Fix doubly-included font problem in Postscript backend - MGD
-2008-02-01 Fix reference leak in ft2font Glyph objects. - MGD
+2008-02-01
+ Fix reference leak in ft2font Glyph objects. - MGD
-2008-01-31 Don't use unicode strings with usetex by default - DSD
+2008-01-31
+ Don't use unicode strings with usetex by default - DSD
-2008-01-31 Fix text spacing problems in PDF backend with *some* fonts,
- such as STIXGeneral.
+2008-01-31
+ Fix text spacing problems in PDF backend with *some* fonts, such as
+ STIXGeneral.
-2008-01-31 Fix \sqrt with radical number (broken by making [ and ]
- work below) - MGD
+2008-01-31
+ Fix \sqrt with radical number (broken by making [ and ] work below) - MGD
-2008-01-27 Applied Martin Teichmann's patch to improve the Qt4
- backend. Uses Qt's builtin toolbars and statusbars.
- See bug 1828848 - DSD
+2008-01-27
+ Applied Martin Teichmann's patch to improve the Qt4 backend. Uses Qt's
+ builtin toolbars and statusbars. See bug 1828848 - DSD
-2008-01-10 Moved toolkits to mpl_toolkits, made mpl_toolkits
- a namespace package - JSWHIT
+2008-01-10
+ Moved toolkits to mpl_toolkits, made mpl_toolkits a namespace package -
+ JSWHIT
-2008-01-10 Use setup.cfg to set the default parameters (tkagg,
- numpy) when building windows installers - DSD
+2008-01-10
+ Use setup.cfg to set the default parameters (tkagg, numpy) when building
+ windows installers - DSD
-2008-01-10 Fix bug displaying [ and ] in mathtext - MGD
+2008-01-10
+ Fix bug displaying [ and ] in mathtext - MGD
-2008-01-10 Fix bug when displaying a tick value offset with scientific
- notation. (Manifests itself as a warning that the \times
- symbol can not be found). - MGD
+2008-01-10
+ Fix bug when displaying a tick value offset with scientific notation.
+ (Manifests itself as a warning that the \times symbol can not be found). -
+ MGD
-2008-01-10 Use setup.cfg to set the default parameters (tkagg,
- numpy) when building windows installers - DSD
+2008-01-10
+ Use setup.cfg to set the default parameters (tkagg, numpy) when building
+ windows installers - DSD
--------------------
-2008-01-06 Released 0.91.2 at revision 4802
+2008-01-06
+ Released 0.91.2 at revision 4802
-2007-12-26 Reduce too-late use of matplotlib.use() to a warning
- instead of an exception, for backwards compatibility - EF
+2007-12-26
+ Reduce too-late use of matplotlib.use() to a warning instead of an
+ exception, for backwards compatibility - EF
-2007-12-25 Fix bug in errorbar, identified by Noriko Minakawa - EF
+2007-12-25
+ Fix bug in errorbar, identified by Noriko Minakawa - EF
-2007-12-25 Changed masked array importing to work with the upcoming
- numpy 1.05 (now the maskedarray branch) as well as with
- earlier versions. - EF
+2007-12-25
+ Changed masked array importing to work with the upcoming numpy 1.05 (now
+ the maskedarray branch) as well as with earlier versions. - EF
-2007-12-16 rec2csv saves doubles without losing precision. Also, it
- does not close filehandles passed in open. - JDH,ADS
+2007-12-16
+ rec2csv saves doubles without losing precision. Also, it does not close
+ filehandles passed in open. - JDH,ADS
-2007-12-13 Moved rec2gtk to matplotlib.toolkits.gtktools and rec2excel
- to matplotlib.toolkits.exceltools - JDH
+2007-12-13
+ Moved rec2gtk to matplotlib.toolkits.gtktools and rec2excel to
+ matplotlib.toolkits.exceltools - JDH
-2007-12-12 Support alpha-blended text in the Agg and Svg backends -
- MGD
+2007-12-12
+ Support alpha-blended text in the Agg and Svg backends - MGD
-2007-12-10 Fix SVG text rendering bug. - MGD
+2007-12-10
+ Fix SVG text rendering bug. - MGD
-2007-12-10 Increase accuracy of circle and ellipse drawing by using an
- 8-piece bezier approximation, rather than a 4-piece one.
- Fix PDF, SVG and Cairo backends so they can draw paths
- (meaning ellipses as well). - MGD
+2007-12-10
+ Increase accuracy of circle and ellipse drawing by using an 8-piece bezier
+ approximation, rather than a 4-piece one. Fix PDF, SVG and Cairo backends
+ so they can draw paths (meaning ellipses as well). - MGD
-2007-12-07 Issue a warning when drawing an image on a non-linear axis. - MGD
+2007-12-07
+ Issue a warning when drawing an image on a non-linear axis. - MGD
-2007-12-06 let widgets.Cursor initialize to the lower x and y bounds
- rather than 0,0, which can cause havoc for dates and other
- transforms - DSD
+2007-12-06
+ let widgets.Cursor initialize to the lower x and y bounds rather than 0,0,
+ which can cause havoc for dates and other transforms - DSD
-2007-12-06 updated references to mpl data directories for py2exe - DSD
+2007-12-06
+ updated references to mpl data directories for py2exe - DSD
-2007-12-06 fixed a bug in rcsetup, see bug 1845057 - DSD
+2007-12-06
+ fixed a bug in rcsetup, see bug 1845057 - DSD
-2007-12-05 Fix how fonts are cached to avoid loading the same one multiple times.
- (This was a regression since 0.90 caused by the refactoring of
- font_manager.py) - MGD
+2007-12-05
+ Fix how fonts are cached to avoid loading the same one multiple times.
+ (This was a regression since 0.90 caused by the refactoring of
+ font_manager.py) - MGD
-2007-12-05 Support arbitrary rotation of usetex text in Agg backend. - MGD
+2007-12-05
+ Support arbitrary rotation of usetex text in Agg backend. - MGD
-2007-12-04 Support '|' as a character in mathtext - MGD
+2007-12-04
+ Support '|' as a character in mathtext - MGD
-----------------------------------------------------
-2007-11-27 Released 0.91.1 at revision 4517
+2007-11-27
+ Released 0.91.1 at revision 4517
-----------------------------------------------------
-2007-11-27 Released 0.91.0 at revision 4478
-
-2007-11-13 All backends now support writing to a file-like object, not
- just a regular file. savefig() can be passed a file-like
- object in place of a file path. - MGD
-
-2007-11-13 Improved the default backend selection at build time:
- SVG -> Agg -> TkAgg -> WXAgg -> GTK -> GTKAgg. The last usable
- backend in this progression will be chosen in the default
- config file. If a backend is defined in setup.cfg, that will
- be the default backend - DSD
-
-2007-11-13 Improved creation of default config files at build time for
- traited config package - DSD
-
-2007-11-12 Exposed all the build options in setup.cfg. These options are
- read into a dict called "options" by setupext.py. Also, added
- "-mpl" tags to the version strings for packages provided by
- matplotlib. Versions provided by mpl will be identified and
- updated on subsequent installs - DSD
-
-2007-11-12 Added support for STIX fonts. A new rcParam,
- mathtext.fontset, can be used to choose between:
-
- 'cm':
- The TeX/LaTeX Computer Modern fonts
-
- 'stix':
- The STIX fonts (see stixfonts.org)
-
- 'stixsans':
- The STIX fonts, using sans-serif glyphs by default
-
- 'custom':
- A generic Unicode font, in which case the mathtext font
- must be specified using mathtext.bf, mathtext.it,
- mathtext.sf etc.
-
- Added a new example, stix_fonts_demo.py to show how to access
- different fonts and unusual symbols.
-
- - MGD
-
-2007-11-12 Options to disable building backend extension modules moved
- from setup.py to setup.cfg - DSD
-
-2007-11-09 Applied Martin Teichmann's patch 1828813: a QPainter is used in
- paintEvent, which has to be destroyed using the method end(). If
- matplotlib raises an exception before the call to end - and it
- does if you feed it with bad data - this method end() is never
- called and Qt4 will start spitting error messages
-
-2007-11-09 Moved pyparsing back into matplotlib namespace. Don't use
- system pyparsing, API is too variable from one release
- to the next - DSD
+2007-11-27
+ Released 0.91.0 at revision 4478
+
+2007-11-13
+ All backends now support writing to a file-like object, not just a regular
+ file. savefig() can be passed a file-like object in place of a file path.
+ - MGD
+
+2007-11-13
+ Improved the default backend selection at build time: SVG -> Agg -> TkAgg
+ -> WXAgg -> GTK -> GTKAgg. The last usable backend in this progression will
+ be chosen in the default config file. If a backend is defined in setup.cfg,
+ that will be the default backend - DSD
+
+2007-11-13
+ Improved creation of default config files at build time for traited config
+ package - DSD
+
+2007-11-12
+ Exposed all the build options in setup.cfg. These options are read into a
+ dict called "options" by setupext.py. Also, added "-mpl" tags to the
+ version strings for packages provided by matplotlib. Versions provided by
+ mpl will be identified and updated on subsequent installs - DSD
+
+2007-11-12
+ Added support for STIX fonts. A new rcParam, mathtext.fontset, can be used
+ to choose between:
+
+ 'cm'
+ The TeX/LaTeX Computer Modern fonts
+ 'stix'
+ The STIX fonts (see stixfonts.org)
+ 'stixsans'
+ The STIX fonts, using sans-serif glyphs by default
+ 'custom'
+ A generic Unicode font, in which case the mathtext font must be
+ specified using mathtext.bf, mathtext.it, mathtext.sf etc.
+
+ Added a new example, stix_fonts_demo.py to show how to access different
+ fonts and unusual symbols. - MGD
+
+2007-11-12
+ Options to disable building backend extension modules moved from setup.py
+ to setup.cfg - DSD
+
+2007-11-09
+ Applied Martin Teichmann's patch 1828813: a QPainter is used in paintEvent,
+ which has to be destroyed using the method end(). If matplotlib raises an
+ exception before the call to end - and it does if you feed it with bad data
+ - this method end() is never called and Qt4 will start spitting error
+ messages
+
+2007-11-09
+ Moved pyparsing back into matplotlib namespace. Don't use system pyparsing,
+ API is too variable from one release to the next - DSD
+
+2007-11-08
+ Made pylab use straight numpy instead of oldnumeric by default - EF
+
+2007-11-08
+ Added additional record array utilities to mlab (rec2excel, rec2gtk,
+ rec_join, rec_append_field, rec_drop_field) - JDH
+
+2007-11-08
+ Updated pytz to version 2007g - DSD
-2007-11-08 Made pylab use straight numpy instead of oldnumeric
- by default - EF
+2007-11-08
+ Updated pyparsing to version 1.4.8 - DSD
+
+2007-11-08
+ Moved csv2rec to recutils and added other record array utilities - JDH
+
+2007-11-08
+ If available, use existing pyparsing installation - DSD
+
+2007-11-07
+ Removed old enthought.traits from lib/matplotlib, added Gael Varoquaux's
+ enthought.traits-2.6b1, which is stripped of setuptools. The package is
+ installed to site-packages if not already available - DSD
+
+2007-11-05
+ Added easy access to minor tick properties; slight mod of patch by Pierre
+ G-M - EF
+
+2007-11-02
+ Committed Phil Thompson's patch 1599876, fixes to Qt4Agg backend and qt4
+ blitting demo - DSD
+
+2007-11-02
+ Committed Phil Thompson's patch 1599876, fixes to Qt4Agg backend and qt4
+ blitting demo - DSD
+
+2007-10-31
+ Made log color scale easier to use with contourf; automatic level
+ generation now works. - EF
+
+2007-10-29
+ TRANSFORMS REFACTORING
+
+ The primary goal of this refactoring was to make it easier to extend
+ matplotlib to support new kinds of projections. This is primarily an
+ internal improvement, and the possible user-visible changes it allows are
+ yet to come.
+
+ The transformation framework was completely rewritten in Python (with
+ Numpy). This will make it easier to add news kinds of transformations
+ without writing C/C++ code.
+
+ Transforms are composed into a 'transform tree', made of transforms whose
+ value depends on other transforms (their children). When the contents of
+ children change, their parents are automatically updated to reflect those
+ changes. To do this an "invalidation" method is used: when children
+ change, all of their ancestors are marked as "invalid". When the value of
+ a transform is accessed at a later time, its value is recomputed only if it
+ is invalid, otherwise a cached value may be used. This prevents
+ unnecessary recomputations of transforms, and contributes to better
+ interactive performance.
+
+ The framework can be used for both affine and non-affine transformations.
+ However, for speed, we want use the backend renderers to perform affine
+ transformations whenever possible. Therefore, it is possible to perform
+ just the affine or non-affine part of a transformation on a set of data.
+ The affine is always assumed to occur after the non-affine. For any
+ transform::
+
+ full transform == non-affine + affine
+
+ Much of the drawing has been refactored in terms of compound paths.
+ Therefore, many methods have been removed from the backend interface and
+ replaced with a handful to draw compound paths. This will make updating
+ the backends easier, since there is less to update. It also should make
+ the backends more consistent in terms of functionality.
+
+ User visible changes:
+
+ - POLAR PLOTS: Polar plots are now interactively zoomable, and the r-axis
+ labels can be interactively rotated. Straight line segments are now
+ interpolated to follow the curve of the r-axis.
+
+ - Non-rectangular clipping works in more backends and with more types of
+ objects.
+
+ - Sharing an axis across figures is now done in exactly the same way as
+ sharing an axis between two axes in the same figure::
+
+ fig1 = figure()
+ fig2 = figure()
+
+ ax1 = fig1.add_subplot(111)
+ ax2 = fig2.add_subplot(111, sharex=ax1, sharey=ax1)
-2007-11-08 Added additional record array utilities to mlab (rec2excel,
- rec2gtk, rec_join, rec_append_field, rec_drop_field) - JDH
+ - linestyles now include steps-pre, steps-post and steps-mid. The old step
+ still works and is equivalent to step-pre.
-2007-11-08 Updated pytz to version 2007g - DSD
+ - Multiple line styles may be provided to a collection.
-2007-11-08 Updated pyparsing to version 1.4.8 - DSD
+ See API_CHANGES for more low-level information about this refactoring.
-2007-11-08 Moved csv2rec to recutils and added other record array
- utilities - JDH
+2007-10-24
+ Added ax kwarg to Figure.colorbar and pyplot.colorbar - EF
-2007-11-08 If available, use existing pyparsing installation - DSD
+2007-10-19
+ Removed a gsave/grestore pair surrounding _draw_ps, which was causing a
+ loss graphics state info (see "EPS output problem - scatter & edgecolors"
+ on mpl-dev, 2007-10-29) - DSD
-2007-11-07 Removed old enthought.traits from lib/matplotlib, added
- Gael Varoquaux's enthought.traits-2.6b1, which is stripped
- of setuptools. The package is installed to site-packages
- if not already available - DSD
+2007-10-15
+ Fixed a bug in patches.Ellipse that was broken for aspect='auto'. Scale
+ free ellipses now work properly for equal and auto on Agg and PS, and they
+ fall back on a polygonal approximation for nonlinear transformations until
+ we convince oursleves that the spline approximation holds for nonlinear
+ transformations. Added unit/ellipse_compare.py to compare spline with
+ vertex approx for both aspects. JDH
+
+2007-10-05
+ remove generator expressions from texmanager and mpltraits. generator
+ expressions are not supported by python-2.3 - DSD
+
+2007-10-01
+ Made matplotlib.use() raise an exception if called after backends has been
+ imported. - EF
+
+2007-09-30
+ Modified update* methods of Bbox and Interval so they work with reversed
+ axes. Prior to this, trying to set the ticks on a reversed axis failed
+ with an uninformative error message. - EF
+
+2007-09-30
+ Applied patches to axes3d to fix index error problem - EF
+
+2007-09-24
+ Applied Eike Welk's patch reported on mpl-dev on 2007-09-22 Fixes a bug
+ with multiple plot windows in the qt backend, ported the changes to
+ backend_qt4 as well - DSD
+
+2007-09-21
+ Changed cbook.reversed to yield the same result as the python reversed
+ builtin - DSD
+
+2007-09-13
+ The usetex support in the pdf backend is more usable now, so I am enabling
+ it. - JKS
+
+2007-09-12
+ Fixed a Axes.bar unit bug - JDH
+
+2007-09-10
+ Made skiprows=1 the default on csv2rec - JDH
+
+2007-09-09
+ Split out the plotting part of pylab and put it in pyplot.py; removed
+ numerix from the remaining pylab.py, which imports everything from
+ pyplot.py. The intention is that apart from cleanups, the result of
+ importing from pylab is nearly unchanged, but there is the new alternative
+ of importing from pyplot to get the state-engine graphics without all the
+ numeric functions. Numpified examples; deleted two that were obsolete;
+ modified some to use pyplot. - EF
-2007-11-05 Added easy access to minor tick properties; slight mod
- of patch by Pierre G-M - EF
+2007-09-08
+ Eliminated gd and paint backends - EF
-2007-11-02 Committed Phil Thompson's patch 1599876, fixes to Qt4Agg
- backend and qt4 blitting demo - DSD
+2007-09-06
+ .bmp file format is now longer an alias for .raw
-2007-11-02 Committed Phil Thompson's patch 1599876, fixes to Qt4Agg
- backend and qt4 blitting demo - DSD
+2007-09-07
+ Added clip path support to pdf backend. - JKS
-2007-10-31 Made log color scale easier to use with contourf;
- automatic level generation now works. - EF
+2007-09-06
+ Fixed a bug in the embedding of Type 1 fonts in PDF. Now it doesn't crash
+ Preview.app. - JKS
-2007-10-29 TRANSFORMS REFACTORING
+2007-09-06
+ Refactored image saving code so that all GUI backends can save most image
+ types. See FILETYPES for a matrix of backends and their supported file
+ types. Backend canvases should no longer write their own print_figure()
+ method -- instead they should write a print_xxx method for each filetype
+ they can output and add an entry to their class-scoped filetypes
+ dictionary. - MGD
- The primary goal of this refactoring was to make it easier
- to extend matplotlib to support new kinds of projections.
- This is primarily an internal improvement, and the possible
- user-visible changes it allows are yet to come.
+2007-09-05
+ Fixed Qt version reporting in setupext.py - DSD
- The transformation framework was completely rewritten in
- Python (with Numpy). This will make it easier to add news
- kinds of transformations without writing C/C++ code.
+2007-09-04
+ Embedding Type 1 fonts in PDF, and thus usetex support via dviread, sort of
+ works. To test, enable it by renaming _draw_tex to draw_tex. - JKS
- Transforms are composed into a 'transform tree', made of
- transforms whose value depends on other transforms (their
- children). When the contents of children change, their
- parents are automatically updated to reflect those changes.
- To do this an "invalidation" method is used: when children
- change, all of their ancestors are marked as "invalid".
- When the value of a transform is accessed at a later time,
- its value is recomputed only if it is invalid, otherwise a
- cached value may be used. This prevents unnecessary
- recomputations of transforms, and contributes to better
- interactive performance.
+2007-09-03
+ Added ability of errorbar show limits via caret or arrowhead ends on the
+ bars; patch by Manual Metz. - EF
- The framework can be used for both affine and non-affine
- transformations. However, for speed, we want use the
- backend renderers to perform affine transformations
- whenever possible. Therefore, it is possible to perform
- just the affine or non-affine part of a transformation on a
- set of data. The affine is always assumed to occur after
- the non-affine. For any transform:
+2007-09-03
+ Created type1font.py, added features to AFM and FT2Font (see API_CHANGES),
+ started work on embedding Type 1 fonts in pdf files. - JKS
- full transform == non-affine + affine
+2007-09-02
+ Continued work on dviread.py. - JKS
- Much of the drawing has been refactored in terms of
- compound paths. Therefore, many methods have been removed
- from the backend interface and replaced with a handful to
- draw compound paths. This will make updating the backends
- easier, since there is less to update. It also should make
- the backends more consistent in terms of functionality.
+2007-08-16
+ Added a set_extent method to AxesImage, allow data extent to be modified
+ after initial call to imshow - DSD
- User visible changes:
+2007-08-14
+ Fixed a bug in pyqt4 subplots-adjust. Thanks to Xavier Gnata for the report
+ and suggested fix - DSD
- - POLAR PLOTS: Polar plots are now interactively zoomable,
- and the r-axis labels can be interactively rotated.
- Straight line segments are now interpolated to follow the
- curve of the r-axis.
+2007-08-13
+ Use pickle to cache entire fontManager; change to using font_manager
+ module-level function findfont wrapper for the fontManager.findfont method
+ - EF
- - Non-rectangular clipping works in more backends and with
- more types of objects.
+2007-08-11
+ Numpification and cleanup of mlab.py and some examples - EF
- - Sharing an axis across figures is now done in exactly
- the same way as sharing an axis between two axes in the
- same figure::
+2007-08-06
+ Removed mathtext2
- fig1 = figure()
- fig2 = figure()
+2007-07-31
+ Refactoring of distutils scripts.
- ax1 = fig1.add_subplot(111)
- ax2 = fig2.add_subplot(111, sharex=ax1, sharey=ax1)
+ - Will not fail on the entire build if an optional Python package (e.g.,
+ Tkinter) is installed but its development headers are not (e.g.,
+ tk-devel). Instead, it will continue to build all other extensions.
+ - Provide an overview at the top of the output to display what dependencies
+ and their versions were found, and (by extension) what will be built.
+ - Use pkg-config, when available, to find freetype2, since this was broken
+ on Mac OS-X when using MacPorts in a non- standard location.
- - linestyles now include steps-pre, steps-post and
- steps-mid. The old step still works and is equivalent to
- step-pre.
+2007-07-30
+ Reorganized configuration code to work with traited config objects. The new
+ config system is located in the matplotlib.config package, but it is
+ disabled by default. To enable it, set NEWCONFIG=True in
+ matplotlib.__init__.py. The new configuration system will still use the
+ old matplotlibrc files by default. To switch to the experimental, traited
+ configuration, set USE_TRAITED_CONFIG=True in config.__init__.py.
- - Multiple line styles may be provided to a collection.
+2007-07-29
+ Changed default pcolor shading to flat; added aliases to make collection
+ kwargs agree with setter names, so updating works; related minor cleanups.
+ Removed quiver_classic, scatter_classic, pcolor_classic. - EF
- See API_CHANGES for more low-level information about this
- refactoring.
+2007-07-26
+ Major rewrite of mathtext.py, using the TeX box layout model.
-2007-10-24 Added ax kwarg to Figure.colorbar and pyplot.colorbar - EF
+ There is one (known) backward incompatible change. The font commands
+ (\cal, \rm, \it, \tt) now behave as TeX does: they are in effect until the
+ next font change command or the end of the grouping. Therefore uses of
+ $\cal{R}$ should be changed to ${\cal R}$. Alternatively, you may use the
+ new LaTeX-style font commands (\mathcal, \mathrm, \mathit, \mathtt) which
+ do affect the following group, e.g., $\mathcal{R}$.
-2007-10-19 Removed a gsave/grestore pair surrounding _draw_ps, which
- was causing a loss graphics state info (see "EPS output
- problem - scatter & edgecolors" on mpl-dev, 2007-10-29)
- - DSD
+ Other new features include:
-2007-10-15 Fixed a bug in patches.Ellipse that was broken for
- aspect='auto'. Scale free ellipses now work properly for
- equal and auto on Agg and PS, and they fall back on a
- polygonal approximation for nonlinear transformations until
- we convince oursleves that the spline approximation holds
- for nonlinear transformations. Added
- unit/ellipse_compare.py to compare spline with vertex
- approx for both aspects. JDH
+ - Math may be interspersed with non-math text. Any text with an even
+ number of $'s (non-escaped) will be sent to the mathtext parser for
+ layout.
-2007-10-05 remove generator expressions from texmanager and mpltraits.
- generator expressions are not supported by python-2.3 - DSD
+ - Sub/superscripts are less likely to accidentally overlap.
-2007-10-01 Made matplotlib.use() raise an exception if called after
- backends has been imported. - EF
+ - Support for sub/superscripts in either order, e.g., $x^i_j$ and $x_j^i$
+ are equivalent.
-2007-09-30 Modified update* methods of Bbox and Interval so they
- work with reversed axes. Prior to this, trying to
- set the ticks on a reversed axis failed with an
- uninformative error message. - EF
-
-2007-09-30 Applied patches to axes3d to fix index error problem - EF
-
-2007-09-24 Applied Eike Welk's patch reported on mpl-dev on 2007-09-22
- Fixes a bug with multiple plot windows in the qt backend,
- ported the changes to backend_qt4 as well - DSD
-
-2007-09-21 Changed cbook.reversed to yield the same result as the
- python reversed builtin - DSD
-
-2007-09-13 The usetex support in the pdf backend is more usable now,
- so I am enabling it. - JKS
-
-2007-09-12 Fixed a Axes.bar unit bug - JDH
-
-2007-09-10 Made skiprows=1 the default on csv2rec - JDH
-
-2007-09-09 Split out the plotting part of pylab and put it in
- pyplot.py; removed numerix from the remaining pylab.py,
- which imports everything from pyplot.py. The intention
- is that apart from cleanups, the result of importing
- from pylab is nearly unchanged, but there is the
- new alternative of importing from pyplot to get
- the state-engine graphics without all the numeric
- functions.
- Numpified examples; deleted two that were obsolete;
- modified some to use pyplot. - EF
+ - Double sub/superscripts (e.g., $x_i_j$) are considered ambiguous and
+ raise an exception. Use braces to disambiguate.
-2007-09-08 Eliminated gd and paint backends - EF
+ - $\frac{x}{y}$ can be used for displaying fractions.
-2007-09-06 .bmp file format is now longer an alias for .raw
+ - $\sqrt[3]{x}$ can be used to display the radical symbol with a root
+ number and body.
-2007-09-07 Added clip path support to pdf backend. - JKS
+ - $\left(\frac{x}{y}\right)$ may be used to create parentheses and other
+ delimiters that automatically resize to the height of their contents.
-2007-09-06 Fixed a bug in the embedding of Type 1 fonts in PDF.
- Now it doesn't crash Preview.app. - JKS
+ - Spacing around operators etc. is now generally more like TeX.
-2007-09-06 Refactored image saving code so that all GUI backends can
- save most image types. See FILETYPES for a matrix of
- backends and their supported file types.
- Backend canvases should no longer write their own print_figure()
- method -- instead they should write a print_xxx method for
- each filetype they can output and add an entry to their
- class-scoped filetypes dictionary. - MGD
+ - Added support (and fonts) for boldface (\bf) and sans-serif (\sf)
+ symbols.
-2007-09-05 Fixed Qt version reporting in setupext.py - DSD
+ - Log-like function name shortcuts are supported. For example, $\sin(x)$
+ may be used instead of ${\rm sin}(x)$
-2007-09-04 Embedding Type 1 fonts in PDF, and thus usetex support
- via dviread, sort of works. To test, enable it by
- renaming _draw_tex to draw_tex. - JKS
+ - Limited use of kerning for the easy case (same font)
-2007-09-03 Added ability of errorbar show limits via caret or
- arrowhead ends on the bars; patch by Manual Metz. - EF
+ Behind the scenes, the pyparsing.py module used for doing the math parsing
+ was updated to the latest stable version (1.4.6). A lot of duplicate code
+ was refactored out of the Font classes.
-2007-09-03 Created type1font.py, added features to AFM and FT2Font
- (see API_CHANGES), started work on embedding Type 1 fonts
- in pdf files. - JKS
+ - MGD
-2007-09-02 Continued work on dviread.py. - JKS
+2007-07-19
+ completed numpification of most trivial cases - NN
-2007-08-16 Added a set_extent method to AxesImage, allow data extent
- to be modified after initial call to imshow - DSD
+2007-07-19
+ converted non-numpy relicts throughout the code - NN
-2007-08-14 Fixed a bug in pyqt4 subplots-adjust. Thanks to
- Xavier Gnata for the report and suggested fix - DSD
+2007-07-19
+ replaced the Python code in numerix/ by a minimal wrapper around numpy that
+ explicitly mentions all symbols that need to be addressed for further
+ numpification - NN
-2007-08-13 Use pickle to cache entire fontManager; change to using
- font_manager module-level function findfont wrapper for
- the fontManager.findfont method - EF
+2007-07-18
+ make usetex respect changes to rcParams. texmanager used to only configure
+ itself when it was created, now it reconfigures when rcParams are changed.
+ Thank you Alexander Schmolck for contributing a patch - DSD
-2007-08-11 Numpification and cleanup of mlab.py and some examples - EF
+2007-07-17
+ added validation to setting and changing rcParams - DSD
-2007-08-06 Removed mathtext2
+2007-07-17
+ bugfix segfault in transforms module. Thanks Ben North for the patch. - ADS
-2007-07-31 Refactoring of distutils scripts.
- - Will not fail on the entire build if an optional Python
- package (e.g., Tkinter) is installed but its development
- headers are not (e.g., tk-devel). Instead, it will
- continue to build all other extensions.
- - Provide an overview at the top of the output to display
- what dependencies and their versions were found, and (by
- extension) what will be built.
- - Use pkg-config, when available, to find freetype2, since
- this was broken on Mac OS-X when using MacPorts in a non-
- standard location.
+2007-07-16
+ clean up some code in ticker.ScalarFormatter, use unicode to render
+ multiplication sign in offset ticklabel - DSD
-2007-07-30 Reorganized configuration code to work with traited config
- objects. The new config system is located in the
- matplotlib.config package, but it is disabled by default.
- To enable it, set NEWCONFIG=True in matplotlib.__init__.py.
- The new configuration system will still use the old
- matplotlibrc files by default. To switch to the experimental,
- traited configuration, set USE_TRAITED_CONFIG=True in
- config.__init__.py.
+2007-07-16
+ fixed a formatting bug in ticker.ScalarFormatter's scientific notation
+ (10^0 was being rendered as 10 in some cases) - DSD
-2007-07-29 Changed default pcolor shading to flat; added aliases
- to make collection kwargs agree with setter names, so
- updating works; related minor cleanups.
- Removed quiver_classic, scatter_classic, pcolor_classic. - EF
+2007-07-13
+ Add MPL_isfinite64() and MPL_isinf64() for testing doubles in (the now
+ misnamed) MPL_isnan.h. - ADS
-2007-07-26 Major rewrite of mathtext.py, using the TeX box layout model.
+2007-07-13
+ The matplotlib._isnan module removed (use numpy.isnan) - ADS
- There is one (known) backward incompatible change. The
- font commands (\cal, \rm, \it, \tt) now behave as TeX does:
- they are in effect until the next font change command or
- the end of the grouping. Therefore uses of $\cal{R}$
- should be changed to ${\cal R}$. Alternatively, you may
- use the new LaTeX-style font commands (\mathcal, \mathrm,
- \mathit, \mathtt) which do affect the following group,
- e.g., $\mathcal{R}$.
+2007-07-13
+ Some minor cleanups in _transforms.cpp - ADS
- Other new features include:
+2007-07-13
+ Removed the rest of the numerix extension code detritus, numpified axes.py,
+ and cleaned up the imports in axes.py - JDH
- - Math may be interspersed with non-math text. Any text
- with an even number of $'s (non-escaped) will be sent to
- the mathtext parser for layout.
+2007-07-13
+ Added legend.loc as configurable option that could in future default to
+ 'best'. - NN
- - Sub/superscripts are less likely to accidentally overlap.
+2007-07-12
+ Bugfixes in mlab.py to coerce inputs into numpy arrays. -ADS
- - Support for sub/superscripts in either order, e.g., $x^i_j$
- and $x_j^i$ are equivalent.
+2007-07-11
+ Added linespacing kwarg to text.Text - EF
- - Double sub/superscripts (e.g., $x_i_j$) are considered
- ambiguous and raise an exception. Use braces to disambiguate.
+2007-07-11
+ Added code to store font paths in SVG files. - MGD
- - $\frac{x}{y}$ can be used for displaying fractions.
+2007-07-10
+ Store subset of TTF font as a Type 3 font in PDF files. - MGD
- - $\sqrt[3]{x}$ can be used to display the radical symbol
- with a root number and body.
+2007-07-09
+ Store subset of TTF font as a Type 3 font in PS files. - MGD
- - $\left(\frac{x}{y}\right)$ may be used to create
- parentheses and other delimiters that automatically
- resize to the height of their contents.
+2007-07-09
+ Applied Paul's pick restructure pick and add pickers, sourceforge patch
+ 1749829 - JDH
- - Spacing around operators etc. is now generally more like
- TeX.
+2007-07-09
+ Applied Allan's draw_lines agg optimization. JDH
- - Added support (and fonts) for boldface (\bf) and
- sans-serif (\sf) symbols.
+2007-07-08
+ Applied Carl Worth's patch to fix cairo draw_arc - SC
- - Log-like function name shortcuts are supported. For
- example, $\sin(x)$ may be used instead of ${\rm sin}(x)$
+2007-07-07
+ fixed bug 1712099: xpdf distiller on windows - DSD
- - Limited use of kerning for the easy case (same font)
+2007-06-30
+ Applied patches to tkagg, gtk, and wx backends to reduce memory leakage.
+ Patches supplied by Mike Droettboom; see tracker numbers 1745400, 1745406,
+ 1745408. Also made unit/memleak_gui.py more flexible with command-line
+ options. - EF
- Behind the scenes, the pyparsing.py module used for doing
- the math parsing was updated to the latest stable version
- (1.4.6). A lot of duplicate code was refactored out of the
- Font classes.
+2007-06-30
+ Split defaultParams into separate file rcdefaults (together with validation
+ code). Some heavy refactoring was necessary to do so, but the overall
+ behavior should be the same as before. - NN
- - MGD
+2007-06-27
+ Added MPLCONFIGDIR for the default location for mpl data and configuration.
+ useful for some apache installs where HOME is not writable. Tried to clean
+ up the logic in _get_config_dir to support non-writable HOME where are
+ writable HOME/.matplotlib already exists - JDH
-2007-07-19 completed numpification of most trivial cases - NN
+2007-06-27
+ Fixed locale bug reported at
+ \http://sourceforge.net/tracker/index.php?func=detail&aid=1744154&group_id=80706&atid=560720
+ by adding a cbook.unicode_safe function - JDH
-2007-07-19 converted non-numpy relicts throughout the code - NN
+2007-06-27
+ Applied Micheal's tk savefig bugfix described at
+ \http://sourceforge.net/tracker/index.php?func=detail&aid=1716732&group_id=80706&atid=560720
+ Thanks Michael!
-2007-07-19 replaced the Python code in numerix/ by a minimal wrapper around
- numpy that explicitly mentions all symbols that need to be
- addressed for further numpification - NN
+2007-06-27
+ Patch for get_py2exe_datafiles() to work with new directory layout. (Thanks
+ Tocer and also Werner Bruhin.) -ADS
-2007-07-18 make usetex respect changes to rcParams. texmanager used to
- only configure itself when it was created, now it
- reconfigures when rcParams are changed. Thank you Alexander
- Schmolck for contributing a patch - DSD
+2007-06-27
+ Added a scroll event to the mpl event handling system and implemented it
+ for backends GTK* -- other backend users/developers/maintainers, please add
+ support for your backend. - JDH
-2007-07-17 added validation to setting and changing rcParams - DSD
+2007-06-25
+ Changed default to clip=False in colors.Normalize; modified ColorbarBase
+ for easier colormap display - EF
-2007-07-17 bugfix segfault in transforms module. Thanks Ben North for
- the patch. - ADS
+2007-06-13
+ Added maskedarray option to rc, numerix - EF
-2007-07-16 clean up some code in ticker.ScalarFormatter, use unicode to
- render multiplication sign in offset ticklabel - DSD
+2007-06-11
+ Python 2.5 compatibility fix for mlab.py - EF
-2007-07-16 fixed a formatting bug in ticker.ScalarFormatter's scientific
- notation (10^0 was being rendered as 10 in some cases) - DSD
+2007-06-10
+ In matplotlibrc file, use 'dashed' | 'solid' instead of a pair of floats
+ for contour.negative_linestyle - EF
-2007-07-13 Add MPL_isfinite64() and MPL_isinf64() for testing
- doubles in (the now misnamed) MPL_isnan.h. - ADS
+2007-06-08
+ Allow plot and fill fmt string to be any mpl string colorspec - EF
-2007-07-13 The matplotlib._isnan module removed (use numpy.isnan) - ADS
+2007-06-08
+ Added gnuplot file plotfile function to pylab -- see
+ examples/plotfile_demo.py - JDH
-2007-07-13 Some minor cleanups in _transforms.cpp - ADS
+2007-06-07
+ Disable build of numarray and Numeric extensions for internal MPL use and
+ the numerix layer. - ADS
-2007-07-13 Removed the rest of the numerix extension code detritus,
- numpified axes.py, and cleaned up the imports in axes.py
- - JDH
+2007-06-07
+ Added csv2rec to matplotlib.mlab to support automatically converting csv
+ files to record arrays using type introspection, and turned on native
+ datetime support using the new units support in matplotlib.dates. See
+ examples/loadrec.py ! JDH
-2007-07-13 Added legend.loc as configurable option that could in
- future default to 'best'. - NN
+2007-06-07
+ Simplified internal code of _auto_legend_data - NN
-2007-07-12 Bugfixes in mlab.py to coerce inputs into numpy arrays. -ADS
+2007-06-04
+ Added labeldistance arg to Axes.pie to control the raidal distance of the
+ wedge labels - JDH
-2007-07-11 Added linespacing kwarg to text.Text - EF
-
-2007-07-11 Added code to store font paths in SVG files. - MGD
-
-2007-07-10 Store subset of TTF font as a Type 3 font in PDF files. - MGD
-
-2007-07-09 Store subset of TTF font as a Type 3 font in PS files. - MGD
-
-2007-07-09 Applied Paul's pick restructure pick and add pickers,
- sourceforge patch 1749829 - JDH
-
-
-2007-07-09 Applied Allan's draw_lines agg optimization. JDH
-
-
-2007-07-08 Applied Carl Worth's patch to fix cairo draw_arc - SC
-
-2007-07-07 fixed bug 1712099: xpdf distiller on windows - DSD
-
-2007-06-30 Applied patches to tkagg, gtk, and wx backends to reduce
- memory leakage. Patches supplied by Mike Droettboom;
- see tracker numbers 1745400, 1745406, 1745408.
- Also made unit/memleak_gui.py more flexible with
- command-line options. - EF
-
-2007-06-30 Split defaultParams into separate file rcdefaults (together with
- validation code). Some heavy refactoring was necessary to do so,
- but the overall behavior should be the same as before. - NN
-
-2007-06-27 Added MPLCONFIGDIR for the default location for mpl data
- and configuration. useful for some apache installs where
- HOME is not writable. Tried to clean up the logic in
- _get_config_dir to support non-writable HOME where are
- writable HOME/.matplotlib already exists - JDH
-
-2007-06-27 Fixed locale bug reported at
- \http://sourceforge.net/tracker/index.php?func=detail&aid=1744154&group_id=80706&atid=560720
- by adding a cbook.unicode_safe function - JDH
-
-2007-06-27 Applied Micheal's tk savefig bugfix described at
- \http://sourceforge.net/tracker/index.php?func=detail&aid=1716732&group_id=80706&atid=560720
- Thanks Michael!
-
-
-2007-06-27 Patch for get_py2exe_datafiles() to work with new directory
- layout. (Thanks Tocer and also Werner Bruhin.) -ADS
-
-
-2007-06-27 Added a scroll event to the mpl event handling system and
- implemented it for backends GTK* -- other backend
- users/developers/maintainers, please add support for your
- backend. - JDH
-
-2007-06-25 Changed default to clip=False in colors.Normalize;
- modified ColorbarBase for easier colormap display - EF
-
-2007-06-13 Added maskedarray option to rc, numerix - EF
-
-2007-06-11 Python 2.5 compatibility fix for mlab.py - EF
-
-2007-06-10 In matplotlibrc file, use 'dashed' | 'solid' instead
- of a pair of floats for contour.negative_linestyle - EF
-
-2007-06-08 Allow plot and fill fmt string to be any mpl string
- colorspec - EF
-
-2007-06-08 Added gnuplot file plotfile function to pylab -- see
- examples/plotfile_demo.py - JDH
-
-2007-06-07 Disable build of numarray and Numeric extensions for
- internal MPL use and the numerix layer. - ADS
-
-2007-06-07 Added csv2rec to matplotlib.mlab to support automatically
- converting csv files to record arrays using type
- introspection, and turned on native datetime support using
- the new units support in matplotlib.dates. See
- examples/loadrec.py ! JDH
-
-2007-06-07 Simplified internal code of _auto_legend_data - NN
-
-2007-06-04 Added labeldistance arg to Axes.pie to control the raidal
- distance of the wedge labels - JDH
-
-2007-06-03 Turned mathtext in SVG into single with multiple
- objects (easier to edit in inkscape). - NN
+2007-06-03
+ Turned mathtext in SVG into single with multiple objects
+ (easier to edit in inkscape). - NN
----------------------------
-2007-06-02 Released 0.90.1 at revision 3352
-
-2007-06-02 Display only meaningful labels when calling legend()
- without args. - NN
-
-2007-06-02 Have errorbar follow the color cycle even if line is not plotted.
- Suppress plotting of errorbar caps for capsize=0. - NN
-
-2007-06-02 Set markers to same alpha value as line. - NN
-
-2007-06-02 Fix mathtext position in svg backend. - NN
-
-2007-06-01 Deprecate Numeric and numarray for use as numerix. Props to
- Travis -- job well done. - ADS
-
-2007-05-18 Added LaTeX unicode support. Enable with the
- 'text.latex.unicode' rcParam. This requires the ucs and
- inputenc LaTeX packages. - ADS
-
-2007-04-23 Fixed some problems with polar -- added general polygon
- clipping to clip the lines and grids to the polar axes.
- Added support for set_rmax to easily change the maximum
- radial grid. Added support for polar legend - JDH
-
-2007-04-16 Added Figure.autofmt_xdate to handle adjusting the bottom
- and rotating the tick labels for date plots when the ticks
- often overlap - JDH
-
-2007-04-09 Beginnings of usetex support for pdf backend. -JKS
-
-2007-04-07 Fixed legend/LineCollection bug. Added label support
- to collections. - EF
-
-2007-04-06 Removed deprecated support for a float value as a gray-scale;
- now it must be a string, like '0.5'. Added alpha kwarg to
- ColorConverter.to_rgba_list. - EF
-
-2007-04-06 Fixed rotation of ellipses in pdf backend
- (sf bug #1690559) -JKS
-
-2007-04-04 More matshow tweaks; documentation updates; new method
- set_bounds() for formatters and locators. - EF
+2007-06-02
+ Released 0.90.1 at revision 3352
-2007-04-02 Fixed problem with imshow and matshow of integer arrays;
- fixed problems with changes to color autoscaling. - EF
+2007-06-02
+ Display only meaningful labels when calling legend() without args. - NN
-2007-04-01 Made image color autoscaling work correctly with
- a tracking colorbar; norm.autoscale now scales
- unconditionally, while norm.autoscale_None changes
- only None-valued vmin, vmax. - EF
+2007-06-02
+ Have errorbar follow the color cycle even if line is not plotted. Suppress
+ plotting of errorbar caps for capsize=0. - NN
-2007-03-31 Added a qt-based subplot-adjustment dialog - DSD
+2007-06-02
+ Set markers to same alpha value as line. - NN
-2007-03-30 Fixed a bug in backend_qt4, reported on mpl-dev - DSD
+2007-06-02
+ Fix mathtext position in svg backend. - NN
-2007-03-26 Removed colorbar_classic from figure.py; fixed bug in
- Figure.clf() in which _axobservers was not getting
- cleared. Modernization and cleanups. - EF
+2007-06-01
+ Deprecate Numeric and numarray for use as numerix. Props to Travis -- job
+ well done. - ADS
-2007-03-26 Refactored some of the units support -- units now live in
- the respective x and y Axis instances. See also
- API_CHANGES for some alterations to the conversion
- interface. JDH
+2007-05-18
+ Added LaTeX unicode support. Enable with the 'text.latex.unicode' rcParam.
+ This requires the ucs and inputenc LaTeX packages. - ADS
-2007-03-25 Fix masked array handling in quiver.py for numpy. (Numeric
- and numarray support for masked arrays is broken in other
- ways when using quiver. I didn't pursue that.) - ADS
+2007-04-23
+ Fixed some problems with polar -- added general polygon clipping to clip
+ the lines and grids to the polar axes. Added support for set_rmax to
+ easily change the maximum radial grid. Added support for polar legend -
+ JDH
-2007-03-23 Made font_manager.py close opened files. - JKS
+2007-04-16
+ Added Figure.autofmt_xdate to handle adjusting the bottom and rotating the
+ tick labels for date plots when the ticks often overlap - JDH
-2007-03-22 Made imshow default extent match matshow - EF
+2007-04-09
+ Beginnings of usetex support for pdf backend. -JKS
-2007-03-22 Some more niceties for xcorr -- a maxlags option, normed
- now works for xcorr as well as axorr, usevlines is
- supported, and a zero correlation hline is added. See
- examples/xcorr_demo.py. Thanks Sameer for the patch. -
- JDH
+2007-04-07
+ Fixed legend/LineCollection bug. Added label support to collections. - EF
-2007-03-21 Axes.vlines and Axes.hlines now create and returns a
- LineCollection, not a list of lines. This is much faster.
- The kwarg signature has changed, so consult the docs.
- Modified Axes.errorbar which uses vlines and hlines. See
- API_CHANGES; the return signature for these three functions
- is now different
+2007-04-06
+ Removed deprecated support for a float value as a gray-scale; now it must
+ be a string, like '0.5'. Added alpha kwarg to ColorConverter.to_rgba_list.
+ - EF
-2007-03-20 Refactored units support and added new examples - JDH
+2007-04-06
+ Fixed rotation of ellipses in pdf backend (sf bug #1690559) -JKS
-2007-03-19 Added Mike's units patch - JDH
+2007-04-04
+ More matshow tweaks; documentation updates; new method set_bounds() for
+ formatters and locators. - EF
-2007-03-18 Matshow as an Axes method; test version matshow1() in
- pylab; added 'integer' Boolean kwarg to MaxNLocator
- initializer to force ticks at integer locations. - EF
+2007-04-02
+ Fixed problem with imshow and matshow of integer arrays; fixed problems
+ with changes to color autoscaling. - EF
-2007-03-17 Preliminary support for clipping to paths agg - JDH
+2007-04-01
+ Made image color autoscaling work correctly with a tracking colorbar;
+ norm.autoscale now scales unconditionally, while norm.autoscale_None
+ changes only None-valued vmin, vmax. - EF
-2007-03-17 Text.set_text() accepts anything convertible with '%s' - EF
+2007-03-31
+ Added a qt-based subplot-adjustment dialog - DSD
-2007-03-14 Add masked-array support to hist. - EF
+2007-03-30
+ Fixed a bug in backend_qt4, reported on mpl-dev - DSD
-2007-03-03 Change barh to take a kwargs dict and pass it to bar.
- Fixes sf bug #1669506.
+2007-03-26
+ Removed colorbar_classic from figure.py; fixed bug in Figure.clf() in which
+ _axobservers was not getting cleared. Modernization and cleanups. - EF
-2007-03-02 Add rc parameter pdf.inheritcolor, which disables all
- color-setting operations in the pdf backend. The idea is
- that you include the resulting file in another program and
- set the colors (both stroke and fill color) there, so you
- can use the same pdf file for e.g., a paper and a
- presentation and have them in the surrounding color. You
- will probably not want to draw figure and axis frames in
- that case, since they would be filled in the same color. - JKS
+2007-03-26
+ Refactored some of the units support -- units now live in the respective x
+ and y Axis instances. See also API_CHANGES for some alterations to the
+ conversion interface. JDH
-2007-02-26 Prevent building _wxagg.so with broken Mac OS X wxPython. - ADS
+2007-03-25
+ Fix masked array handling in quiver.py for numpy. (Numeric and numarray
+ support for masked arrays is broken in other ways when using quiver. I
+ didn't pursue that.) - ADS
-2007-02-23 Require setuptools for Python 2.3 - ADS
+2007-03-23
+ Made font_manager.py close opened files. - JKS
-2007-02-22 WXAgg accelerator updates - KM
- WXAgg's C++ accelerator has been fixed to use the correct wxBitmap
- constructor.
+2007-03-22
+ Made imshow default extent match matshow - EF
- The backend has been updated to use new wxPython functionality to
- provide fast blit() animation without the C++ accelerator. This
- requires wxPython 2.8 or later. Previous versions of wxPython can
- use the C++ acclerator or the old pure Python routines.
+2007-03-22
+ Some more niceties for xcorr -- a maxlags option, normed now works for
+ xcorr as well as axorr, usevlines is supported, and a zero correlation
+ hline is added. See examples/xcorr_demo.py. Thanks Sameer for the patch.
+ - JDH
- setup.py no longer builds the C++ accelerator when wxPython >= 2.8
- is present.
+2007-03-21
+ Axes.vlines and Axes.hlines now create and returns a LineCollection, not a
+ list of lines. This is much faster. The kwarg signature has changed, so
+ consult the docs. Modified Axes.errorbar which uses vlines and hlines.
+ See API_CHANGES; the return signature for these three functions is now
+ different
- The blit() method is now faster regardless of which agg/wxPython
- conversion routines are used.
+2007-03-20
+ Refactored units support and added new examples - JDH
-2007-02-21 Applied the PDF backend patch by Nicolas Grilly.
- This impacts several files and directories in matplotlib:
+2007-03-19
+ Added Mike's units patch - JDH
- - Created the directory lib/matplotlib/mpl-data/fonts/pdfcorefonts,
- holding AFM files for the 14 PDF core fonts. These fonts are
- embedded in every PDF viewing application.
+2007-03-18
+ Matshow as an Axes method; test version matshow1() in pylab; added
+ 'integer' Boolean kwarg to MaxNLocator initializer to force ticks at
+ integer locations. - EF
- - setup.py: Added the directory pdfcorefonts to package_data.
+2007-03-17
+ Preliminary support for clipping to paths agg - JDH
- - lib/matplotlib/__init__.py: Added the default parameter
- 'pdf.use14corefonts'. When True, the PDF backend uses
- only the 14 PDF core fonts.
+2007-03-17
+ Text.set_text() accepts anything convertible with '%s' - EF
- - lib/matplotlib/afm.py: Added some keywords found in
- recent AFM files. Added a little workaround to handle
- Euro symbol.
+2007-03-14
+ Add masked-array support to hist. - EF
- - lib/matplotlib/fontmanager.py: Added support for the 14
- PDF core fonts. These fonts have a dedicated cache (file
- pdfcorefont.cache), not the same as for other AFM files
- (file .afmfont.cache). Also cleaned comments to conform
- to CODING_GUIDE.
+2007-03-03
+ Change barh to take a kwargs dict and pass it to bar. Fixes sf bug
+ #1669506.
- - lib/matplotlib/backends/backend_pdf.py:
- Added support for 14 PDF core fonts.
- Fixed some issues with incorrect character widths and
- encodings (works only for the most common encoding,
- WinAnsiEncoding, defined by the official PDF Reference).
- Removed parameter 'dpi' because it causes alignment issues.
+2007-03-02
+ Add rc parameter pdf.inheritcolor, which disables all color-setting
+ operations in the pdf backend. The idea is that you include the resulting
+ file in another program and set the colors (both stroke and fill color)
+ there, so you can use the same pdf file for e.g., a paper and a
+ presentation and have them in the surrounding color. You will probably not
+ want to draw figure and axis frames in that case, since they would be
+ filled in the same color. - JKS
- -JKS (patch by Nicolas Grilly)
+2007-02-26
+ Prevent building _wxagg.so with broken Mac OS X wxPython. - ADS
-2007-02-17 Changed ft2font.get_charmap, and updated all the files where
- get_charmap is mentioned - ES
+2007-02-23
+ Require setuptools for Python 2.3 - ADS
-2007-02-13 Added barcode demo- JDH
+2007-02-22
+ WXAgg accelerator updates - KM
-2007-02-13 Added binary colormap to cm - JDH
+ WXAgg's C++ accelerator has been fixed to use the correct wxBitmap
+ constructor.
-2007-02-13 Added twiny to pylab - JDH
+ The backend has been updated to use new wxPython functionality to provide
+ fast blit() animation without the C++ accelerator. This requires wxPython
+ 2.8 or later. Previous versions of wxPython can use the C++ acclerator or
+ the old pure Python routines.
-2007-02-12 Moved data files into lib/matplotlib so that setuptools'
- develop mode works. Re-organized the mpl-data layout so
- that this source structure is maintained in the
- installation. (i.e., the 'fonts' and 'images'
- sub-directories are maintained in site-packages.) Suggest
- removing site-packages/matplotlib/mpl-data and
- ~/.matplotlib/ttffont.cache before installing - ADS
+ setup.py no longer builds the C++ accelerator when wxPython >= 2.8 is
+ present.
-2007-02-07 Committed Rob Hetland's patch for qt4: remove
- references to text()/latin1(), plus some improvements
- to the toolbar layout - DSD
+ The blit() method is now faster regardless of which agg/wxPython conversion
+ routines are used.
----------------------------
-
-2007-02-06 Released 0.90.0 at revision 3003
-
-2007-01-22 Extended the new picker API to text, patches and patch
- collections. Added support for user customizable pick hit
- testing and attribute tagging of the PickEvent - Details
- and examples in examples/pick_event_demo.py - JDH
-
-2007-01-16 Begun work on a new pick API using the mpl event handling
- frameowrk. Artists will define their own pick method with
- a configurable epsilon tolerance and return pick attrs.
- All artists that meet the tolerance threshold will fire a
- PickEvent with artist dependent attrs; e.g., a Line2D can set
- the indices attribute that shows the indices into the line
- that are within epsilon of the pick point. See
- examples/pick_event_demo.py. The implementation of pick
- for the remaining Artists remains to be done, but the core
- infrastructure at the level of event handling is in place
- with a proof-of-concept implementation for Line2D - JDH
-
-2007-01-16 src/_image.cpp: update to use Py_ssize_t (for 64-bit systems).
- Use return value of fread() to prevent warning messages - SC.
-
-2007-01-15 src/_image.cpp: combine buffer_argb32() and buffer_bgra32() into
- a new method color_conv(format) - SC
-
-2007-01-14 backend_cairo.py: update draw_arc() so that
- examples/arctest.py looks correct - SC
-
-2007-01-12 backend_cairo.py: enable clipping. Update draw_image() so that
- examples/contour_demo.py looks correct - SC
-
-2007-01-12 backend_cairo.py: fix draw_image() so that examples/image_demo.py
- now looks correct - SC
-
-2007-01-11 Added Axes.xcorr and Axes.acorr to plot the cross
- correlation of x vs. y or the autocorrelation of x. pylab
- wrappers also provided. See examples/xcorr_demo.py - JDH
-
-2007-01-10 Added "Subplot.label_outer" method. It will set the
- visibility of the ticklabels so that yticklabels are only
- visible in the first column and xticklabels are only
- visible in the last row - JDH
-
-2007-01-02 Added additional kwarg documentation - JDH
-
-2006-12-28 Improved error message for nonpositive input to log
- transform; added log kwarg to bar, barh, and hist,
- and modified bar method to behave sensibly by default
- when the ordinate has a log scale. (This only works
- if the log scale is set before or by the call to bar,
- hence the utility of the log kwarg.) - EF
-
-2006-12-27 backend_cairo.py: update draw_image() and _draw_mathtext() to work
- with numpy - SC
-
-2006-12-20 Fixed xpdf dependency check, which was failing on windows.
- Removed ps2eps dependency check. - DSD
-
-2006-12-19 Added Tim Leslie's spectral patch - JDH
-
-2006-12-17 Added rc param 'axes.formatter.limits' to control
- the default threshold for switching to scientific
- notation. Added convenience method
- Axes.ticklabel_format() for turning scientific notation
- on or off on either or both axes. - EF
-
-2006-12-16 Added ability to turn control scientific notation
- in ScalarFormatter - EF
-
-2006-12-16 Enhanced boxplot to handle more flexible inputs - EF
-
-2006-12-13 Replaced calls to where() in colors.py with much faster
- clip() and putmask() calls; removed inappropriate
- uses of getmaskorNone (which should be needed only
- very rarely); all in response to profiling by
- David Cournapeau. Also fixed bugs in my 2-D
- array support from 12-09. - EF
-
-2006-12-09 Replaced spy and spy2 with the new spy that combines
- marker and image capabilities - EF
+2007-02-21
+ Applied the PDF backend patch by Nicolas Grilly. This impacts several
+ files and directories in matplotlib:
-2006-12-09 Added support for plotting 2-D arrays with plot:
- columns are plotted as in Matlab - EF
+ - Created the directory lib/matplotlib/mpl-data/fonts/pdfcorefonts, holding
+ AFM files for the 14 PDF core fonts. These fonts are embedded in every
+ PDF viewing application.
-2006-12-09 Added linewidth kwarg to bar and barh; fixed arg
- checking bugs - EF
+ - setup.py: Added the directory pdfcorefonts to package_data.
-2006-12-07 Made pcolormesh argument handling match pcolor;
- fixed kwarg handling problem noted by Pierre GM - EF
+ - lib/matplotlib/__init__.py: Added the default parameter
+ 'pdf.use14corefonts'. When True, the PDF backend uses only the 14 PDF
+ core fonts.
-2006-12-06 Made pcolor support vector X and/or Y instead of
- requiring 2-D arrays - EF
+ - lib/matplotlib/afm.py: Added some keywords found in recent AFM files.
+ Added a little workaround to handle Euro symbol.
-2006-12-05 Made the default Artist._transform None (rather than
- invoking identity_transform for each artist only to have it
- overridden later). Use artist.get_transform() rather than
- artist._transform, even in derived classes, so that the
- default transform will be created lazily as needed - JDH
+ - lib/matplotlib/fontmanager.py: Added support for the 14 PDF core fonts.
+ These fonts have a dedicated cache (file pdfcorefont.cache), not the same
+ as for other AFM files (file .afmfont.cache). Also cleaned comments to
+ conform to CODING_GUIDE.
-2006-12-03 Added LogNorm to colors.py as illustrated by
- examples/pcolor_log.py, based on suggestion by
- Jim McDonald. Colorbar modified to handle LogNorm.
- Norms have additional "inverse" method. - EF
+ - lib/matplotlib/backends/backend_pdf.py: Added support for 14 PDF core
+ fonts. Fixed some issues with incorrect character widths and encodings
+ (works only for the most common encoding, WinAnsiEncoding, defined by the
+ official PDF Reference). Removed parameter 'dpi' because it causes
+ alignment issues.
-2006-12-02 Changed class names in colors.py to match convention:
- normalize -> Normalize, no_norm -> NoNorm. Old names
- are still available.
- Changed __init__.py rc defaults to match those in
- matplotlibrc - EF
+ -JKS (patch by Nicolas Grilly)
-2006-11-22 Fixed bug in set_*lim that I had introduced on 11-15 - EF
+2007-02-17
+ Changed ft2font.get_charmap, and updated all the files where get_charmap is
+ mentioned - ES
-2006-11-22 Added examples/clippedline.py, which shows how to clip line
- data based on view limits -- it also changes the marker
- style when zoomed in - JDH
+2007-02-13
+ Added barcode demo- JDH
-2006-11-21 Some spy bug-fixes and added precision arg per Robert C's
- suggestion - JDH
+2007-02-13
+ Added binary colormap to cm - JDH
-2006-11-19 Added semi-automatic docstring generation detailing all the
- kwargs that functions take using the artist introspection
- tools; e.g., 'help text now details the scatter kwargs
- that control the Text properties - JDH
+2007-02-13
+ Added twiny to pylab - JDH
-2006-11-17 Removed obsolete scatter_classic, leaving a stub to
- raise NotImplementedError; same for pcolor_classic - EF
+2007-02-12
+ Moved data files into lib/matplotlib so that setuptools' develop mode
+ works. Re-organized the mpl-data layout so that this source structure is
+ maintained in the installation. (i.e., the 'fonts' and 'images'
+ sub-directories are maintained in site-packages.) Suggest removing
+ site-packages/matplotlib/mpl-data and ~/.matplotlib/ttffont.cache before
+ installing - ADS
-2006-11-15 Removed obsolete pcolor_classic - EF
+2007-02-07
+ Committed Rob Hetland's patch for qt4: remove references to
+ text()/latin1(), plus some improvements to the toolbar layout - DSD
-2006-11-15 Fixed 1588908 reported by Russel Owen; factored
- nonsingular method out of ticker.py, put it into
- transforms.py as a function, and used it in
- set_xlim and set_ylim. - EF
-
-2006-11-14 Applied patch 1591716 by Ulf Larssen to fix a bug in
- apply_aspect. Modified and applied patch
- 1594894 by mdehoon to fix bugs and improve
- formatting in lines.py. Applied patch 1573008
- by Greg Willden to make psd etc. plot full frequency
- range for complex inputs. - EF
-
-2006-11-14 Improved the ability of the colorbar to track
- changes in corresponding image, pcolor, or
- contourf. - EF
-
-2006-11-11 Fixed bug that broke Numeric compatibility;
- added support for alpha to colorbar. The
- alpha information is taken from the mappable
- object, not specified as a kwarg. - EF
-
-2006-11-05 Added broken_barh function for makring a sequence of
- horizontal bars broken by gaps -- see examples/broken_barh.py
-
-2006-11-05 Removed lineprops and markerprops from the Annotation code
- and replaced them with an arrow configurable with kwarg
- arrowprops. See examples/annotation_demo.py - JDH
-
-2006-11-02 Fixed a pylab subplot bug that was causing axes to be
- deleted with hspace or wspace equals zero in
- subplots_adjust - JDH
+---------------------------
-2006-10-31 Applied axes3d patch 1587359
- \http://sourceforge.net/tracker/index.php?func=detail&aid=1587359&group_id=80706&atid=560722
- JDH
+2007-02-06
+ Released 0.90.0 at revision 3003
+
+2007-01-22
+ Extended the new picker API to text, patches and patch collections. Added
+ support for user customizable pick hit testing and attribute tagging of the
+ PickEvent - Details and examples in examples/pick_event_demo.py - JDH
+
+2007-01-16
+ Begun work on a new pick API using the mpl event handling frameowrk.
+ Artists will define their own pick method with a configurable epsilon
+ tolerance and return pick attrs. All artists that meet the tolerance
+ threshold will fire a PickEvent with artist dependent attrs; e.g., a Line2D
+ can set the indices attribute that shows the indices into the line that are
+ within epsilon of the pick point. See examples/pick_event_demo.py. The
+ implementation of pick for the remaining Artists remains to be done, but
+ the core infrastructure at the level of event handling is in place with a
+ proof-of-concept implementation for Line2D - JDH
+
+2007-01-16
+ src/_image.cpp: update to use Py_ssize_t (for 64-bit systems). Use return
+ value of fread() to prevent warning messages - SC.
+
+2007-01-15
+ src/_image.cpp: combine buffer_argb32() and buffer_bgra32() into a new
+ method color_conv(format) - SC
+
+2007-01-14
+ backend_cairo.py: update draw_arc() so that examples/arctest.py looks
+ correct - SC
+
+2007-01-12
+ backend_cairo.py: enable clipping. Update draw_image() so that
+ examples/contour_demo.py looks correct - SC
+
+2007-01-12
+ backend_cairo.py: fix draw_image() so that examples/image_demo.py now looks
+ correct - SC
+
+2007-01-11
+ Added Axes.xcorr and Axes.acorr to plot the cross correlation of x vs. y or
+ the autocorrelation of x. pylab wrappers also provided. See
+ examples/xcorr_demo.py - JDH
+
+2007-01-10
+ Added "Subplot.label_outer" method. It will set the visibility of the
+ ticklabels so that yticklabels are only visible in the first column and
+ xticklabels are only visible in the last row - JDH
+
+2007-01-02
+ Added additional kwarg documentation - JDH
+
+2006-12-28
+ Improved error message for nonpositive input to log transform; added log
+ kwarg to bar, barh, and hist, and modified bar method to behave sensibly by
+ default when the ordinate has a log scale. (This only works if the log
+ scale is set before or by the call to bar, hence the utility of the log
+ kwarg.) - EF
+
+2006-12-27
+ backend_cairo.py: update draw_image() and _draw_mathtext() to work with
+ numpy - SC
+
+2006-12-20
+ Fixed xpdf dependency check, which was failing on windows. Removed ps2eps
+ dependency check. - DSD
+
+2006-12-19
+ Added Tim Leslie's spectral patch - JDH
+
+2006-12-17
+ Added rc param 'axes.formatter.limits' to control the default threshold for
+ switching to scientific notation. Added convenience method
+ Axes.ticklabel_format() for turning scientific notation on or off on either
+ or both axes. - EF
+
+2006-12-16
+ Added ability to turn control scientific notation in ScalarFormatter - EF
+
+2006-12-16
+ Enhanced boxplot to handle more flexible inputs - EF
+
+2006-12-13
+ Replaced calls to where() in colors.py with much faster clip() and
+ putmask() calls; removed inappropriate uses of getmaskorNone (which should
+ be needed only very rarely); all in response to profiling by David
+ Cournapeau. Also fixed bugs in my 2-D array support from 12-09. - EF
+
+2006-12-09
+ Replaced spy and spy2 with the new spy that combines marker and image
+ capabilities - EF
+
+2006-12-09
+ Added support for plotting 2-D arrays with plot: columns are plotted as in
+ Matlab - EF
+
+2006-12-09
+ Added linewidth kwarg to bar and barh; fixed arg checking bugs - EF
+
+2006-12-07
+ Made pcolormesh argument handling match pcolor; fixed kwarg handling
+ problem noted by Pierre GM - EF
+
+2006-12-06
+ Made pcolor support vector X and/or Y instead of requiring 2-D arrays - EF
+
+2006-12-05
+ Made the default Artist._transform None (rather than invoking
+ identity_transform for each artist only to have it overridden later). Use
+ artist.get_transform() rather than artist._transform, even in derived
+ classes, so that the default transform will be created lazily as needed -
+ JDH
+
+2006-12-03
+ Added LogNorm to colors.py as illustrated by examples/pcolor_log.py, based
+ on suggestion by Jim McDonald. Colorbar modified to handle LogNorm. Norms
+ have additional "inverse" method. - EF
+
+2006-12-02
+ Changed class names in colors.py to match convention: normalize ->
+ Normalize, no_norm -> NoNorm. Old names are still available. Changed
+ __init__.py rc defaults to match those in matplotlibrc - EF
+
+2006-11-22
+ Fixed bug in set_*lim that I had introduced on 11-15 - EF
+
+2006-11-22
+ Added examples/clippedline.py, which shows how to clip line data based on
+ view limits -- it also changes the marker style when zoomed in - JDH
+
+2006-11-21
+ Some spy bug-fixes and added precision arg per Robert C's suggestion - JDH
+
+2006-11-19
+ Added semi-automatic docstring generation detailing all the kwargs that
+ functions take using the artist introspection tools; e.g., 'help text now
+ details the scatter kwargs that control the Text properties - JDH
+
+2006-11-17
+ Removed obsolete scatter_classic, leaving a stub to raise
+ NotImplementedError; same for pcolor_classic - EF
+
+2006-11-15
+ Removed obsolete pcolor_classic - EF
+
+2006-11-15
+ Fixed 1588908 reported by Russel Owen; factored nonsingular method out of
+ ticker.py, put it into transforms.py as a function, and used it in set_xlim
+ and set_ylim. - EF
+
+2006-11-14
+ Applied patch 1591716 by Ulf Larssen to fix a bug in apply_aspect.
+ Modified and applied patch 1594894 by mdehoon to fix bugs and improve
+ formatting in lines.py. Applied patch 1573008 by Greg Willden to make psd
+ etc. plot full frequency range for complex inputs. - EF
+
+2006-11-14
+ Improved the ability of the colorbar to track changes in corresponding
+ image, pcolor, or contourf. - EF
+
+2006-11-11
+ Fixed bug that broke Numeric compatibility; added support for alpha to
+ colorbar. The alpha information is taken from the mappable object, not
+ specified as a kwarg. - EF
+
+2006-11-05
+ Added broken_barh function for makring a sequence of horizontal bars broken
+ by gaps -- see examples/broken_barh.py
+
+2006-11-05
+ Removed lineprops and markerprops from the Annotation code and replaced
+ them with an arrow configurable with kwarg arrowprops. See
+ examples/annotation_demo.py - JDH
+
+2006-11-02
+ Fixed a pylab subplot bug that was causing axes to be deleted with hspace
+ or wspace equals zero in subplots_adjust - JDH
+
+2006-10-31
+ Applied axes3d patch 1587359
+ \http://sourceforge.net/tracker/index.php?func=detail&aid=1587359&group_id=80706&atid=560722
+ JDH
-------------------------
-2006-10-26 Released 0.87.7 at revision 2835
+2006-10-26
+ Released 0.87.7 at revision 2835
+
+2006-10-25
+ Made "tiny" kwarg in Locator.nonsingular much smaller - EF
-2006-10-25 Made "tiny" kwarg in Locator.nonsingular much smaller - EF
+2006-10-17
+ Closed sf bug 1562496 update line props dash/solid/cap/join styles - JDH
-2006-10-17 Closed sf bug 1562496 update line props dash/solid/cap/join
- styles - JDH
+2006-10-17
+ Complete overhaul of the annotations API and example code - See
+ matplotlib.text.Annotation and examples/annotation_demo.py JDH
-2006-10-17 Complete overhaul of the annotations API and example code -
- See matplotlib.text.Annotation and
- examples/annotation_demo.py JDH
+2006-10-12
+ Committed Manuel Metz's StarPolygon code and examples/scatter_star_poly.py
+ - JDH
-2006-10-12 Committed Manuel Metz's StarPolygon code and
- examples/scatter_star_poly.py - JDH
+2006-10-11
+ commented out all default values in matplotlibrc.template Default values
+ should generally be taken from defaultParam in __init__.py - the file
+ matplotlib should only contain those values that the user wants to
+ explicitly change from the default. (see thread "marker color handling" on
+ matplotlib-devel)
+2006-10-10
+ Changed default comment character for load to '#' - JDH
-2006-10-11 commented out all default values in matplotlibrc.template
- Default values should generally be taken from defaultParam in
- __init__.py - the file matplotlib should only contain those values
- that the user wants to explicitly change from the default.
- (see thread "marker color handling" on matplotlib-devel)
+2006-10-10
+ deactivated rcfile-configurability of markerfacecolor and markeredgecolor.
+ Both are now hardcoded to the special value 'auto' to follow the line
+ color. Configurability at run-time (using function arguments) remains
+ functional. - NN
-2006-10-10 Changed default comment character for load to '#' - JDH
+2006-10-07
+ introduced dummy argument magnification=1.0 to FigImage.make_image to
+ satisfy unit test figimage_demo.py The argument is not yet handled
+ correctly, which should only show up when using non-standard DPI settings
+ in PS backend, introduced by patch #1562394. - NN
-2006-10-10 deactivated rcfile-configurability of markerfacecolor
- and markeredgecolor. Both are now hardcoded to the special value
- 'auto' to follow the line color. Configurability at run-time
- (using function arguments) remains functional. - NN
+2006-10-06
+ add backend-agnostic example: simple3d.py - NN
-2006-10-07 introduced dummy argument magnification=1.0 to
- FigImage.make_image to satisfy unit test figimage_demo.py
- The argument is not yet handled correctly, which should only
- show up when using non-standard DPI settings in PS backend,
- introduced by patch #1562394. - NN
+2006-09-29
+ fix line-breaking for SVG-inline images (purely cosmetic) - NN
-2006-10-06 add backend-agnostic example: simple3d.py - NN
+2006-09-29
+ reworked set_linestyle and set_marker markeredgecolor and markerfacecolor
+ now default to a special value "auto" that keeps the color in sync with the
+ line color further, the intelligence of axes.plot is cleaned up, improved
+ and simplified. Complete compatibility cannot be guaranteed, but the new
+ behavior should be much more predictable (see patch #1104615 for details) -
+ NN
-2006-09-29 fix line-breaking for SVG-inline images (purely cosmetic) - NN
+2006-09-29
+ changed implementation of clip-path in SVG to work around a limitation in
+ inkscape - NN
-2006-09-29 reworked set_linestyle and set_marker
- markeredgecolor and markerfacecolor now default to
- a special value "auto" that keeps the color in sync with
- the line color
- further, the intelligence of axes.plot is cleaned up,
- improved and simplified. Complete compatibility cannot be
- guaranteed, but the new behavior should be much more predictable
- (see patch #1104615 for details) - NN
+2006-09-29
+ added two options to matplotlibrc:
-2006-09-29 changed implementation of clip-path in SVG to work around a
- limitation in inkscape - NN
+ - svg.image_inline
+ - svg.image_noscale
-2006-09-29 added two options to matplotlibrc:
- svg.image_inline
- svg.image_noscale
- see patch #1533010 for details - NN
+ see patch #1533010 for details - NN
-2006-09-29 axes.py: cleaned up kwargs checking - NN
+2006-09-29
+ axes.py: cleaned up kwargs checking - NN
-2006-09-29 setup.py: cleaned up setup logic - NN
+2006-09-29
+ setup.py: cleaned up setup logic - NN
-2006-09-29 setup.py: check for required pygtk versions, fixes bug #1460783 - SC
+2006-09-29
+ setup.py: check for required pygtk versions, fixes bug #1460783 - SC
---------------------------------
-2006-09-27 Released 0.87.6 at revision 2783
+2006-09-27
+ Released 0.87.6 at revision 2783
-2006-09-24 Added line pointers to the Annotation code, and a pylab
- interface. See matplotlib.text.Annotation,
- examples/annotation_demo.py and
- examples/annotation_demo_pylab.py - JDH
+2006-09-24
+ Added line pointers to the Annotation code, and a pylab interface. See
+ matplotlib.text.Annotation, examples/annotation_demo.py and
+ examples/annotation_demo_pylab.py - JDH
-2006-09-18 mathtext2.py: The SVG backend now supports the same things that
- the AGG backend does. Fixed some bugs with rendering, and out of
- bounds errors in the AGG backend - ES. Changed the return values
- of math_parse_s_ft2font_svg to support lines (fractions etc.)
+2006-09-18
+ mathtext2.py: The SVG backend now supports the same things that the AGG
+ backend does. Fixed some bugs with rendering, and out of bounds errors in
+ the AGG backend - ES. Changed the return values of math_parse_s_ft2font_svg
+ to support lines (fractions etc.)
-2006-09-17 Added an Annotation class to facilitate annotating objects
- and an examples file examples/annotation_demo.py. I want
- to add dash support as in TextWithDash, but haven't decided
- yet whether inheriting from TextWithDash is the right base
- class or if another approach is needed - JDH
+2006-09-17
+ Added an Annotation class to facilitate annotating objects and an examples
+ file examples/annotation_demo.py. I want to add dash support as in
+ TextWithDash, but haven't decided yet whether inheriting from TextWithDash
+ is the right base class or if another approach is needed - JDH
------------------------------
-2006-09-05 Released 0.87.5 at revision 2761
+2006-09-05
+ Released 0.87.5 at revision 2761
-2006-09-04 Added nxutils for some numeric add-on extension code --
- specifically a better/more efficient inside polygon tester (see
- unit/inside_poly_*.py) - JDH
+2006-09-04
+ Added nxutils for some numeric add-on extension code -- specifically a
+ better/more efficient inside polygon tester (see unit/inside_poly_*.py) -
+ JDH
-2006-09-04 Made bitstream fonts the rc default - JDH
+2006-09-04
+ Made bitstream fonts the rc default - JDH
-2006-08-31 Fixed alpha-handling bug in ColorConverter, affecting
- collections in general and contour/contourf in
- particular. - EF
+2006-08-31
+ Fixed alpha-handling bug in ColorConverter, affecting collections in
+ general and contour/contourf in particular. - EF
-2006-08-30 ft2font.cpp: Added draw_rect_filled method (now used by mathtext2
- to draw the fraction bar) to FT2Font - ES
+2006-08-30
+ ft2font.cpp: Added draw_rect_filled method (now used by mathtext2 to draw
+ the fraction bar) to FT2Font - ES
-2006-08-29 setupext.py: wrap calls to tk.getvar() with str(). On some
- systems, getvar returns a Tcl_Obj instead of a string - DSD
+2006-08-29
+ setupext.py: wrap calls to tk.getvar() with str(). On some systems, getvar
+ returns a Tcl_Obj instead of a string - DSD
-2006-08-28 mathtext2.py: Sub/superscripts can now be complex (i.e.
- fractions etc.). The demo is also updated - ES
+2006-08-28
+ mathtext2.py: Sub/superscripts can now be complex (i.e. fractions etc.).
+ The demo is also updated - ES
-2006-08-28 font_manager.py: Added /usr/local/share/fonts to list of
- X11 font directories - DSD
+2006-08-28
+ font_manager.py: Added /usr/local/share/fonts to list of X11 font
+ directories - DSD
-2006-08-28 mahtext2.py: Initial support for complex fractions. Also,
- rendering is now completely separated from parsing. The
- sub/superscripts now work better.
- Updated the mathtext2_demo.py - ES
+2006-08-28
+ mathtext2.py: Initial support for complex fractions. Also, rendering is now
+ completely separated from parsing. The sub/superscripts now work better.
+ Updated the mathtext2_demo.py - ES
-2006-08-27 qt backends: don't create a QApplication when backend is
- imported, do it when the FigureCanvasQt is created. Simplifies
- applications where mpl is embedded in qt. Updated
- embedding_in_qt* examples - DSD
+2006-08-27
+ qt backends: don't create a QApplication when backend is imported, do it
+ when the FigureCanvasQt is created. Simplifies applications where mpl is
+ embedded in qt. Updated embedding_in_qt* examples - DSD
-2006-08-27 mahtext2.py: Now the fonts are searched in the OS font dir and
- in the mpl-data dir. Also env is not a dict anymore. - ES
+2006-08-27
+ mathtext2.py: Now the fonts are searched in the OS font dir and in the
+ mpl-data dir. Also env is not a dict anymore. - ES
-2006-08-26 minor changes to __init__.py, mathtex2_demo.py. Added matplotlibrc
- key "mathtext.mathtext2" (removed the key "mathtext2") - ES
+2006-08-26
+ minor changes to __init__.py, mathtex2_demo.py. Added matplotlibrc key
+ "mathtext.mathtext2" (removed the key "mathtext2") - ES
-2006-08-21 mathtext2.py: Initial support for fractions
- Updated the mathtext2_demo.py
- _mathtext_data.py: removed "\" from the unicode dicts
- mathtext.py: Minor modification (because of _mathtext_data.py)- ES
+2006-08-21
+ mathtext2.py: Initial support for fractions Updated the mathtext2_demo.py
+ _mathtext_data.py: removed "\" from the unicode dicts mathtext.py: Minor
+ modification (because of _mathtext_data.py)- ES
-2006-08-20 Added mathtext2.py: Replacement for mathtext.py. Supports _ ^,
- \rm, \cal etc., \sin, \cos etc., unicode, recursive nestings,
- inline math mode. The only backend currently supported is Agg
- __init__.py: added new rc params for mathtext2
- added mathtext2_demo.py example - ES
+2006-08-20
+ Added mathtext2.py: Replacement for mathtext.py. Supports _ ^, \rm, \cal
+ etc., \sin, \cos etc., unicode, recursive nestings, inline math mode. The
+ only backend currently supported is Agg __init__.py: added new rc params
+ for mathtext2 added mathtext2_demo.py example - ES
-2006-08-19 Added embedding_in_qt4.py example - DSD
+2006-08-19
+ Added embedding_in_qt4.py example - DSD
-2006-08-11 Added scale free Ellipse patch for Agg - CM
+2006-08-11
+ Added scale free Ellipse patch for Agg - CM
-2006-08-10 Added converters to and from julian dates to matplotlib.dates
- (num2julian and julian2num) - JDH
+2006-08-10
+ Added converters to and from julian dates to matplotlib.dates (num2julian
+ and julian2num) - JDH
-2006-08-08 Fixed widget locking so multiple widgets could share the
- event handling - JDH
+2006-08-08
+ Fixed widget locking so multiple widgets could share the event handling -
+ JDH
-2006-08-07 Added scale free Ellipse patch to SVG and PS - CM
+2006-08-07
+ Added scale free Ellipse patch to SVG and PS - CM
-2006-08-05 Re-organized imports in numerix for numpy 1.0b2 -- TEO
+2006-08-05
+ Re-organized imports in numerix for numpy 1.0b2 -- TEO
-2006-08-04 Added draw_markers to PDF backend. - JKS
+2006-08-04
+ Added draw_markers to PDF backend. - JKS
-2006-08-01 Fixed a bug in postscript's rendering of dashed lines - DSD
+2006-08-01
+ Fixed a bug in postscript's rendering of dashed lines - DSD
-2006-08-01 figure.py: savefig() update docstring to add support for 'format'
- argument.
- backend_cairo.py: print_figure() add support 'format' argument. - SC
+2006-08-01
+ figure.py: savefig() update docstring to add support for 'format' argument.
+ backend_cairo.py: print_figure() add support 'format' argument. - SC
-2006-07-31 Don't let postscript's xpdf distiller compress images - DSD
+2006-07-31
+ Don't let postscript's xpdf distiller compress images - DSD
-2006-07-31 Added shallowcopy() methods to all Transformations;
- removed copy_bbox_transform and copy_bbox_transform_shallow
- from transforms.py;
- added offset_copy() function to transforms.py to
- facilitate positioning artists with offsets.
- See examples/transoffset.py. - EF
+2006-07-31
+ Added shallowcopy() methods to all Transformations; removed
+ copy_bbox_transform and copy_bbox_transform_shallow from transforms.py;
+ added offset_copy() function to transforms.py to facilitate positioning
+ artists with offsets. See examples/transoffset.py. - EF
-2006-07-31 Don't let postscript's xpdf distiller compress images - DSD
+2006-07-31
+ Don't let postscript's xpdf distiller compress images - DSD
-2006-07-29 Fixed numerix polygon bug reported by Nick Fotopoulos.
- Added inverse_numerix_xy() transform method.
- Made autoscale_view() preserve axis direction
- (e.g., increasing down).- EF
+2006-07-29
+ Fixed numerix polygon bug reported by Nick Fotopoulos. Added
+ inverse_numerix_xy() transform method. Made autoscale_view() preserve axis
+ direction (e.g., increasing down).- EF
-2006-07-28 Added shallow bbox copy routine for transforms -- mainly
- useful for copying transforms to apply offset to. - JDH
+2006-07-28
+ Added shallow bbox copy routine for transforms -- mainly useful for copying
+ transforms to apply offset to. - JDH
-2006-07-28 Added resize method to FigureManager class
- for Qt and Gtk backend - CM
+2006-07-28
+ Added resize method to FigureManager class for Qt and Gtk backend - CM
-2006-07-28 Added subplots_adjust button to Qt backend - CM
+2006-07-28
+ Added subplots_adjust button to Qt backend - CM
-2006-07-26 Use numerix more in collections.
- Quiver now handles masked arrays. - EF
+2006-07-26
+ Use numerix more in collections. Quiver now handles masked arrays. - EF
-2006-07-22 Fixed bug #1209354 - DSD
+2006-07-22
+ Fixed bug #1209354 - DSD
-2006-07-22 make scatter() work with the kwarg "color". Closes bug
- 1285750 - DSD
+2006-07-22
+ make scatter() work with the kwarg "color". Closes bug 1285750 - DSD
-2006-07-20 backend_cairo.py: require pycairo 1.2.0.
- print_figure() update to output SVG using cairo.
+2006-07-20
+ backend_cairo.py: require pycairo 1.2.0. print_figure() update to output
+ SVG using cairo.
-2006-07-19 Added blitting for Qt4Agg - CM
+2006-07-19
+ Added blitting for Qt4Agg - CM
-2006-07-19 Added lasso widget and example examples/lasso_demo.py - JDH
+2006-07-19
+ Added lasso widget and example examples/lasso_demo.py - JDH
-2006-07-18 Added blitting for QtAgg backend - CM
+2006-07-18
+ Added blitting for QtAgg backend - CM
-2006-07-17 Fixed bug #1523585: skip nans in semilog plots - DSD
+2006-07-17
+ Fixed bug #1523585: skip nans in semilog plots - DSD
-2006-07-12 Add support to render the scientific notation label
- over the right-side y-axis - DSD
+2006-07-12
+ Add support to render the scientific notation label over the right-side
+ y-axis - DSD
------------------------------
-2006-07-11 Released 0.87.4 at revision 2558
-
-2006-07-07 Fixed a usetex bug with older versions of latex - DSD
-
-2006-07-07 Add compatibility for NumPy 1.0 - TEO
-
-2006-06-29 Added a Qt4Agg backend. Thank you James Amundson - DSD
-
-2006-06-26 Fixed a usetex bug. On Windows, usetex will process
- postscript output in the current directory rather than
- in a temp directory. This is due to the use of spaces
- and tildes in windows paths, which cause problems with
- latex. The subprocess module is no longer used. - DSD
-
-2006-06-22 Various changes to bar(), barh(), and hist().
- Added 'edgecolor' keyword arg to bar() and barh().
- The x and y args in barh() have been renamed to width
- and bottom respectively, and their order has been swapped
- to maintain a (position, value) order ala matlab. left,
- height, width and bottom args can now all be scalars or
- sequences. barh() now defaults to edge alignment instead
- of center alignment. Added a keyword arg 'align' to bar(),
- barh() and hist() that controls between edge or center bar
- alignment. Fixed ignoring the rcParams['patch.facecolor']
- for bar color in bar() and barh(). Fixed ignoring the
- rcParams['lines.color'] for error bar color in bar()
- and barh(). Fixed a bug where patches would be cleared
- when error bars were plotted if rcParams['axes.hold']
- was False. - MAS
-
-2006-06-22 Added support for numerix 2-D arrays as alternatives to
- a sequence of (x,y) tuples for specifying paths in
- collections, quiver, contour, pcolor, transforms.
- Fixed contour bug involving setting limits for
- colormapping. Added numpy-style all() to numerix. - EF
-
-2006-06-20 Added custom FigureClass hook to pylab interface - see
- examples/custom_figure_class.py
-
-2006-06-16 Added colormaps from gist (gist_earth, gist_stern,
- gist_rainbow, gist_gray, gist_yarg, gist_heat, gist_ncar) - JW
-
-2006-06-16 Added a pointer to parent in figure canvas so you can
- access the container with fig.canvas.manager. Useful if
- you want to set the window title, e.g., in gtk
- fig.canvas.manager.window.set_title, though a GUI neutral
- method would be preferable JDH
-
-2006-06-16 Fixed colorbar.py to handle indexed colors (i.e.,
- norm = no_norm()) by centering each colored region
- on its index. - EF
-
-2006-06-15 Added scalex and scaley to Axes.autoscale_view to support
- selective autoscaling just the x or y axis, and supported
- these command in plot so you can say plot(something,
- scaley=False) and just the x axis will be autoscaled.
- Modified axvline and axhline to support this, so for
- example axvline will no longer autoscale the y axis. JDH
-
-2006-06-13 Fix so numpy updates are backward compatible - TEO
-
-2006-06-12 Updated numerix to handle numpy restructuring of
- oldnumeric - TEO
-
-2006-06-12 Updated numerix.fft to handle numpy restructuring
- Added ImportError to numerix.linear_algebra for numpy -TEO
-
-2006-06-11 Added quiverkey command to pylab and Axes, using
- QuiverKey class in quiver.py. Changed pylab and Axes
- to use quiver2 if possible, but drop back to the
- newly-renamed quiver_classic if necessary. Modified
- examples/quiver_demo.py to illustrate the new quiver
- and quiverkey. Changed LineCollection implementation
- slightly to improve compatibility with PolyCollection. - EF
-
-2006-06-11 Fixed a usetex bug for windows, running latex on files
- with spaces in their names or paths was failing - DSD
-
-2006-06-09 Made additions to numerix, changes to quiver to make it
- work with all numeric flavors. - EF
-
-2006-06-09 Added quiver2 function to pylab and method to axes,
- with implementation via a Quiver class in quiver.py.
- quiver2 will replace quiver before the next release;
- it is placed alongside it initially to facilitate
- testing and transition. See also
- examples/quiver2_demo.py. - EF
-
-2006-06-08 Minor bug fix to make ticker.py draw proper minus signs
- with usetex - DSD
+2006-07-11
+ Released 0.87.4 at revision 2558
+
+2006-07-07
+ Fixed a usetex bug with older versions of latex - DSD
+
+2006-07-07
+ Add compatibility for NumPy 1.0 - TEO
+
+2006-06-29
+ Added a Qt4Agg backend. Thank you James Amundson - DSD
+
+2006-06-26
+ Fixed a usetex bug. On Windows, usetex will process postscript output in
+ the current directory rather than in a temp directory. This is due to the
+ use of spaces and tildes in windows paths, which cause problems with latex.
+ The subprocess module is no longer used. - DSD
+
+2006-06-22
+ Various changes to bar(), barh(), and hist(). Added 'edgecolor' keyword
+ arg to bar() and barh(). The x and y args in barh() have been renamed to
+ width and bottom respectively, and their order has been swapped to maintain
+ a (position, value) order ala matlab. left, height, width and bottom args
+ can now all be scalars or sequences. barh() now defaults to edge alignment
+ instead of center alignment. Added a keyword arg 'align' to bar(), barh()
+ and hist() that controls between edge or center bar alignment. Fixed
+ ignoring the rcParams['patch.facecolor'] for bar color in bar() and barh().
+ Fixed ignoring the rcParams['lines.color'] for error bar color in bar() and
+ barh(). Fixed a bug where patches would be cleared when error bars were
+ plotted if rcParams['axes.hold'] was False. - MAS
+
+2006-06-22
+ Added support for numerix 2-D arrays as alternatives to a sequence of (x,y)
+ tuples for specifying paths in collections, quiver, contour, pcolor,
+ transforms. Fixed contour bug involving setting limits for colormapping.
+ Added numpy-style all() to numerix. - EF
+
+2006-06-20
+ Added custom FigureClass hook to pylab interface - see
+ examples/custom_figure_class.py
+
+2006-06-16
+ Added colormaps from gist (gist_earth, gist_stern, gist_rainbow, gist_gray,
+ gist_yarg, gist_heat, gist_ncar) - JW
+
+2006-06-16
+ Added a pointer to parent in figure canvas so you can access the container
+ with fig.canvas.manager. Useful if you want to set the window title, e.g.,
+ in gtk fig.canvas.manager.window.set_title, though a GUI neutral method
+ would be preferable JDH
+
+2006-06-16
+ Fixed colorbar.py to handle indexed colors (i.e., norm = no_norm()) by
+ centering each colored region on its index. - EF
+
+2006-06-15
+ Added scalex and scaley to Axes.autoscale_view to support selective
+ autoscaling just the x or y axis, and supported these command in plot so
+ you can say plot(something, scaley=False) and just the x axis will be
+ autoscaled. Modified axvline and axhline to support this, so for example
+ axvline will no longer autoscale the y axis. JDH
+
+2006-06-13
+ Fix so numpy updates are backward compatible - TEO
+
+2006-06-12
+ Updated numerix to handle numpy restructuring of oldnumeric - TEO
+
+2006-06-12
+ Updated numerix.fft to handle numpy restructuring Added ImportError to
+ numerix.linear_algebra for numpy -TEO
+
+2006-06-11
+ Added quiverkey command to pylab and Axes, using QuiverKey class in
+ quiver.py. Changed pylab and Axes to use quiver2 if possible, but drop
+ back to the newly-renamed quiver_classic if necessary. Modified
+ examples/quiver_demo.py to illustrate the new quiver and quiverkey.
+ Changed LineCollection implementation slightly to improve compatibility
+ with PolyCollection. - EF
+
+2006-06-11
+ Fixed a usetex bug for windows, running latex on files with spaces in their
+ names or paths was failing - DSD
+
+2006-06-09
+ Made additions to numerix, changes to quiver to make it work with all
+ numeric flavors. - EF
+
+2006-06-09
+ Added quiver2 function to pylab and method to axes, with implementation via
+ a Quiver class in quiver.py. quiver2 will replace quiver before the next
+ release; it is placed alongside it initially to facilitate testing and
+ transition. See also examples/quiver2_demo.py. - EF
+
+2006-06-08
+ Minor bug fix to make ticker.py draw proper minus signs with usetex - DSD
-----------------------
-2006-06-06 Released 0.87.3 at revision 2432
-
-2006-05-30 More partial support for polygons with outline or fill,
- but not both. Made LineCollection inherit from
- ScalarMappable. - EF
+2006-06-06
+ Released 0.87.3 at revision 2432
-2006-05-29 Yet another revision of aspect-ratio handling. - EF
+2006-05-30
+ More partial support for polygons with outline or fill, but not both. Made
+ LineCollection inherit from ScalarMappable. - EF
-2006-05-27 Committed a patch to prevent stroking zero-width lines in
- the svg backend - DSD
+2006-05-29
+ Yet another revision of aspect-ratio handling. - EF
-2006-05-24 Fixed colorbar positioning bug identified by Helge
- Avlesen, and improved the algorithm; added a 'pad'
- kwarg to control the spacing between colorbar and
- parent axes. - EF
+2006-05-27
+ Committed a patch to prevent stroking zero-width lines in the svg backend -
+ DSD
-2006-05-23 Changed color handling so that collection initializers
- can take any mpl color arg or sequence of args; deprecated
- float as grayscale, replaced by string representation of
- float. - EF
+2006-05-24
+ Fixed colorbar positioning bug identified by Helge Avlesen, and improved
+ the algorithm; added a 'pad' kwarg to control the spacing between colorbar
+ and parent axes. - EF
-2006-05-19 Fixed bug: plot failed if all points were masked - EF
+2006-05-23
+ Changed color handling so that collection initializers can take any mpl
+ color arg or sequence of args; deprecated float as grayscale, replaced by
+ string representation of float. - EF
-2006-05-19 Added custom symbol option to scatter - JDH
+2006-05-19
+ Fixed bug: plot failed if all points were masked - EF
-2006-05-18 New example, multi_image.py; colorbar fixed to show
- offset text when the ScalarFormatter is used; FixedFormatter
- augmented to accept and display offset text. - EF
+2006-05-19
+ Added custom symbol option to scatter - JDH
-2006-05-14 New colorbar; old one is renamed to colorbar_classic.
- New colorbar code is in colorbar.py, with wrappers in
- figure.py and pylab.py.
- Fixed aspect-handling bug reported by Michael Mossey.
- Made backend_bases.draw_quad_mesh() run.- EF
+2006-05-18
+ New example, multi_image.py; colorbar fixed to show offset text when the
+ ScalarFormatter is used; FixedFormatter augmented to accept and display
+ offset text. - EF
-2006-05-08 Changed handling of end ranges in contourf: replaced
- "clip-ends" kwarg with "extend". See docstring for
- details. -EF
+2006-05-14
+ New colorbar; old one is renamed to colorbar_classic. New colorbar code is
+ in colorbar.py, with wrappers in figure.py and pylab.py. Fixed
+ aspect-handling bug reported by Michael Mossey. Made
+ backend_bases.draw_quad_mesh() run.- EF
-2006-05-08 Added axisbelow to rc - JDH
+2006-05-08
+ Changed handling of end ranges in contourf: replaced "clip-ends" kwarg with
+ "extend". See docstring for details. -EF
-2006-05-08 If using PyGTK require version 2.2+ - SC
+2006-05-08
+ Added axisbelow to rc - JDH
-2006-04-19 Added compression support to PDF backend, controlled by
- new pdf.compression rc setting. - JKS
+2006-05-08
+ If using PyGTK require version 2.2+ - SC
-2006-04-19 Added Jouni's PDF backend
+2006-04-19
+ Added compression support to PDF backend, controlled by new pdf.compression
+ rc setting. - JKS
-2006-04-18 Fixed a bug that caused agg to not render long lines
+2006-04-19
+ Added Jouni's PDF backend
-2006-04-16 Masked array support for pcolormesh; made pcolormesh support the
- same combinations of X,Y,C dimensions as pcolor does;
- improved (I hope) description of grid used in pcolor,
- pcolormesh. - EF
+2006-04-18
+ Fixed a bug that caused agg to not render long lines
-2006-04-14 Reorganized axes.py - EF
+2006-04-16
+ Masked array support for pcolormesh; made pcolormesh support the same
+ combinations of X,Y,C dimensions as pcolor does; improved (I hope)
+ description of grid used in pcolor, pcolormesh. - EF
-2006-04-13 Fixed a bug Ryan found using usetex with sans-serif fonts and
- exponential tick labels - DSD
+2006-04-14
+ Reorganized axes.py - EF
-2006-04-11 Refactored backend_ps and backend_agg to prevent module-level
- texmanager imports. Now these imports only occur if text.usetex
- rc setting is true - DSD
+2006-04-13
+ Fixed a bug Ryan found using usetex with sans-serif fonts and exponential
+ tick labels - DSD
-2006-04-10 Committed changes required for building mpl on win32
- platforms with visual studio. This allows wxpython
- blitting for fast animations. - CM
+2006-04-11
+ Refactored backend_ps and backend_agg to prevent module-level texmanager
+ imports. Now these imports only occur if text.usetex rc setting is true -
+ DSD
-2006-04-10 Fixed an off-by-one bug in Axes.change_geometry.
+2006-04-10
+ Committed changes required for building mpl on win32 platforms with visual
+ studio. This allows wxpython blitting for fast animations. - CM
-2006-04-10 Fixed bug in pie charts where wedge wouldn't have label in
- legend. Submitted by Simon Hildebrandt. - ADS
+2006-04-10
+ Fixed an off-by-one bug in Axes.change_geometry.
-2006-05-06 Usetex makes temporary latex and dvi files in a temporary
- directory, rather than in the user's current working
- directory - DSD
+2006-04-10
+ Fixed bug in pie charts where wedge wouldn't have label in legend.
+ Submitted by Simon Hildebrandt. - ADS
-2006-04-05 Applied Ken's wx deprecation warning patch closing sf patch
- #1465371 - JDH
+2006-05-06
+ Usetex makes temporary latex and dvi files in a temporary directory, rather
+ than in the user's current working directory - DSD
-2006-04-05 Added support for the new API in the postscript backend.
- Allows values to be masked using nan's, and faster file
- creation - DSD
+2006-04-05
+ Applied Ken's wx deprecation warning patch closing sf patch #1465371 - JDH
-2006-04-05 Use python's subprocess module for usetex calls to
- external programs. subprocess catches when they exit
- abnormally so an error can be raised. - DSD
+2006-04-05
+ Added support for the new API in the postscript backend. Allows values to
+ be masked using nan's, and faster file creation - DSD
-2006-04-03 Fixed the bug in which widgets would not respond to
- events. This regressed the twinx functionality, so I
- also updated subplots_adjust to update axes that share
- an x or y with a subplot instance. - CM
+2006-04-05
+ Use python's subprocess module for usetex calls to external programs.
+ subprocess catches when they exit abnormally so an error can be raised. -
+ DSD
-2006-04-02 Moved PBox class to transforms and deleted pbox.py;
- made pylab axis command a thin wrapper for Axes.axis;
- more tweaks to aspect-ratio handling; fixed Axes.specgram
- to account for the new imshow default of unit aspect
- ratio; made contour set the Axes.dataLim. - EF
+2006-04-03
+ Fixed the bug in which widgets would not respond to events. This regressed
+ the twinx functionality, so I also updated subplots_adjust to update axes
+ that share an x or y with a subplot instance. - CM
-2006-03-31 Fixed the Qt "Underlying C/C++ object deleted" bug. - JRE
+2006-04-02
+ Moved PBox class to transforms and deleted pbox.py; made pylab axis command
+ a thin wrapper for Axes.axis; more tweaks to aspect-ratio handling; fixed
+ Axes.specgram to account for the new imshow default of unit aspect ratio;
+ made contour set the Axes.dataLim. - EF
-2006-03-31 Applied Vasily Sulatskov's Qt Navigation Toolbar enhancement. - JRE
+2006-03-31
+ Fixed the Qt "Underlying C/C++ object deleted" bug. - JRE
-2006-03-31 Ported Norbert's rewriting of Halldor's stineman_interp
- algorithm to make it numerix compatible and added code to
- matplotlib.mlab. See examples/interp_demo.py - JDH
+2006-03-31
+ Applied Vasily Sulatskov's Qt Navigation Toolbar enhancement. - JRE
-2006-03-30 Fixed a bug in aspect ratio handling; blocked potential
- crashes when panning with button 3; added axis('image')
- support. - EF
+2006-03-31
+ Ported Norbert's rewriting of Halldor's stineman_interp algorithm to make
+ it numerix compatible and added code to matplotlib.mlab. See
+ examples/interp_demo.py - JDH
-2006-03-28 More changes to aspect ratio handling; new PBox class
- in new file pbox.py to facilitate resizing and repositioning
- axes; made PolarAxes maintain unit aspect ratio. - EF
+2006-03-30
+ Fixed a bug in aspect ratio handling; blocked potential crashes when
+ panning with button 3; added axis('image') support. - EF
-2006-03-23 Refactored TextWithDash class to inherit from, rather than
- delegate to, the Text class. Improves object inspection
- and closes bug # 1357969 - DSD
+2006-03-28
+ More changes to aspect ratio handling; new PBox class in new file pbox.py
+ to facilitate resizing and repositioning axes; made PolarAxes maintain unit
+ aspect ratio. - EF
-2006-03-22 Improved aspect ratio handling, including pylab interface.
- Interactive resizing, pan, zoom of images and plots
- (including panels with a shared axis) should work.
- Additions and possible refactoring are still likely. - EF
+2006-03-23
+ Refactored TextWithDash class to inherit from, rather than delegate to, the
+ Text class. Improves object inspection and closes bug # 1357969 - DSD
-2006-03-21 Added another colorbrewer colormap (RdYlBu) - JSWHIT
+2006-03-22
+ Improved aspect ratio handling, including pylab interface. Interactive
+ resizing, pan, zoom of images and plots (including panels with a shared
+ axis) should work. Additions and possible refactoring are still likely. -
+ EF
-2006-03-21 Fixed tickmarks for logscale plots over very large ranges.
- Closes bug # 1232920 - DSD
+2006-03-21
+ Added another colorbrewer colormap (RdYlBu) - JSWHIT
-2006-03-21 Added Rob Knight's arrow code; see examples/arrow_demo.py - JDH
+2006-03-21
+ Fixed tickmarks for logscale plots over very large ranges. Closes bug #
+ 1232920 - DSD
-2006-03-20 Added support for masking values with nan's, using ADS's
- isnan module and the new API. Works for \*Agg backends - DSD
+2006-03-21
+ Added Rob Knight's arrow code; see examples/arrow_demo.py - JDH
-2006-03-20 Added contour.negative_linestyle rcParam - ADS
+2006-03-20
+ Added support for masking values with nan's, using ADS's isnan module and
+ the new API. Works for \*Agg backends - DSD
-2006-03-20 Added _isnan extension module to test for nan with Numeric
- - ADS
+2006-03-20
+ Added contour.negative_linestyle rcParam - ADS
-2006-03-17 Added Paul and Alex's support for faceting with quadmesh
- in sf patch 1411223 - JDH
+2006-03-20
+ Added _isnan extension module to test for nan with Numeric - ADS
-2006-03-17 Added Charle Twardy's pie patch to support colors=None.
- Closes sf patch 1387861 - JDH
+2006-03-17
+ Added Paul and Alex's support for faceting with quadmesh in sf patch
+ 1411223 - JDH
-2006-03-17 Applied sophana's patch to support overlapping axes with
- toolbar navigation by toggling activation with the 'a' key.
- Closes sf patch 1432252 - JDH
+2006-03-17
+ Added Charle Twardy's pie patch to support colors=None. Closes sf patch
+ 1387861 - JDH
-2006-03-17 Applied Aarre's linestyle patch for backend EMF; closes sf
- patch 1449279 - JDH
+2006-03-17
+ Applied sophana's patch to support overlapping axes with toolbar navigation
+ by toggling activation with the 'a' key. Closes sf patch 1432252 - JDH
-2006-03-17 Applied Jordan Dawe's patch to support kwarg properties
- for grid lines in the grid command. Closes sf patch
- 1451661 - JDH
+2006-03-17
+ Applied Aarre's linestyle patch for backend EMF; closes sf patch 1449279 -
+ JDH
-2006-03-17 Center postscript output on page when using usetex - DSD
+2006-03-17
+ Applied Jordan Dawe's patch to support kwarg properties for grid lines in
+ the grid command. Closes sf patch 1451661 - JDH
-2006-03-17 subprocess module built if Python <2.4 even if subprocess
- can be imported from an egg - ADS
+2006-03-17
+ Center postscript output on page when using usetex - DSD
-2006-03-17 Added _subprocess.c from Python upstream and hopefully
- enabled building (without breaking) on Windows, although
- not tested. - ADS
+2006-03-17
+ subprocess module built if Python <2.4 even if subprocess can be imported
+ from an egg - ADS
-2006-03-17 Updated subprocess.py to latest Python upstream and
- reverted name back to subprocess.py - ADS
+2006-03-17
+ Added _subprocess.c from Python upstream and hopefully enabled building
+ (without breaking) on Windows, although not tested. - ADS
-2006-03-16 Added John Porter's 3D handling code
+2006-03-17
+ Updated subprocess.py to latest Python upstream and reverted name back to
+ subprocess.py - ADS
+2006-03-16
+ Added John Porter's 3D handling code
------------------------
-2006-03-16 Released 0.87.2 at revision 2150
+2006-03-16
+ Released 0.87.2 at revision 2150
-2006-03-15 Fixed bug in MaxNLocator revealed by daigos@infinito.it.
- The main change is that Locator.nonsingular now adjusts
- vmin and vmax if they are nearly the same, not just if
- they are equal. A new kwarg, "tiny", sets the threshold. -
- EF
+2006-03-15
+ Fixed bug in MaxNLocator revealed by daigos@infinito.it. The main change
+ is that Locator.nonsingular now adjusts vmin and vmax if they are nearly
+ the same, not just if they are equal. A new kwarg, "tiny", sets the
+ threshold. - EF
-2006-03-14 Added import of compatibility library for newer numpy
- linear_algebra - TEO
+2006-03-14
+ Added import of compatibility library for newer numpy linear_algebra - TEO
-2006-03-12 Extended "load" function to support individual columns and
- moved "load" and "save" into matplotlib.mlab so they can be
- used outside of pylab -- see examples/load_converter.py -
- JDH
+2006-03-12
+ Extended "load" function to support individual columns and moved "load" and
+ "save" into matplotlib.mlab so they can be used outside of pylab -- see
+ examples/load_converter.py - JDH
-2006-03-12 Added AutoDateFormatter and AutoDateLocator submitted
- by James Evans. Try the load_converter.py example for a
- demo. - ADS
+2006-03-12
+ Added AutoDateFormatter and AutoDateLocator submitted by James Evans. Try
+ the load_converter.py example for a demo. - ADS
-2006-03-11 Added subprocess module from python-2.4 - DSD
+2006-03-11
+ Added subprocess module from python-2.4 - DSD
-2006-03-11 Fixed landscape orientation support with the usetex
- option. The backend_ps print_figure method was
- getting complicated, I added a _print_figure_tex
- method to maintain some degree of sanity - DSD
+2006-03-11
+ Fixed landscape orientation support with the usetex option. The backend_ps
+ print_figure method was getting complicated, I added a _print_figure_tex
+ method to maintain some degree of sanity - DSD
-2006-03-11 Added "papertype" savefig kwarg for setting
- postscript papersizes. papertype and ps.papersize
- rc setting can also be set to "auto" to autoscale
- pagesizes - DSD
+2006-03-11
+ Added "papertype" savefig kwarg for setting postscript papersizes.
+ papertype and ps.papersize rc setting can also be set to "auto" to
+ autoscale pagesizes - DSD
-2006-03-09 Apply P-J's patch to make pstoeps work on windows
- patch report # 1445612 - DSD
+2006-03-09
+ Apply P-J's patch to make pstoeps work on windows patch report # 1445612 -
+ DSD
-2006-03-09 Make backend rc parameter case-insensitive - DSD
+2006-03-09
+ Make backend rc parameter case-insensitive - DSD
-2006-03-07 Fixed bug in backend_ps related to C0-C6 papersizes,
- which were causing problems with postscript viewers.
- Supported page sizes include letter, legal, ledger,
- A0-A10, and B0-B10 - DSD
+2006-03-07
+ Fixed bug in backend_ps related to C0-C6 papersizes, which were causing
+ problems with postscript viewers. Supported page sizes include letter,
+ legal, ledger, A0-A10, and B0-B10 - DSD
------------------------------------
-2006-03-07 Released 0.87.1
+2006-03-07
+ Released 0.87.1
-2006-03-04 backend_cairo.py:
- fix get_rgb() bug reported by Keith Briggs.
- Require pycairo 1.0.2.
- Support saving png to file-like objects. - SC
+2006-03-04
+ backend_cairo.py: fix get_rgb() bug reported by Keith Briggs. Require
+ pycairo 1.0.2. Support saving png to file-like objects. - SC
-2006-03-03 Fixed pcolor handling of vmin, vmax - EF
+2006-03-03
+ Fixed pcolor handling of vmin, vmax - EF
-2006-03-02 improve page sizing with usetex with the latex
- geometry package. Closes bug # 1441629 - DSD
+2006-03-02
+ improve page sizing with usetex with the latex geometry package. Closes bug
+ # 1441629 - DSD
-2006-03-02 Fixed dpi problem with usetex png output. Accepted a
- modified version of patch # 1441809 - DSD
+2006-03-02
+ Fixed dpi problem with usetex png output. Accepted a modified version of
+ patch # 1441809 - DSD
-2006-03-01 Fixed axis('scaled') to deal with case xmax < xmin - JSWHIT
+2006-03-01
+ Fixed axis('scaled') to deal with case xmax < xmin - JSWHIT
-2006-03-01 Added reversed colormaps (with '_r' appended to name) - JSWHIT
+2006-03-01
+ Added reversed colormaps (with '_r' appended to name) - JSWHIT
-2006-02-27 Improved eps bounding boxes with usetex - DSD
+2006-02-27
+ Improved eps bounding boxes with usetex - DSD
-2006-02-27 Test svn commit, again!
+2006-02-27
+ Test svn commit, again!
-2006-02-27 Fixed two dependency checking bugs related to usetex
- on Windows - DSD
+2006-02-27
+ Fixed two dependency checking bugs related to usetex on Windows - DSD
-2006-02-27 Made the rc deprecation warnings a little more human
- readable.
+2006-02-27
+ Made the rc deprecation warnings a little more human readable.
-2006-02-26 Update the previous gtk.main_quit() bug fix to use gtk.main_level()
- - SC
+2006-02-26
+ Update the previous gtk.main_quit() bug fix to use gtk.main_level() - SC
-2006-02-24 Implemented alpha support in contour and contourf - EF
+2006-02-24
+ Implemented alpha support in contour and contourf - EF
-2006-02-22 Fixed gtk main quit bug when quit was called before
- mainloop. - JDH
+2006-02-22
+ Fixed gtk main quit bug when quit was called before mainloop. - JDH
-2006-02-22 Small change to colors.py to workaround apparent
- bug in numpy masked array module - JSWHIT
+2006-02-22
+ Small change to colors.py to workaround apparent bug in numpy masked array
+ module - JSWHIT
-2006-02-22 Fixed bug in ScalarMappable.to_rgba() reported by
- Ray Jones, and fixed incorrect fix found by Jeff
- Whitaker - EF
+2006-02-22
+ Fixed bug in ScalarMappable.to_rgba() reported by Ray Jones, and fixed
+ incorrect fix found by Jeff Whitaker - EF
--------------------------------
-2006-02-22 Released 0.87
+2006-02-22
+ Released 0.87
-2006-02-21 Fixed portrait/landscape orientation in postscript backend - DSD
+2006-02-21
+ Fixed portrait/landscape orientation in postscript backend - DSD
-2006-02-21 Fix bug introduced in yesterday's bug fix - SC
+2006-02-21
+ Fix bug introduced in yesterday's bug fix - SC
-2006-02-20 backend_gtk.py FigureCanvasGTK.draw(): fix bug reported by
- David Tremouilles - SC
+2006-02-20
+ backend_gtk.py FigureCanvasGTK.draw(): fix bug reported by David
+ Tremouilles - SC
-2006-02-20 Remove the "pygtk.require('2.4')" error from
- examples/embedding_in_gtk2.py - SC
+2006-02-20
+ Remove the "pygtk.require('2.4')" error from examples/embedding_in_gtk2.py
+ - SC
-2006-02-18 backend_gtk.py FigureCanvasGTK.draw(): simplify to use (rather than
- duplicate) the expose_event() drawing code - SC
+2006-02-18
+ backend_gtk.py FigureCanvasGTK.draw(): simplify to use (rather than
+ duplicate) the expose_event() drawing code - SC
-2006-02-12 Added stagger or waterfall plot capability to LineCollection;
- illustrated in examples/collections.py. - EF
+2006-02-12
+ Added stagger or waterfall plot capability to LineCollection; illustrated
+ in examples/collections.py. - EF
-2006-02-11 Massive cleanup of the usetex code in the postscript backend. Possibly
- fixed the clipping issue users were reporting with older versions of
- ghostscript - DSD
+2006-02-11
+ Massive cleanup of the usetex code in the postscript backend. Possibly
+ fixed the clipping issue users were reporting with older versions of
+ ghostscript - DSD
-2006-02-11 Added autolim kwarg to axes.add_collection. Changed
- collection get_verts() methods accordingly. - EF
+2006-02-11
+ Added autolim kwarg to axes.add_collection. Changed collection get_verts()
+ methods accordingly. - EF
-2006-02-09 added a temporary rc parameter text.dvipnghack, to allow Mac users to get nice
- results with the usetex option. - DSD
+2006-02-09
+ added a temporary rc parameter text.dvipnghack, to allow Mac users to get
+ nice results with the usetex option. - DSD
-2006-02-09 Fixed a bug related to setting font sizes with the usetex option. - DSD
+2006-02-09
+ Fixed a bug related to setting font sizes with the usetex option. - DSD
-2006-02-09 Fixed a bug related to usetex's latex code. - DSD
+2006-02-09
+ Fixed a bug related to usetex's latex code. - DSD
-2006-02-09 Modified behavior of font.size rc setting. You should define font.size in pts,
- which will set the "medium" or default fontsize. Special text sizes like axis
- labels or tick labels can be given relative font sizes like small, large,
- x-large, etc. and will scale accordingly. - DSD
+2006-02-09
+ Modified behavior of font.size rc setting. You should define font.size in
+ pts, which will set the "medium" or default fontsize. Special text sizes
+ like axis labels or tick labels can be given relative font sizes like
+ small, large, x-large, etc. and will scale accordingly. - DSD
-2006-02-08 Added py2exe specific datapath check again. Also added new
- py2exe helper function get_py2exe_datafiles for use in py2exe
- setup.py scripts. - CM
+2006-02-08
+ Added py2exe specific datapath check again. Also added new py2exe helper
+ function get_py2exe_datafiles for use in py2exe setup.py scripts. - CM
-2006-02-02 Added box function to pylab
+2006-02-02
+ Added box function to pylab
-2006-02-02 Fixed a problem in setupext.py, tk library formatted in unicode
- caused build problems - DSD
+2006-02-02
+ Fixed a problem in setupext.py, tk library formatted in unicode caused
+ build problems - DSD
-2006-02-01 Dropped TeX engine support in usetex to focus on LaTeX. - DSD
+2006-02-01
+ Dropped TeX engine support in usetex to focus on LaTeX. - DSD
-2006-01-29 Improved usetex option to respect the serif, sans-serif, monospace,
- and cursive rc settings. Removed the font.latex.package rc setting,
- it is no longer required - DSD
+2006-01-29
+ Improved usetex option to respect the serif, sans-serif, monospace, and
+ cursive rc settings. Removed the font.latex.package rc setting, it is no
+ longer required - DSD
-2006-01-29 Fixed tex's caching to include font.family rc information - DSD
+2006-01-29
+ Fixed tex's caching to include font.family rc information - DSD
-2006-01-29 Fixed subpixel rendering bug in \*Agg that was causing
- uneven gridlines - JDH
+2006-01-29
+ Fixed subpixel rendering bug in \*Agg that was causing uneven gridlines -
+ JDH
-2006-01-28 Added fontcmd to backend_ps's RendererPS.draw_tex, to support other
- font families in eps output - DSD
+2006-01-28
+ Added fontcmd to backend_ps's RendererPS.draw_tex, to support other font
+ families in eps output - DSD
-2006-01-28 Added MaxNLocator to ticker.py, and changed contour.py to
- use it by default. - EF
+2006-01-28
+ Added MaxNLocator to ticker.py, and changed contour.py to use it by
+ default. - EF
-2006-01-28 Added fontcmd to backend_ps's RendererPS.draw_tex, to support other
- font families in eps output - DSD
+2006-01-28
+ Added fontcmd to backend_ps's RendererPS.draw_tex, to support other font
+ families in eps output - DSD
-2006-01-27 Buffered reading of matplotlibrc parameters in order to allow
- 'verbose' settings to be processed first (allows verbose.report
- during rc validation process) - DSD
+2006-01-27
+ Buffered reading of matplotlibrc parameters in order to allow 'verbose'
+ settings to be processed first (allows verbose.report during rc validation
+ process) - DSD
-2006-01-27 Removed setuptools support from setup.py and created a
- separate setupegg.py file to replace it. - CM
+2006-01-27
+ Removed setuptools support from setup.py and created a separate setupegg.py
+ file to replace it. - CM
-2006-01-26 Replaced the ugly datapath logic with a cleaner approach from
- http://wiki.python.org/moin/DistutilsInstallDataScattered.
- Overrides the install_data command. - CM
+2006-01-26
+ Replaced the ugly datapath logic with a cleaner approach from
+ http://wiki.python.org/moin/DistutilsInstallDataScattered. Overrides the
+ install_data command. - CM
-2006-01-24 Don't use character typecodes in cntr.c --- changed to use
- defined typenumbers instead. - TEO
+2006-01-24
+ Don't use character typecodes in cntr.c --- changed to use defined
+ typenumbers instead. - TEO
-2006-01-24 Fixed some bugs in usetex's and ps.usedistiller's dependency
+2006-01-24
+ Fixed some bugs in usetex's and ps.usedistiller's dependency
-2006-01-24 Added masked array support to scatter - EF
+2006-01-24
+ Added masked array support to scatter - EF
-2006-01-24 Fixed some bugs in usetex's and ps.usedistiller's dependency
- checking - DSD
+2006-01-24
+ Fixed some bugs in usetex's and ps.usedistiller's dependency checking - DSD
-------------------------------
-2006-01-24 Released 0.86.2
+2006-01-24
+ Released 0.86.2
-2006-01-20 Added a converters dict to pylab load to convert selected
- columns to float -- especially useful for files with date
- strings, uses a datestr2num converter - JDH
+2006-01-20
+ Added a converters dict to pylab load to convert selected columns to float
+ -- especially useful for files with date strings, uses a datestr2num
+ converter - JDH
-2006-01-20 Added datestr2num to matplotlib dates to convert a string
- or sequence of strings to a matplotlib datenum
+2006-01-20
+ Added datestr2num to matplotlib dates to convert a string or sequence of
+ strings to a matplotlib datenum
-2006-01-18 Added quadrilateral pcolormesh patch 1409190 by Alex Mont
- and Paul Kienzle -- this is \*Agg only for now. See
- examples/quadmesh_demo.py - JDH
+2006-01-18
+ Added quadrilateral pcolormesh patch 1409190 by Alex Mont and Paul Kienzle
+ -- this is \*Agg only for now. See examples/quadmesh_demo.py - JDH
-2006-01-18 Added Jouni's boxplot patch - JDH
+2006-01-18
+ Added Jouni's boxplot patch - JDH
-2006-01-18 Added comma delimiter for pylab save - JDH
+2006-01-18
+ Added comma delimiter for pylab save - JDH
-2006-01-12 Added Ryan's legend patch - JDH
+2006-01-12
+ Added Ryan's legend patch - JDH
-
-2006-1-12 Fixed numpy / numeric to use .dtype.char to keep in SYNC with numpy SVN
+2006-01-12
+ Fixed numpy / numeric to use .dtype.char to keep in SYNC with numpy SVN
---------------------------
-2006-1-11 Released 0.86.1
+2006-01-11
+ Released 0.86.1
-2006-1-11 Fixed setup.py for win32 build and added rc template to the MANIFEST.in
+2006-01-11
+ Fixed setup.py for win32 build and added rc template to the MANIFEST.in
-2006-1-10 Added xpdf distiller option. matplotlibrc ps.usedistiller can now be
- none, false, ghostscript, or xpdf. Validation checks for
- dependencies. This needs testing, but the xpdf option should produce
- the highest-quality output and small file sizes - DSD
+2006-01-10
+ Added xpdf distiller option. matplotlibrc ps.usedistiller can now be none,
+ false, ghostscript, or xpdf. Validation checks for dependencies. This needs
+ testing, but the xpdf option should produce the highest-quality output and
+ small file sizes - DSD
-2006-01-10 For the usetex option, backend_ps now does all the LaTeX work in the
- os's temp directory - DSD
+2006-01-10
+ For the usetex option, backend_ps now does all the LaTeX work in the os's
+ temp directory - DSD
-2006-1-10 Added checks for usetex dependencies. - DSD
+2006-01-10
+ Added checks for usetex dependencies. - DSD
---------------------------------
-2006-1-9 Released 0.86
+2006-01-09
+ Released 0.86
-2006-1-4 Changed to support numpy (new name for scipy_core) - TEO
+2006-01-04
+ Changed to support numpy (new name for scipy_core) - TEO
-2006-1-4 Added Mark's scaled axes patch for shared axis
+2006-01-04
+ Added Mark's scaled axes patch for shared axis
-2005-12-28 Added Chris Barker's build_wxagg patch - JDH
+2005-12-28
+ Added Chris Barker's build_wxagg patch - JDH
-2005-12-27 Altered numerix/scipy to support new scipy package
- structure - TEO
+2005-12-27
+ Altered numerix/scipy to support new scipy package structure - TEO
-2005-12-20 Fixed Jame's Boyles date tick reversal problem - JDH
+2005-12-20
+ Fixed Jame's Boyles date tick reversal problem - JDH
-2005-12-20 Added Jouni's rc patch to support lists of keys to set on -
- JDH
+2005-12-20
+ Added Jouni's rc patch to support lists of keys to set on - JDH
-2005-12-12 Updated pyparsing and mathtext for some speed enhancements
- (Thanks Paul McGuire) and minor fixes to scipy numerix and
- setuptools
+2005-12-12
+ Updated pyparsing and mathtext for some speed enhancements (Thanks Paul
+ McGuire) and minor fixes to scipy numerix and setuptools
-2005-12-12 Matplotlib data is now installed as package_data in
- the matplotlib module. This gets rid of checking the
- many possibilities in matplotlib._get_data_path() - CM
+2005-12-12
+ Matplotlib data is now installed as package_data in the matplotlib module.
+ This gets rid of checking the many possibilities in
+ matplotlib._get_data_path() - CM
-2005-12-11 Support for setuptools/pkg_resources to build and use
- matplotlib as an egg. Still allows matplotlib to exist
- using a traditional distutils install. - ADS
+2005-12-11
+ Support for setuptools/pkg_resources to build and use matplotlib as an egg.
+ Still allows matplotlib to exist using a traditional distutils install. -
+ ADS
-2005-12-03 Modified setup to build matplotlibrc based on compile time
- findings. It will set numerix in the order of scipy,
- numarray, Numeric depending on which are founds, and
- backend as in preference order GTKAgg, WXAgg, TkAgg, GTK,
- Agg, PS
+2005-12-03
+ Modified setup to build matplotlibrc based on compile time findings. It
+ will set numerix in the order of scipy, numarray, Numeric depending on
+ which are founds, and backend as in preference order GTKAgg, WXAgg, TkAgg,
+ GTK, Agg, PS
-2005-12-03 Modified scipy patch to support Numeric, scipy and numarray
- Some work remains to be done because some of the scipy
- imports are broken if only the core is installed. e.g.,
- apparently we need from scipy.basic.fftpack import * rather
- than from scipy.fftpack import *
+2005-12-03
+ Modified scipy patch to support Numeric, scipy and numarray Some work
+ remains to be done because some of the scipy imports are broken if only the
+ core is installed. e.g., apparently we need from scipy.basic.fftpack
+ import * rather than from scipy.fftpack import *
-2005-12-03 Applied some fixes to Nicholas Young's nonuniform image
- patch
+2005-12-03
+ Applied some fixes to Nicholas Young's nonuniform image patch
-2005-12-01 Applied Alex Gontmakher hatch patch - PS only for now
+2005-12-01
+ Applied Alex Gontmakher hatch patch - PS only for now
-2005-11-30 Added Rob McMullen's EMF patch
+2005-11-30
+ Added Rob McMullen's EMF patch
-2005-11-30 Added Daishi's patch for scipy
+2005-11-30
+ Added Daishi's patch for scipy
-2005-11-30 Fixed out of bounds draw markers segfault in agg
+2005-11-30
+ Fixed out of bounds draw markers segfault in agg
-2005-11-28 Got TkAgg blitting working 100% (cross fingers) correctly. - CM
+2005-11-28
+ Got TkAgg blitting working 100% (cross fingers) correctly. - CM
-2005-11-27 Multiple changes in cm.py, colors.py, figure.py, image.py,
- contour.py, contour_demo.py; new _cm.py, examples/image_masked.py.
- 1) Separated the color table data from cm.py out into
- a new file, _cm.py, to make it easier to find the actual
- code in cm.py and to add new colormaps. Also added
- some line breaks to the color data dictionaries. Everything
- from _cm.py is imported by cm.py, so the split should be
- transparent.
- 2) Enabled automatic generation of a colormap from
- a list of colors in contour; see modified
- examples/contour_demo.py.
- 3) Support for imshow of a masked array, with the
- ability to specify colors (or no color at all) for
- masked regions, and for regions that are above or
- below the normally mapped region. See
- examples/image_masked.py.
- 4) In support of the above, added two new classes,
- ListedColormap, and no_norm, to colors.py, and modified
- the Colormap class to include common functionality. Added
- a clip kwarg to the normalize class. Reworked color
- handling in contour.py, especially in the ContourLabeller
- mixin.
- - EF
+2005-11-27
+ Multiple changes in cm.py, colors.py, figure.py, image.py, contour.py,
+ contour_demo.py; new _cm.py, examples/image_masked.py.
-2005-11-25 Changed text.py to ensure color is hashable. EF
+ 1. Separated the color table data from cm.py out into a new file, _cm.py,
+ to make it easier to find the actual code in cm.py and to add new
+ colormaps. Also added some line breaks to the color data dictionaries.
+ Everything from _cm.py is imported by cm.py, so the split should be
+ transparent.
+ 2. Enabled automatic generation of a colormap from a list of colors in
+ contour; see modified examples/contour_demo.py.
+ 3. Support for imshow of a masked array, with the ability to specify colors
+ (or no color at all) for masked regions, and for regions that are above
+ or below the normally mapped region. See examples/image_masked.py.
+ 4. In support of the above, added two new classes, ListedColormap, and
+ no_norm, to colors.py, and modified the Colormap class to include common
+ functionality. Added a clip kwarg to the normalize class. Reworked
+ color handling in contour.py, especially in the ContourLabeller mixin.
---------------------------------
+ - EF
-2005-11-16 Released 0.85
+2005-11-25
+ Changed text.py to ensure color is hashable. EF
-2005-11-16 Changed the default default linewidth in rc to 1.0
+--------------------------------
-2005-11-16 Replaced agg_to_gtk_drawable with pure pygtk pixbuf code in
- backend_gtkagg. When the equivalent is doe for blit, the
- agg extension code will no longer be needed
+2005-11-16
+ Released 0.85
-2005-11-16 Added a maxdict item to cbook to prevent caches from
- growing w/o bounds
+2005-11-16
+ Changed the default default linewidth in rc to 1.0
-2005-11-15 Fixed a colorup/colordown reversal bug in finance.py --
- Thanks Gilles
+2005-11-16
+ Replaced agg_to_gtk_drawable with pure pygtk pixbuf code in backend_gtkagg.
+ When the equivalent is doe for blit, the agg extension code will no longer
+ be needed
-2005-11-15 Applied Jouni K Steppanen's boxplot patch SF patch#1349997
- - JDH
+2005-11-16
+ Added a maxdict item to cbook to prevent caches from growing w/o bounds
+2005-11-15
+ Fixed a colorup/colordown reversal bug in finance.py -- Thanks Gilles
-2005-11-09 added axisbelow attr for Axes to determine whether ticks and such
- are above or below the actors
+2005-11-15
+ Applied Jouni K Steppanen's boxplot patch SF patch#1349997 - JDH
-2005-11-08 Added Nicolas' irregularly spaced image patch
+2005-11-09
+ added axisbelow attr for Axes to determine whether ticks and such are above
+ or below the actors
+2005-11-08
+ Added Nicolas' irregularly spaced image patch
-2005-11-08 Deprecated HorizontalSpanSelector and replaced with
- SpanSelection that takes a third arg, direction. The
- new SpanSelector supports horizontal and vertical span
- selection, and the appropriate min/max is returned. - CM
+2005-11-08
+ Deprecated HorizontalSpanSelector and replaced with SpanSelection that
+ takes a third arg, direction. The new SpanSelector supports horizontal and
+ vertical span selection, and the appropriate min/max is returned. - CM
-2005-11-08 Added lineprops dialog for gtk
+2005-11-08
+ Added lineprops dialog for gtk
-2005-11-03 Added FIFOBuffer class to mlab to support real time feeds
- and examples/fifo_buffer.py
+2005-11-03
+ Added FIFOBuffer class to mlab to support real time feeds and
+ examples/fifo_buffer.py
-2005-11-01 Contributed Nickolas Young's patch for afm mathtext to
- support mathtext based upon the standard postscript Symbol
- font when ps.usetex = True.
+2005-11-01
+ Contributed Nickolas Young's patch for afm mathtext to support mathtext
+ based upon the standard postscript Symbol font when ps.usetex = True.
-2005-10-26 Added support for scatter legends - thanks John Gill
+2005-10-26
+ Added support for scatter legends - thanks John Gill
-2005-10-20 Fixed image clipping bug that made some tex labels
- disappear. JDH
+2005-10-20
+ Fixed image clipping bug that made some tex labels disappear. JDH
-2005-10-14 Removed sqrt from dvipng 1.6 alpha channel mask.
+2005-10-14
+ Removed sqrt from dvipng 1.6 alpha channel mask.
-2005-10-14 Added width kwarg to hist function
+2005-10-14
+ Added width kwarg to hist function
-2005-10-10 Replaced all instances of os.rename with shutil.move
+2005-10-10
+ Replaced all instances of os.rename with shutil.move
-2005-10-05 Added Michael Brady's ydate patch
+2005-10-05
+ Added Michael Brady's ydate patch
-2005-10-04 Added rkern's texmanager patch
+2005-10-04
+ Added rkern's texmanager patch
-2005-09-25 contour.py modified to use a single ContourSet class
- that handles filled contours, line contours, and labels;
- added keyword arg (clip_ends) to contourf.
- Colorbar modified to work with new ContourSet object;
- if the ContourSet has lines rather than polygons, the
- colorbar will follow suit. Fixed a bug introduced in
- 0.84, in which contourf(...,colors=...) was broken - EF
+2005-09-25
+ contour.py modified to use a single ContourSet class that handles filled
+ contours, line contours, and labels; added keyword arg (clip_ends) to
+ contourf. Colorbar modified to work with new ContourSet object; if the
+ ContourSet has lines rather than polygons, the colorbar will follow suit.
+ Fixed a bug introduced in 0.84, in which contourf(...,colors=...) was
+ broken - EF
-------------------------------
-2005-09-19 Released 0.84
-
-2005-09-14 Added a new 'resize_event' which triggers a callback with a
- backend_bases.ResizeEvent object - JDH
-
-2005-09-14 font_manager.py: removed chkfontpath from x11FontDirectory() - SC
-
-2005-09-14 Factored out auto date locator/formatter factory code into
- matplotlib.date.date_ticker_factory; applies John Bryne's
- quiver patch.
-
-2005-09-13 Added Mark's axes positions history patch #1286915
+2005-09-19
+ Released 0.84
-2005-09-09 Added support for auto canvas resizing with
- fig.set_figsize_inches(9,5,forward=True) # inches
- OR
- fig.resize(400,300) # pixels
+2005-09-14
+ Added a new 'resize_event' which triggers a callback with a
+ backend_bases.ResizeEvent object - JDH
-2005-09-07 figure.py: update Figure.draw() to use the updated
- renderer.draw_image() so that examples/figimage_demo.py works again.
- examples/stock_demo.py: remove data_clipping (which no longer
- exists) - SC
+2005-09-14
+ font_manager.py: removed chkfontpath from x11FontDirectory() - SC
-2005-09-06 Added Eric's tick.direction patch: in or out in rc
+2005-09-14
+ Factored out auto date locator/formatter factory code into
+ matplotlib.date.date_ticker_factory; applies John Bryne's quiver patch.
-2005-09-06 Added Martin's rectangle selector widget
+2005-09-13
+ Added Mark's axes positions history patch #1286915
-2005-09-04 Fixed a logic err in text.py that was preventing rgxsuper
- from matching - JDH
+2005-09-09
+ Added support for auto canvas resizing with::
-2005-08-29 Committed Ken's wx blit patch #1275002
+ fig.set_figsize_inches(9,5,forward=True) # inches
-2005-08-26 colorbar modifications - now uses contourf instead of imshow
- so that colors used by contourf are displayed correctly.
- Added two new keyword args (cspacing and clabels) that are
- only relevant for ContourMappable images - JSWHIT
+ OR::
-2005-08-24 Fixed a PS image bug reported by Darren - JDH
+ fig.resize(400,300) # pixels
-2005-08-23 colors.py: change hex2color() to accept unicode strings as well as
- normal strings. Use isinstance() instead of types.IntType etc - SC
+2005-09-07
+ figure.py: update Figure.draw() to use the updated renderer.draw_image() so
+ that examples/figimage_demo.py works again. examples/stock_demo.py: remove
+ data_clipping (which no longer exists) - SC
-2005-08-16 removed data_clipping line and rc property - JDH
+2005-09-06
+ Added Eric's tick.direction patch: in or out in rc
-2005-08-22 backend_svg.py: Remove redundant "x=0.0 y=0.0" from svg element.
- Increase svg version from 1.0 to 1.1. Add viewBox attribute to svg
- element to allow SVG documents to scale-to-fit into an arbitrary
- viewport - SC
+2005-09-06
+ Added Martin's rectangle selector widget
-2005-08-16 Added Eric's dot marker patch - JDH
+2005-09-04
+ Fixed a logic err in text.py that was preventing rgxsuper from matching -
+ JDH
-2005-08-08 Added blitting/animation for TkAgg - CM
+2005-08-29
+ Committed Ken's wx blit patch #1275002
-2005-08-05 Fixed duplicate tickline bug - JDH
+2005-08-26
+ colorbar modifications - now uses contourf instead of imshow so that colors
+ used by contourf are displayed correctly. Added two new keyword args
+ (cspacing and clabels) that are only relevant for ContourMappable images -
+ JSWHIT
-2005-08-05 Fixed a GTK animation bug that cropped up when doing
- animations in gtk//gtkagg canvases that had widgets packed
- above them
+2005-08-24
+ Fixed a PS image bug reported by Darren - JDH
-2005-08-05 Added Clovis Goldemberg patch to the tk save dialog
+2005-08-23
+ colors.py: change hex2color() to accept unicode strings as well as normal
+ strings. Use isinstance() instead of types.IntType etc - SC
-2005-08-04 Removed origin kwarg from backend.draw_image. origin is
- handled entirely by the frontend now.
+2005-08-16
+ removed data_clipping line and rc property - JDH
-2005-07-03 Fixed a bug related to TeX commands in backend_ps
+2005-08-22
+ backend_svg.py: Remove redundant "x=0.0 y=0.0" from svg element. Increase
+ svg version from 1.0 to 1.1. Add viewBox attribute to svg element to allow
+ SVG documents to scale-to-fit into an arbitrary viewport - SC
-2005-08-03 Fixed SVG images to respect upper and lower origins.
-
-2005-08-03 Added flipud method to image and removed it from to_str.
-
-2005-07-29 Modified figure.figaspect to take an array or number;
- modified backend_svg to write utf-8 - JDH
-
-2005-07-30 backend_svg.py: embed png image files in svg rather than linking
- to a separate png file, fixes bug #1245306 (thanks to Norbert Nemec
- for the patch) - SC
-
----------------------------
+2005-08-16
+ Added Eric's dot marker patch - JDH
-2005-07-29 Released 0.83.2
+2005-08-08
+ Added blitting/animation for TkAgg - CM
-2005-07-27 Applied SF patch 1242648: minor rounding error in
- IndexDateFormatter in dates.py
+2005-08-05
+ Fixed duplicate tickline bug - JDH
-2005-07-27 Applied sf patch 1244732: Scale axis such that circle
- looks like circle - JDH
+2005-08-05
+ Fixed a GTK animation bug that cropped up when doing animations in
+ gtk//gtkagg canvases that had widgets packed above them
-2005-07-29 Improved message reporting in texmanager and backend_ps - DSD
+2005-08-05
+ Added Clovis Goldemberg patch to the tk save dialog
-2005-07-28 backend_gtk.py: update FigureCanvasGTK.draw() (needed due to the
- recent expose_event() change) so that examples/anim.py works in the
- usual way - SC
+2005-08-04
+ Removed origin kwarg from backend.draw_image. origin is handled entirely
+ by the frontend now.
-2005-07-26 Added new widgets Cursor and HorizontalSpanSelector to
- matplotlib.widgets. See examples/widgets/cursor.py and
- examples/widgets/span_selector.py - JDH
+2005-07-03
+ Fixed a bug related to TeX commands in backend_ps
-2005-07-26 added draw event to mpl event hierarchy -- triggered on
- figure.draw
+2005-08-03
+ Fixed SVG images to respect upper and lower origins.
-2005-07-26 backend_gtk.py: allow 'f' key to toggle window fullscreen mode
+2005-08-03
+ Added flipud method to image and removed it from to_str.
-2005-07-26 backend_svg.py: write "<.../>" elements all on one line and remove
- surplus spaces - SC
+2005-07-29
+ Modified figure.figaspect to take an array or number; modified backend_svg
+ to write utf-8 - JDH
-2005-07-25 backend_svg.py: simplify code by deleting GraphicsContextSVG and
- RendererSVG.new_gc(), and moving the gc.get_capstyle() code into
- RendererSVG._get_gc_props_svg() - SC
+2005-07-30
+ backend_svg.py: embed png image files in svg rather than linking to a
+ separate png file, fixes bug #1245306 (thanks to Norbert Nemec for the
+ patch) - SC
-2005-07-24 backend_gtk.py: call FigureCanvasBase.motion_notify_event() on
- all motion-notify-events, not just ones where a modifier key or
- button has been pressed (fixes bug report from Niklas Volbers) - SC
-
-2005-07-24 backend_gtk.py: modify print_figure() use own pixmap, fixing
- problems where print_figure() overwrites the display pixmap.
- return False from all button/key etc events - to allow the event
- to propagate further - SC
-
-2005-07-23 backend_gtk.py: change expose_event from using set_back_pixmap();
- clear() to draw_drawable() - SC
-
-2005-07-23 backend_gtk.py: removed pygtk.require()
- matplotlib/__init__.py: delete 'FROZEN' and 'McPLError' which are
- no longer used - SC
-
-2005-07-22 backend_gdk.py: removed pygtk.require() - SC
-
-2005-07-21 backend_svg.py: Remove unused imports. Remove methods doc strings
- which just duplicate the docs from backend_bases.py. Rename
- draw_mathtext to _draw_mathtext. - SC
-
-2005-07-17 examples/embedding_in_gtk3.py: new example demonstrating placing
- a FigureCanvas in a gtk.ScrolledWindow - SC
-
-2005-07-14 Fixed a Windows related bug (#1238412) in texmanager - DSD
-
-2005-07-11 Fixed color kwarg bug, setting color=1 or 0 caused an
- exception - DSD
-
-2005-07-07 Added Eric's MA set_xdata Line2D fix - JDH
-
-2005-07-06 Made HOME/.matplotlib the new config dir where the
- matplotlibrc file, the ttf.cache, and the tex.cache live.
- The new default filenames in .matplotlib have no leading
- dot and are not hidden. e.g., the new names are matplotlibrc
- tex.cache ttffont.cache. This is how ipython does it so it
- must be right. If old files are found, a warning is issued
- and they are moved to the new location. Also fixed
- texmanager to put all files, including temp files in
- ~/.matplotlib/tex.cache, which allows you to usetex in
- non-writable dirs.
-
-2005-07-05 Fixed bug #1231611 in subplots adjust layout. The problem
- was that the text caching mechanism was not using the
- transformation affine in the key. - JDH
-
-2005-07-05 Fixed default backend import problem when using API (SF bug
- # 1209354 - see API_CHANGES for more info - JDH
-
-2005-07-04 backend_gtk.py: require PyGTK version 2.0.0 or higher - SC
-
-2005-06-30 setupext.py: added numarray_inc_dirs for building against
- numarray when not installed in standard location - ADS
-
-2005-06-27 backend_svg.py: write figure width, height as int, not float.
- Update to fix some of the pychecker warnings - SC
-
-2005-06-23 Updated examples/agg_test.py to demonstrate curved paths
- and fills - JDH
+---------------------------
-2005-06-21 Moved some texmanager and backend_agg tex caching to class
- level rather than instance level - JDH
+2005-07-29
+ Released 0.83.2
-2005-06-20 setupext.py: fix problem where _nc_backend_gdk is installed to the
- wrong directory - SC
+2005-07-27
+ Applied SF patch 1242648: minor rounding error in IndexDateFormatter in
+ dates.py
-2005-06-19 Added 10.4 support for CocoaAgg. - CM
+2005-07-27
+ Applied sf patch 1244732: Scale axis such that circle looks like circle -
+ JDH
-2005-06-18 Move Figure.get_width_height() to FigureCanvasBase and return
- int instead of float. - SC
+2005-07-29
+ Improved message reporting in texmanager and backend_ps - DSD
-2005-06-18 Applied Ted Drain's QtAgg patch: 1) Changed the toolbar to
- be a horizontal bar of push buttons instead of a QToolbar
- and updated the layout algorithms in the main window
- accordingly. This eliminates the ability to drag and drop
- the toolbar and detach it from the window. 2) Updated the
- resize algorithm in the main window to show the correct
- size for the plot widget as requested. This works almost
- correctly right now. It looks to me like the final size of
- the widget is off by the border of the main window but I
- haven't figured out a way to get that information yet. We
- could just add a small margin to the new size but that
- seems a little hacky. 3) Changed the x/y location label to
- be in the toolbar like the Tk backend instead of as a
- status line at the bottom of the widget. 4) Changed the
- toolbar pixmaps to use the ppm files instead of the png
- files. I noticed that the Tk backend buttons looked much
- nicer and it uses the ppm files so I switched them.
+2005-07-28
+ backend_gtk.py: update FigureCanvasGTK.draw() (needed due to the recent
+ expose_event() change) so that examples/anim.py works in the usual way - SC
-2005-06-17 Modified the gtk backend to not queue mouse motion events.
- This allows for live updates when dragging a slider. - CM
+2005-07-26
+ Added new widgets Cursor and HorizontalSpanSelector to matplotlib.widgets.
+ See examples/widgets/cursor.py and examples/widgets/span_selector.py - JDH
-2005-06-17 Added starter CocoaAgg backend. Only works on OS 10.3 for
- now and requires PyObjC. (10.4 is high priority) - CM
+2005-07-26
+ added draw event to mpl event hierarchy -- triggered on figure.draw
-2005-06-17 Upgraded pyparsing and applied Paul McGuire's suggestions
- for speeding things up. This more than doubles the speed
- of mathtext in my simple tests. JDH
+2005-07-26
+ backend_gtk.py: allow 'f' key to toggle window fullscreen mode
-2005-06-16 Applied David Cooke's subplot make_key patch
+2005-07-26
+ backend_svg.py: write "<.../>" elements all on one line and remove surplus
+ spaces - SC
+
+2005-07-25
+ backend_svg.py: simplify code by deleting GraphicsContextSVG and
+ RendererSVG.new_gc(), and moving the gc.get_capstyle() code into
+ RendererSVG._get_gc_props_svg() - SC
+
+2005-07-24
+ backend_gtk.py: call FigureCanvasBase.motion_notify_event() on all
+ motion-notify-events, not just ones where a modifier key or button has been
+ pressed (fixes bug report from Niklas Volbers) - SC
+
+2005-07-24
+ backend_gtk.py: modify print_figure() use own pixmap, fixing problems where
+ print_figure() overwrites the display pixmap. return False from all
+ button/key etc events - to allow the event to propagate further - SC
+
+2005-07-23
+ backend_gtk.py: change expose_event from using set_back_pixmap(); clear()
+ to draw_drawable() - SC
+
+2005-07-23
+ backend_gtk.py: removed pygtk.require() matplotlib/__init__.py: delete
+ 'FROZEN' and 'McPLError' which are no longer used - SC
+
+2005-07-22
+ backend_gdk.py: removed pygtk.require() - SC
+
+2005-07-21
+ backend_svg.py: Remove unused imports. Remove methods doc strings which
+ just duplicate the docs from backend_bases.py. Rename draw_mathtext to
+ _draw_mathtext. - SC
+
+2005-07-17
+ examples/embedding_in_gtk3.py: new example demonstrating placing a
+ FigureCanvas in a gtk.ScrolledWindow - SC
+
+2005-07-14
+ Fixed a Windows related bug (#1238412) in texmanager - DSD
+
+2005-07-11
+ Fixed color kwarg bug, setting color=1 or 0 caused an exception - DSD
+
+2005-07-07
+ Added Eric's MA set_xdata Line2D fix - JDH
+
+2005-07-06
+ Made HOME/.matplotlib the new config dir where the matplotlibrc file, the
+ ttf.cache, and the tex.cache live. The new default filenames in
+ .matplotlib have no leading dot and are not hidden. e.g., the new names
+ are matplotlibrc tex.cache ttffont.cache. This is how ipython does it so
+ it must be right. If old files are found, a warning is issued and they are
+ moved to the new location. Also fixed texmanager to put all files,
+ including temp files in ~/.matplotlib/tex.cache, which allows you to usetex
+ in non-writable dirs.
+
+2005-07-05
+ Fixed bug #1231611 in subplots adjust layout. The problem was that the
+ text caching mechanism was not using the transformation affine in the key.
+ - JDH
+
+2005-07-05
+ Fixed default backend import problem when using API (SF bug # 1209354 -
+ see API_CHANGES for more info - JDH
+
+2005-07-04
+ backend_gtk.py: require PyGTK version 2.0.0 or higher - SC
+
+2005-06-30
+ setupext.py: added numarray_inc_dirs for building against numarray when not
+ installed in standard location - ADS
+
+2005-06-27
+ backend_svg.py: write figure width, height as int, not float. Update to
+ fix some of the pychecker warnings - SC
+
+2005-06-23
+ Updated examples/agg_test.py to demonstrate curved paths and fills - JDH
+
+2005-06-21
+ Moved some texmanager and backend_agg tex caching to class level rather
+ than instance level - JDH
+
+2005-06-20
+ setupext.py: fix problem where _nc_backend_gdk is installed to the wrong
+ directory - SC
+
+2005-06-19
+ Added 10.4 support for CocoaAgg. - CM
+
+2005-06-18
+ Move Figure.get_width_height() to FigureCanvasBase and return int instead
+ of float. - SC
+
+2005-06-18
+ Applied Ted Drain's QtAgg patch: 1) Changed the toolbar to be a horizontal
+ bar of push buttons instead of a QToolbar and updated the layout algorithms
+ in the main window accordingly. This eliminates the ability to drag and
+ drop the toolbar and detach it from the window. 2) Updated the resize
+ algorithm in the main window to show the correct size for the plot widget
+ as requested. This works almost correctly right now. It looks to me like
+ the final size of the widget is off by the border of the main window but I
+ haven't figured out a way to get that information yet. We could just add a
+ small margin to the new size but that seems a little hacky. 3) Changed the
+ x/y location label to be in the toolbar like the Tk backend instead of as a
+ status line at the bottom of the widget. 4) Changed the toolbar pixmaps to
+ use the ppm files instead of the png files. I noticed that the Tk backend
+ buttons looked much nicer and it uses the ppm files so I switched them.
+
+2005-06-17
+ Modified the gtk backend to not queue mouse motion events. This allows for
+ live updates when dragging a slider. - CM
+
+2005-06-17
+ Added starter CocoaAgg backend. Only works on OS 10.3 for now and requires
+ PyObjC. (10.4 is high priority) - CM
+
+2005-06-17
+ Upgraded pyparsing and applied Paul McGuire's suggestions for speeding
+ things up. This more than doubles the speed of mathtext in my simple
+ tests. JDH
+
+2005-06-16
+ Applied David Cooke's subplot make_key patch
----------------------------------
-2005-06-15 0.82 released
+0.82 (2005-06-15)
+-----------------
-2005-06-15 Added subplot config tool to GTK* backends -- note you must
- now import the NavigationToolbar2 from your backend of
- choice rather than from backend_gtk because it needs to
- know about the backend specific canvas -- see
- examples/embedding_in_gtk2.py. Ditto for wx backend -- see
- examples/embedding_in_wxagg.py
+2005-06-15
+ Added subplot config tool to GTK* backends -- note you must now import the
+ NavigationToolbar2 from your backend of choice rather than from backend_gtk
+ because it needs to know about the backend specific canvas -- see
+ examples/embedding_in_gtk2.py. Ditto for wx backend -- see
+ examples/embedding_in_wxagg.py
-2005-06-15 backend_cairo.py: updated to use pycairo 0.5.0 - SC
+2005-06-15
+ backend_cairo.py: updated to use pycairo 0.5.0 - SC
-2005-06-14 Wrote some GUI neutral widgets (Button, Slider,
- RadioButtons, CheckButtons) in matplotlib.widgets. See
- examples/widgets/\*.py - JDH
+2005-06-14
+ Wrote some GUI neutral widgets (Button, Slider, RadioButtons, CheckButtons)
+ in matplotlib.widgets. See examples/widgets/\*.py - JDH
-2005-06-14 Exposed subplot parameters as rc vars and as the fig
- SubplotParams instance subplotpars. See
- figure.SubplotParams, figure.Figure.subplots_adjust and the
- pylab method subplots_adjust and
- examples/subplots_adjust.py . Also added a GUI neutral
- widget for adjusting subplots, see
- examples/subplot_toolbar.py - JDH
+2005-06-14
+ Exposed subplot parameters as rc vars and as the fig SubplotParams instance
+ subplotpars. See figure.SubplotParams, figure.Figure.subplots_adjust and
+ the pylab method subplots_adjust and examples/subplots_adjust.py . Also
+ added a GUI neutral widget for adjusting subplots, see
+ examples/subplot_toolbar.py - JDH
-2005-06-13 Exposed cap and join style for lines with new rc params and
- line properties
+2005-06-13
+ Exposed cap and join style for lines with new rc params and line properties::
lines.dash_joinstyle : miter # miter|round|bevel
lines.dash_capstyle : butt # butt|round|projecting
@@ -4037,1405 +4751,1654 @@ the `API changes <../../api/api_changes.html>`_.
lines.solid_capstyle : projecting # butt|round|projecting
-2005-06-13 Added kwargs to Axes init
+2005-06-13
+ Added kwargs to Axes init
-2005-06-13 Applied Baptiste's tick patch - JDH
+2005-06-13
+ Applied Baptiste's tick patch - JDH
-2005-06-13 Fixed rc alias 'l' bug reported by Fernando by removing
- aliases for mainlevel rc options. - JDH
+2005-06-13
+ Fixed rc alias 'l' bug reported by Fernando by removing aliases for
+ mainlevel rc options. - JDH
-2005-06-10 Fixed bug #1217637 in ticker.py - DSD
+2005-06-10
+ Fixed bug #1217637 in ticker.py - DSD
-2005-06-07 Fixed a bug in texmanager.py: .aux files not being removed - DSD
+2005-06-07
+ Fixed a bug in texmanager.py: .aux files not being removed - DSD
-2005-06-08 Added Sean Richard's hist binning fix -- see API_CHANGES - JDH
+2005-06-08
+ Added Sean Richard's hist binning fix -- see API_CHANGES - JDH
-2005-06-07 Fixed a bug in texmanager.py: .aux files not being removed
- - DSD
+2005-06-07
+ Fixed a bug in texmanager.py: .aux files not being removed - DSD
----------------------
-2005-06-07 matplotlib-0.81 released
+0.81 (2005-06-07)
+-----------------
-2005-06-06 Added autoscale_on prop to axes
+2005-06-06
+ Added autoscale_on prop to axes
-2005-06-06 Added Nick's picker "among" patch - JDH
+2005-06-06
+ Added Nick's picker "among" patch - JDH
-2005-06-05 Fixed a TeX/LaTeX font discrepency in backend_ps. - DSD
+2005-06-05
+ Fixed a TeX/LaTeX font discrepency in backend_ps. - DSD
-2005-06-05 Added a ps.distill option in rc settings. If True, postscript
- output will be distilled using ghostscript, which should trim
- the file size and allow it to load more quickly. Hopefully this
- will address the issue of large ps files due to font
- definitions. Tested with gnu-ghostscript-8.16. - DSD
+2005-06-05
+ Added a ps.distill option in rc settings. If True, postscript output will
+ be distilled using ghostscript, which should trim the file size and allow
+ it to load more quickly. Hopefully this will address the issue of large ps
+ files due to font definitions. Tested with gnu-ghostscript-8.16. - DSD
-2005-06-03 Improved support for tex handling of text in backend_ps. - DSD
+2005-06-03
+ Improved support for tex handling of text in backend_ps. - DSD
-2005-06-03 Added rc options to render text with tex or latex, and to select
- the latex font package. - DSD
+2005-06-03
+ Added rc options to render text with tex or latex, and to select the latex
+ font package. - DSD
-2005-06-03 Fixed a bug in ticker.py causing a ZeroDivisionError
+2005-06-03
+ Fixed a bug in ticker.py causing a ZeroDivisionError
-2005-06-02 backend_gtk.py remove DBL_BUFFER, add line to expose_event to
- try to fix pygtk 2.6 redraw problem - SC
+2005-06-02
+ backend_gtk.py remove DBL_BUFFER, add line to expose_event to try to fix
+ pygtk 2.6 redraw problem - SC
-2005-06-01 The default behavior of ScalarFormatter now renders scientific
- notation and large numerical offsets in a label at the end of
- the axis. - DSD
+2005-06-01
+ The default behavior of ScalarFormatter now renders scientific notation and
+ large numerical offsets in a label at the end of the axis. - DSD
-2005-06-01 Added Nicholas' frombyte image patch - JDH
+2005-06-01
+ Added Nicholas' frombyte image patch - JDH
-2005-05-31 Added vertical TeX support for agg - JDH
+2005-05-31
+ Added vertical TeX support for agg - JDH
-2005-05-31 Applied Eric's cntr patch - JDH
+2005-05-31
+ Applied Eric's cntr patch - JDH
-2005-05-27 Finally found the pesky agg bug (which Maxim was kind
- enough to fix within hours) that was causing a segfault in
- the win32 cached marker drawing. Now windows users can get
- the enormouse performance benefits of caced markers w/o
- those occasional pesy screenshots. - JDH
+2005-05-27
+ Finally found the pesky agg bug (which Maxim was kind enough to fix within
+ hours) that was causing a segfault in the win32 cached marker drawing. Now
+ windows users can get the enormouse performance benefits of caced markers
+ w/o those occasional pesy screenshots. - JDH
-2005-05-27 Got win32 build system working again, using a more recent
- version of gtk and pygtk in the win32 build, gtk 2.6 from
- https://web.archive.org/web/20050527002647/https://www.gimp.org/~tml/gimp/win32/downloads.html (you
- will also need libpng12.dll to use these). I haven't
- tested whether this binary build of mpl for win32 will work
- with older gtk runtimes, so you may need to upgrade.
+2005-05-27
+ Got win32 build system working again, using a more recent version of gtk
+ and pygtk in the win32 build, gtk 2.6 from
+ https://web.archive.org/web/20050527002647/https://www.gimp.org/~tml/gimp/win32/downloads.html
+ (you will also need libpng12.dll to use these). I haven't tested whether
+ this binary build of mpl for win32 will work with older gtk runtimes, so
+ you may need to upgrade.
-2005-05-27 Fixed bug where 2nd wxapp could be started if using wxagg
- backend. - ADS
+2005-05-27
+ Fixed bug where 2nd wxapp could be started if using wxagg backend. - ADS
-2005-05-26 Added Daishi text with dash patch -- see examples/dashtick.py
+2005-05-26
+ Added Daishi text with dash patch -- see examples/dashtick.py
-2005-05-26 Moved backend_latex functionality into backend_ps. If
- text.usetex=True, the PostScript backend will use LaTeX to
- generate the .ps or .eps file. Ghostscript is required for
- eps output. - DSD
+2005-05-26
+ Moved backend_latex functionality into backend_ps. If text.usetex=True, the
+ PostScript backend will use LaTeX to generate the .ps or .eps file.
+ Ghostscript is required for eps output. - DSD
-2005-05-24 Fixed alignment and color issues in latex backend. - DSD
+2005-05-24
+ Fixed alignment and color issues in latex backend. - DSD
-2005-05-21 Fixed raster problem for small rasters with dvipng -- looks
- like it was a premultipled alpha problem - JDH
+2005-05-21
+ Fixed raster problem for small rasters with dvipng -- looks like it was a
+ premultipled alpha problem - JDH
-2005-05-20 Added linewidth and faceted kwarg to scatter to control
- edgewidth and color. Also added autolegend patch to
- inspect line segments.
+2005-05-20
+ Added linewidth and faceted kwarg to scatter to control edgewidth and
+ color. Also added autolegend patch to inspect line segments.
-2005-05-18 Added Orsay and JPL qt fixes - JDH
+2005-05-18
+ Added Orsay and JPL qt fixes - JDH
-2005-05-17 Added a psfrag latex backend -- some alignment issues need
- to be worked out. Run with -dLaTeX and a *.tex file and
- *.eps file are generated. latex and dvips the generated
- latex file to get ps output. Note xdvi *does* not work,
- you must generate ps.- JDH
+2005-05-17
+ Added a psfrag latex backend -- some alignment issues need to be worked
+ out. Run with -dLaTeX and a *.tex file and *.eps file are generated. latex
+ and dvips the generated latex file to get ps output. Note xdvi *does* not
+ work, you must generate ps.- JDH
-2005-05-13 Added Florent Rougon's Axis set_label1
- patch
+2005-05-13
+ Added Florent Rougon's Axis set_label1 patch
-2005-05-17 pcolor optimization, fixed bug in previous pcolor patch - JSWHIT
+2005-05-17
+ pcolor optimization, fixed bug in previous pcolor patch - JSWHIT
-2005-05-16 Added support for masked arrays in pcolor - JSWHIT
+2005-05-16
+ Added support for masked arrays in pcolor - JSWHIT
-2005-05-12 Started work on TeX text for antigrain using pngdvi -- see
- examples/tex_demo.py and the new module
- matplotlib.texmanager. Rotated text not supported and
- rendering small glyps is not working right yet. BUt large
- fontsizes and/or high dpi saved figs work great.
+2005-05-12
+ Started work on TeX text for antigrain using pngdvi -- see
+ examples/tex_demo.py and the new module matplotlib.texmanager. Rotated
+ text not supported and rendering small glyps is not working right yet. BUt
+ large fontsizes and/or high dpi saved figs work great.
-2005-05-10 New image resize options interpolation options. New values
- for the interp kwarg are
+2005-05-10
+ New image resize options interpolation options. New values for the interp
+ kwarg are
'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36',
'hanning', 'hamming', 'hermite', 'kaiser', 'quadric',
'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc',
'lanczos', 'blackman'
- See help(imshow) for details, particularly the
- interpolation, filternorm and filterrad kwargs
+ See help(imshow) for details, particularly the interpolation, filternorm
+ and filterrad kwargs
-2005-05-10 Applied Eric's contour mem leak fixes - JDH
+2005-05-10
+ Applied Eric's contour mem leak fixes - JDH
-2005-05-10 Extended python agg wrapper and started implementing
- backend_agg2, an agg renderer based on the python wrapper.
- This will be more flexible and easier to extend than the
- current backend_agg. See also examples/agg_test.py - JDH
+2005-05-10
+ Extended python agg wrapper and started implementing backend_agg2, an agg
+ renderer based on the python wrapper. This will be more flexible and
+ easier to extend than the current backend_agg. See also
+ examples/agg_test.py - JDH
-2005-05-09 Added Marcin's no legend patch to exclude lines from the
- autolegend builder
+2005-05-09
+ Added Marcin's no legend patch to exclude lines from the autolegend builder::
plot(x, y, label='nolegend')
-2005-05-05 Upgraded to agg23
-
-2005-05-05 Added newscalarformatter_demo.py to examples. -DSD
-
-2005-05-04 Added NewScalarFormatter. Improved formatting of ticklabels,
- scientific notation, and the ability to plot large large
- numbers with small ranges, by determining a numerical offset.
- See ticker.NewScalarFormatter for more details. -DSD
+2005-05-05
+ Upgraded to agg23
-2005-05-03 Added the option to specify a delimiter in pylab.load -DSD
+2005-05-05
+ Added newscalarformatter_demo.py to examples. -DSD
-2005-04-28 Added Darren's line collection example
+2005-05-04
+ Added NewScalarFormatter. Improved formatting of ticklabels, scientific
+ notation, and the ability to plot large large numbers with small ranges, by
+ determining a numerical offset. See ticker.NewScalarFormatter for more
+ details. -DSD
-2005-04-28 Fixed aa property in agg - JDH
+2005-05-03
+ Added the option to specify a delimiter in pylab.load -DSD
-2005-04-27 Set postscript page size in .matplotlibrc - DSD
+2005-04-28
+ Added Darren's line collection example
-2005-04-26 Added embedding in qt example. - JDH
+2005-04-28
+ Fixed aa property in agg - JDH
-2005-04-14 Applied Michael Brady's qt backend patch: 1) fix a bug
- where keyboard input was grabbed by the figure and not
- released 2) turn on cursor changes 3) clean up a typo
- and commented-out print statement. - JDH
+2005-04-27
+ Set postscript page size in .matplotlibrc - DSD
+2005-04-26
+ Added embedding in qt example. - JDH
-2005-04-14 Applied Eric Firing's masked data lines patch and contour
- patch. Support for masked arrays has been added to the
- plot command and to the Line2D object. Only the valid
- points are plotted. A "valid_only" kwarg was added to the
- get_xdata() and get_ydata() methods of Line2D; by default
- it is False, so that the original data arrays are
- returned. Setting it to True returns the plottable points.
- - see examples/masked_demo.py - JDH
+2005-04-14
+ Applied Michael Brady's qt backend patch: 1) fix a bug where keyboard input
+ was grabbed by the figure and not released 2) turn on cursor changes 3)
+ clean up a typo and commented-out print statement. - JDH
-2005-04-13 Applied Tim Leslie's arrow key event handling patch - JDH
+2005-04-14
+ Applied Eric Firing's masked data lines patch and contour patch. Support
+ for masked arrays has been added to the plot command and to the Line2D
+ object. Only the valid points are plotted. A "valid_only" kwarg was added
+ to the get_xdata() and get_ydata() methods of Line2D; by default it is
+ False, so that the original data arrays are returned. Setting it to True
+ returns the plottable points. - see examples/masked_demo.py - JDH
+2005-04-13
+ Applied Tim Leslie's arrow key event handling patch - JDH
---------------------------
-0.80 released
+0.80
+----
-2005-04-11 Applied a variant of rick's xlim/ylim/axis patch. These
- functions now take kwargs to let you selectively alter only
- the min or max if desired. e.g., xlim(xmin=2) or
- axis(ymax=3). They always return the new lim. - JDH
+2005-04-11
+ Applied a variant of rick's xlim/ylim/axis patch. These functions now take
+ kwargs to let you selectively alter only the min or max if desired. e.g.,
+ xlim(xmin=2) or axis(ymax=3). They always return the new lim. - JDH
-2005-04-11 Incorporated Werner's wx patch -- wx backend should be
- compatible with wxpython2.4 and recent versions of 2.5.
- Some early versions of wxpython 2.5 will not work because
- there was a temporary change in the dc API that was rolled
- back to make it 2.4 compliant
+2005-04-11
+ Incorporated Werner's wx patch -- wx backend should be compatible with
+ wxpython2.4 and recent versions of 2.5. Some early versions of wxpython
+ 2.5 will not work because there was a temporary change in the dc API that
+ was rolled back to make it 2.4 compliant
-2005-04-11 modified tkagg show so that new figure window pops up on
- call to figure
+2005-04-11
+ modified tkagg show so that new figure window pops up on call to figure
-2005-04-11 fixed wxapp init bug
+2005-04-11
+ fixed wxapp init bug
-2005-04-02 updated backend_ps.draw_lines, draw_markers for use with the
- new API - DSD
+2005-04-02
+ updated backend_ps.draw_lines, draw_markers for use with the new API - DSD
-2005-04-01 Added editable polygon example
+2005-04-01
+ Added editable polygon example
------------------------------
-2005-03-31 0.74 released
+0.74 (2005-03-31)
+-----------------
-2005-03-30 Fixed and added checks for floating point inaccuracy in
- ticker.Base - DSD
+2005-03-30
+ Fixed and added checks for floating point inaccuracy in ticker.Base - DSD
-2005-03-30 updated /ellipse definition in backend_ps.py to address bug
- #1122041 - DSD
+2005-03-30
+ updated /ellipse definition in backend_ps.py to address bug #1122041 - DSD
-2005-03-29 Added unicode support for Agg and PS - JDH
+2005-03-29
+ Added unicode support for Agg and PS - JDH
-2005-03-28 Added Jarrod's svg patch for text - JDH
+2005-03-28
+ Added Jarrod's svg patch for text - JDH
-2005-03-28 Added Ludal's arrow and quiver patch - JDH
+2005-03-28
+ Added Ludal's arrow and quiver patch - JDH
-2005-03-28 Added label kwarg to Axes to facilitate forcing the
- creation of new Axes with otherwise identical attributes
+2005-03-28
+ Added label kwarg to Axes to facilitate forcing the creation of new Axes
+ with otherwise identical attributes
-2005-03-28 Applied boxplot and OSX font search patches
+2005-03-28
+ Applied boxplot and OSX font search patches
-2005-03-27 Added ft2font NULL check to fix Japanase font bug - JDH
+2005-03-27
+ Added ft2font NULL check to fix Japanase font bug - JDH
-2005-03-27 Added sprint legend patch plus John Gill's tests and fix --
- see examples/legend_auto.py - JDH
+2005-03-27
+ Added sprint legend patch plus John Gill's tests and fix -- see
+ examples/legend_auto.py - JDH
---------------------------
-2005-03-19 0.73.1 released
+0.73.1 (2005-03-19)
+-------------------
-2005-03-19 Reverted wxapp handling because it crashed win32 - JDH
+2005-03-19
+ Reverted wxapp handling because it crashed win32 - JDH
-2005-03-18 Add .number attribute to figure objects returned by figure() - FP
+2005-03-18
+ Add .number attribute to figure objects returned by figure() - FP
---------------------------
-2005-03-18 0.73 released
-
-2005-03-16 Fixed labelsep bug
-
-2005-03-16 Applied Darren's ticker fix for small ranges - JDH
-
-2005-03-16 Fixed tick on horiz colorbar - JDH
-
-2005-03-16 Added Japanese winreg patch - JDH
-
-2005-03-15 backend_gtkagg.py: changed to use double buffering, this fixes
- the problem reported Joachim Berdal Haga - "Parts of plot lagging
- from previous frame in animation". Tested with anim.py and it makes
- no noticeable difference to performance (23.7 before, 23.6 after)
- - SC
-
-2005-03-14 add src/_backend_gdk.c extension to provide a substitute function
- for pixbuf.get_pixels_array(). Currently pixbuf.get_pixels_array()
- only works with Numeric, and then only works if pygtk has been
- compiled with Numeric support. The change provides a function
- pixbuf_get_pixels_array() which works with Numeric and numarray and
- is always available. It means that backend_gtk should be able to
- display images and mathtext in all circumstances. - SC
-
-2005-03-11 Upgraded CXX to 5.3.1
-
-2005-03-10 remove GraphicsContextPS.set_linestyle()
- and GraphicsContextSVG.set_linestyle() since they do no more than
- the base class GraphicsContext.set_linestyle() - SC
-
-2005-03-09 Refactored contour functionality into dedicated module
-
-2005-03-09 Added Eric's contourf updates and Nadia's clabel functionality
-
-2005-03-09 Moved colorbar to figure.Figure to expose it for API developers
- - JDH
-
-2005-03-09 backend_cairo.py: implemented draw_markers() - SC
-
-2005-03-09 cbook.py: only use enumerate() (the python version) if the builtin
- version is not available.
- Add new function 'izip' which is set to itertools.izip if available
- and the python equivalent if not available. - SC
-
-2005-03-07 backend_gdk.py: remove PIXELS_PER_INCH from points_to_pixels(), but
- still use it to adjust font sizes. This allows the GTK version of
- line_styles.py to more closely match GTKAgg, previously the markers
- were being drawn too large. - SC
-
-2005-03-01 Added Eric's contourf routines
-
-2005-03-01 Added start of proper agg SWIG wrapper. I would like to
- expose agg functionality directly a the user level and this
- module will serve that purpose eventually, and will
- hopefully take over most of the functionality of the
- current _image and _backend_agg modules. - JDH
-
-2005-02-28 Fixed polyfit / polyval to convert input args to float
- arrays - JDH
-
-
-2005-02-25 Add experimental feature to backend_gtk.py to enable/disable
- double buffering (DBL_BUFFER=True/False) - SC
-
-2005-02-24 colors.py change ColorConverter.to_rgb() so it always returns rgb
- (and not rgba), allow cnames keys to be cached, change the exception
- raised from RuntimeError to ValueError (like hex2color())
- hex2color() use a regular expression to check the color string is
- valid - SC
-
-
-2005-02-23 Added rc param ps.useafm so backend ps can use native afm
- fonts or truetype. afme breaks mathtext but causes much
- smaller font sizes and may result in images that display
- better in some contexts (e.g., pdfs incorporated into latex
- docs viewed in acrobat reader). I would like to extend
- this approach to allow the user to use truetype only for
- mathtext, which should be easy.
-
-2005-02-23 Used sequence protocol rather than tuple in agg collection
- drawing routines for greater flexibility - JDH
-
+0.73 (2005-03-18)
+-----------------
+
+2005-03-16
+ Fixed labelsep bug
+
+2005-03-16
+ Applied Darren's ticker fix for small ranges - JDH
+
+2005-03-16
+ Fixed tick on horiz colorbar - JDH
+
+2005-03-16
+ Added Japanese winreg patch - JDH
+
+2005-03-15
+ backend_gtkagg.py: changed to use double buffering, this fixes the problem
+ reported Joachim Berdal Haga - "Parts of plot lagging from previous frame
+ in animation". Tested with anim.py and it makes no noticeable difference to
+ performance (23.7 before, 23.6 after) - SC
+
+2005-03-14
+ add src/_backend_gdk.c extension to provide a substitute function for
+ pixbuf.get_pixels_array(). Currently pixbuf.get_pixels_array() only works
+ with Numeric, and then only works if pygtk has been compiled with Numeric
+ support. The change provides a function pixbuf_get_pixels_array() which
+ works with Numeric and numarray and is always available. It means that
+ backend_gtk should be able to display images and mathtext in all
+ circumstances. - SC
+
+2005-03-11
+ Upgraded CXX to 5.3.1
+
+2005-03-10
+ remove GraphicsContextPS.set_linestyle() and
+ GraphicsContextSVG.set_linestyle() since they do no more than the base
+ class GraphicsContext.set_linestyle() - SC
+
+2005-03-09
+ Refactored contour functionality into dedicated module
+
+2005-03-09
+ Added Eric's contourf updates and Nadia's clabel functionality
+
+2005-03-09
+ Moved colorbar to figure.Figure to expose it for API developers - JDH
+
+2005-03-09
+ backend_cairo.py: implemented draw_markers() - SC
+
+2005-03-09
+ cbook.py: only use enumerate() (the python version) if the builtin version
+ is not available. Add new function 'izip' which is set to itertools.izip
+ if available and the python equivalent if not available. - SC
+
+2005-03-07
+ backend_gdk.py: remove PIXELS_PER_INCH from points_to_pixels(), but still
+ use it to adjust font sizes. This allows the GTK version of line_styles.py
+ to more closely match GTKAgg, previously the markers were being drawn too
+ large. - SC
+
+2005-03-01
+ Added Eric's contourf routines
+
+2005-03-01
+ Added start of proper agg SWIG wrapper. I would like to expose agg
+ functionality directly a the user level and this module will serve that
+ purpose eventually, and will hopefully take over most of the functionality
+ of the current _image and _backend_agg modules. - JDH
+
+2005-02-28
+ Fixed polyfit / polyval to convert input args to float arrays - JDH
+
+2005-02-25
+ Add experimental feature to backend_gtk.py to enable/disable double
+ buffering (DBL_BUFFER=True/False) - SC
+
+2005-02-24
+ colors.py change ColorConverter.to_rgb() so it always returns rgb (and not
+ rgba), allow cnames keys to be cached, change the exception raised from
+ RuntimeError to ValueError (like hex2color()) hex2color() use a regular
+ expression to check the color string is valid - SC
+
+2005-02-23
+ Added rc param ps.useafm so backend ps can use native afm fonts or
+ truetype. afme breaks mathtext but causes much smaller font sizes and may
+ result in images that display better in some contexts (e.g., pdfs
+ incorporated into latex docs viewed in acrobat reader). I would like to
+ extend this approach to allow the user to use truetype only for mathtext,
+ which should be easy.
+
+2005-02-23
+ Used sequence protocol rather than tuple in agg collection drawing routines
+ for greater flexibility - JDH
--------------------------------
-2005-02-22 0.72.1 released
-
-2005-02-21 fixed linestyles for collections -- contour now dashes for
- levels <0
+0.72.1 (2005-02-22)
+-------------------
-2005-02-21 fixed ps color bug - JDH
+2005-02-21
+ fixed linestyles for collections -- contour now dashes for levels <0
-2005-02-15 fixed missing qt file
+2005-02-21
+ fixed ps color bug - JDH
-2005-02-15 banished error_msg and report_error. Internal backend
- methods like error_msg_gtk are preserved. backend writers,
- check your backends, and diff against 0.72 to make sure I
- did the right thing! - JDH
+2005-02-15
+ fixed missing qt file
+2005-02-15
+ banished error_msg and report_error. Internal backend methods like
+ error_msg_gtk are preserved. backend writers, check your backends, and
+ diff against 0.72 to make sure I did the right thing! - JDH
-2005-02-14 Added enthought traits to matplotlib tree - JDH
+2005-02-14
+ Added enthought traits to matplotlib tree - JDH
------------------------
-2005-02-14 0.72 released
+0.72 (2005-02-14)
+-----------------
-2005-02-14 fix bug in cbook alltrue() and onetrue() - SC
+2005-02-14
+ fix bug in cbook alltrue() and onetrue() - SC
-2005-02-11 updated qtagg backend from Ted - JDH
+2005-02-11
+ updated qtagg backend from Ted - JDH
-2005-02-11 matshow fixes for figure numbering, return value and docs - FP
+2005-02-11
+ matshow fixes for figure numbering, return value and docs - FP
-2005-02-09 new zorder example for fine control in zorder_demo.py - FP
+2005-02-09
+ new zorder example for fine control in zorder_demo.py - FP
-2005-02-09 backend renderer draw_lines now has transform in backend,
- as in draw_markers; use numerix in _backend_agg, aded small
- line optimization to agg
+2005-02-09
+ backend renderer draw_lines now has transform in backend, as in
+ draw_markers; use numerix in _backend_agg, aded small line optimization to
+ agg
-2005-02-09 subplot now deletes axes that it overlaps
+2005-02-09
+ subplot now deletes axes that it overlaps
-2005-02-08 Added transparent support for gzipped files in load/save - Fernando
- Perez (FP from now on).
+2005-02-08
+ Added transparent support for gzipped files in load/save - Fernando Perez
+ (FP from now on).
-2005-02-08 Small optimizations in PS backend. They may have a big impact for
- large plots, otherwise they don't hurt - FP
+2005-02-08
+ Small optimizations in PS backend. They may have a big impact for large
+ plots, otherwise they don't hurt - FP
-2005-02-08 Added transparent support for gzipped files in load/save - Fernando
- Perez (FP from now on).
+2005-02-08
+ Added transparent support for gzipped files in load/save - Fernando Perez
+ (FP from now on).
-2005-02-07 Added newstyle path drawing for markers - only implemented
- in agg currently - JDH
+2005-02-07
+ Added newstyle path drawing for markers - only implemented in agg currently
+ - JDH
-2005-02-05 Some superscript text optimizations for ticking log plots
+2005-02-05
+ Some superscript text optimizations for ticking log plots
-2005-02-05 Added some default key press events to pylab figures: 'g'
- toggles grid - JDH
+2005-02-05
+ Added some default key press events to pylab figures: 'g' toggles grid -
+ JDH
-2005-02-05 Added some support for handling log switching for lines
- that have nonpos data - JDH
+2005-02-05
+ Added some support for handling log switching for lines that have nonpos
+ data - JDH
-2005-02-04 Added Nadia's contour patch - contour now has matlab
- compatible syntax; this also fixed an unequal sized contour
- array bug- JDH
+2005-02-04
+ Added Nadia's contour patch - contour now has matlab compatible syntax;
+ this also fixed an unequal sized contour array bug- JDH
-2005-02-04 Modified GTK backends to allow the FigureCanvas to be resized
- smaller than its original size - SC
+2005-02-04
+ Modified GTK backends to allow the FigureCanvas to be resized smaller than
+ its original size - SC
-2005-02-02 Fixed a bug in dates mx2num - JDH
+2005-02-02
+ Fixed a bug in dates mx2num - JDH
-2005-02-02 Incorporated Fernando's matshow - JDH
+2005-02-02
+ Incorporated Fernando's matshow - JDH
-2005-02-01 Added Fernando's figure num patch, including experimental
- support for pylab backend switching, LineCOllection.color
- warns, savefig now a figure method, fixed a close(fig) bug
- - JDH
+2005-02-01
+ Added Fernando's figure num patch, including experimental support for pylab
+ backend switching, LineCOllection.color warns, savefig now a figure method,
+ fixed a close(fig) bug - JDH
-2005-01-31 updated datalim in contour - JDH
+2005-01-31
+ updated datalim in contour - JDH
-2005-01-30 Added backend_qtagg.py provided by Sigve Tjora - SC
+2005-01-30
+ Added backend_qtagg.py provided by Sigve Tjora - SC
-2005-01-28 Added tk.inspect rc param to .matplotlibrc. IDLE users
- should set tk.pythoninspect:True and interactive:True and
- backend:TkAgg
+2005-01-28
+ Added tk.inspect rc param to .matplotlibrc. IDLE users should set
+ tk.pythoninspect:True and interactive:True and backend:TkAgg
-2005-01-28 Replaced examples/interactive.py with an updated script from
- Fernando Perez - SC
+2005-01-28
+ Replaced examples/interactive.py with an updated script from Fernando Perez
+ - SC
-2005-01-27 Added support for shared x or y axes. See
- examples/shared_axis_demo.py and examples/ganged_plots.py
+2005-01-27
+ Added support for shared x or y axes. See examples/shared_axis_demo.py and
+ examples/ganged_plots.py
-2005-01-27 Added Lee's patch for missing symbols \leq and \LEFTbracket
- to _mathtext_data - JDH
+2005-01-27
+ Added Lee's patch for missing symbols \leq and \LEFTbracket to
+ _mathtext_data - JDH
-2005-01-26 Added Baptiste's two scales patch -- see help(twinx) in the
- pylab interface for more info. See also
- examples/two_scales.py
+2005-01-26
+ Added Baptiste's two scales patch -- see help(twinx) in the pylab interface
+ for more info. See also examples/two_scales.py
-2005-01-24 Fixed a mathtext parser bug that prevented font changes in
- sub/superscripts - JDH
+2005-01-24
+ Fixed a mathtext parser bug that prevented font changes in sub/superscripts
+ - JDH
-2005-01-24 Fixed contour to work w/ interactive changes in colormaps,
- clim, etc - JDH
+2005-01-24
+ Fixed contour to work w/ interactive changes in colormaps, clim, etc - JDH
-----------------------------
-2005-01-21 matplotlib-0.71 released
+0.71 (2005-01-21)
+-----------------
-2005-01-21 Refactored numerix to solve vexing namespace issues - JDH
+2005-01-21
+ Refactored numerix to solve vexing namespace issues - JDH
-2005-01-21 Applied Nadia's contour bug fix - JDH
+2005-01-21
+ Applied Nadia's contour bug fix - JDH
-2005-01-20 Made some changes to the contour routine - particularly
- region=1 seems t fix a lot of the zigzag strangeness.
- Added colormaps as default for contour - JDH
+2005-01-20
+ Made some changes to the contour routine - particularly region=1 seems t
+ fix a lot of the zigzag strangeness. Added colormaps as default for
+ contour - JDH
-2005-01-19 Restored builtin names which were overridden (min, max,
- abs, round, and sum) in pylab. This is a potentially
- significant change for those who were relying on an array
- version of those functions that previously overrode builtin
- function names. - ADS
+2005-01-19
+ Restored builtin names which were overridden (min, max, abs, round, and
+ sum) in pylab. This is a potentially significant change for those who were
+ relying on an array version of those functions that previously overrode
+ builtin function names. - ADS
-2005-01-18 Added accents to mathtext: \hat, \breve, \grave, \bar,
- \acute, \tilde, \vec, \dot, \ddot. All of them have the
- same syntax, e.g., to make an overbar you do \bar{o} or to
- make an o umlaut you do \ddot{o}. The shortcuts are also
- provided, e.g., \"o \'e \`e \~n \.x \^y - JDH
+2005-01-18
+ Added accents to mathtext: \hat, \breve, \grave, \bar, \acute, \tilde,
+ \vec, \dot, \ddot. All of them have the same syntax, e.g., to make an
+ overbar you do \bar{o} or to make an o umlaut you do \ddot{o}. The
+ shortcuts are also provided, e.g., \"o \'e \`e \~n \.x \^y - JDH
-2005-01-18 Plugged image resize memory leaks - JDH
+2005-01-18
+ Plugged image resize memory leaks - JDH
-2005-01-18 Fixed some mathtext parser problems relating to superscripts
+2005-01-18
+ Fixed some mathtext parser problems relating to superscripts
-2005-01-17 Fixed a yticklabel problem for colorbars under change of
- clim - JDH
+2005-01-17
+ Fixed a yticklabel problem for colorbars under change of clim - JDH
-2005-01-17 Cleaned up Destroy handling in wx reducing memleak/fig from
- approx 800k to approx 6k- JDH
+2005-01-17
+ Cleaned up Destroy handling in wx reducing memleak/fig from approx 800k to
+ approx 6k- JDH
-2005-01-17 Added kappa to latex_to_bakoma - JDH
+2005-01-17
+ Added kappa to latex_to_bakoma - JDH
-2005-01-15 Support arbitrary colorbar axes and horizontal colorbars - JDH
+2005-01-15
+ Support arbitrary colorbar axes and horizontal colorbars - JDH
-2005-01-15 Fixed colormap number of colors bug so that the colorbar
- has the same discretization as the image - JDH
+2005-01-15
+ Fixed colormap number of colors bug so that the colorbar has the same
+ discretization as the image - JDH
-2005-01-15 Added Nadia's x,y contour fix - JDH
+2005-01-15
+ Added Nadia's x,y contour fix - JDH
-2005-01-15 backend_cairo: added PDF support which requires pycairo 0.1.4.
- Its not usable yet, but is ready for when the Cairo PDF backend
- matures - SC
+2005-01-15
+ backend_cairo: added PDF support which requires pycairo 0.1.4. Its not
+ usable yet, but is ready for when the Cairo PDF backend matures - SC
-2005-01-15 Added Nadia's x,y contour fix
+2005-01-15
+ Added Nadia's x,y contour fix
-2005-01-12 Fixed set clip_on bug in artist - JDH
+2005-01-12
+ Fixed set clip_on bug in artist - JDH
-2005-01-11 Reverted pythoninspect in tkagg - JDH
+2005-01-11
+ Reverted pythoninspect in tkagg - JDH
-2005-01-09 Fixed a backend_bases event bug caused when an event is
- triggered when location is None - JDH
+2005-01-09
+ Fixed a backend_bases event bug caused when an event is triggered when
+ location is None - JDH
-2005-01-07 Add patch from Stephen Walton to fix bug in pylab.load()
- when the % character is included in a comment. - ADS
+2005-01-07
+ Add patch from Stephen Walton to fix bug in pylab.load() when the %
+ character is included in a comment. - ADS
-2005-01-07 Added markerscale attribute to Legend class. This allows
- the marker size in the legend to be adjusted relative to
- that in the plot. - ADS
+2005-01-07
+ Added markerscale attribute to Legend class. This allows the marker size
+ in the legend to be adjusted relative to that in the plot. - ADS
-2005-01-06 Add patch from Ben Vanhaeren to make the FigureManagerGTK vbox a
- public attribute - SC
+2005-01-06
+ Add patch from Ben Vanhaeren to make the FigureManagerGTK vbox a public
+ attribute - SC
----------------------------
-2004-12-30 Release 0.70
+2004-12-30
+ Release 0.70
-2004-12-28 Added coord location to key press and added a
- examples/picker_demo.py
+2004-12-28
+ Added coord location to key press and added a examples/picker_demo.py
-2004-12-28 Fixed coords notification in wx toolbar - JDH
+2004-12-28
+ Fixed coords notification in wx toolbar - JDH
-2004-12-28 Moved connection and disconnection event handling to the
- FigureCanvasBase. Backends now only need to connect one
- time for each of the button press, button release and key
- press/release functions. The base class deals with
- callbacks and multiple connections. This fixes flakiness
- on some backends (tk, wx) in the presence of multiple
- connections and/or disconnect - JDH
+2004-12-28
+ Moved connection and disconnection event handling to the FigureCanvasBase.
+ Backends now only need to connect one time for each of the button press,
+ button release and key press/release functions. The base class deals with
+ callbacks and multiple connections. This fixes flakiness on some backends
+ (tk, wx) in the presence of multiple connections and/or disconnect - JDH
-2004-12-27 Fixed PS mathtext bug where color was not set - Jochen
- please verify correct - JDH
+2004-12-27
+ Fixed PS mathtext bug where color was not set - Jochen please verify
+ correct - JDH
-2004-12-27 Added Shadow class and added shadow kwarg to legend and pie
- for shadow effect - JDH
+2004-12-27
+ Added Shadow class and added shadow kwarg to legend and pie for shadow
+ effect - JDH
-2004-12-27 Added pie charts and new example/pie_demo.py
+2004-12-27
+ Added pie charts and new example/pie_demo.py
-2004-12-23 Fixed an agg text rotation alignment bug, fixed some text
- kwarg processing bugs, and added examples/text_rotation.py
- to explain and demonstrate how text rotations and alignment
- work in matplotlib. - JDH
+2004-12-23
+ Fixed an agg text rotation alignment bug, fixed some text kwarg processing
+ bugs, and added examples/text_rotation.py to explain and demonstrate how
+ text rotations and alignment work in matplotlib. - JDH
-----------------------
-2004-12-22 0.65.1 released - JDH
+0.65.1 (2004-12-22)
+-------------------
-2004-12-22 Fixed colorbar bug which caused colorbar not to respond to
- changes in colormap in some instances - JDH
+2004-12-22
+ Fixed colorbar bug which caused colorbar not to respond to changes in
+ colormap in some instances - JDH
-2004-12-22 Refactored NavigationToolbar in tkagg to support app
- embedding , init now takes (canvas, window) rather than
- (canvas, figman) - JDH
+2004-12-22
+ Refactored NavigationToolbar in tkagg to support app embedding , init now
+ takes (canvas, window) rather than (canvas, figman) - JDH
-2004-12-21 Refactored axes and subplot management - removed
- add_subplot and add_axes from the FigureManager. classic
- toolbar updates are done via an observer pattern on the
- figure using add_axobserver. Figure now maintains the axes
- stack (for gca) and supports axes deletion. Ported changes
- to GTK, Tk, Wx, and FLTK. Please test! Added delaxes - JDH
+2004-12-21
+ Refactored axes and subplot management - removed add_subplot and add_axes
+ from the FigureManager. classic toolbar updates are done via an observer
+ pattern on the figure using add_axobserver. Figure now maintains the axes
+ stack (for gca) and supports axes deletion. Ported changes to GTK, Tk, Wx,
+ and FLTK. Please test! Added delaxes - JDH
-2004-12-21 Lots of image optimizations - 4x performance boost over
- 0.65 JDH
+2004-12-21
+ Lots of image optimizations - 4x performance boost over 0.65 JDH
-2004-12-20 Fixed a figimage bug where the axes is shown and modified
- tkagg to move the destroy binding into the show method.
+2004-12-20
+ Fixed a figimage bug where the axes is shown and modified tkagg to move the
+ destroy binding into the show method.
-2004-12-18 Minor refactoring of NavigationToolbar2 to support
- embedding in an application - JDH
+2004-12-18
+ Minor refactoring of NavigationToolbar2 to support embedding in an
+ application - JDH
-2004-12-14 Added linestyle to collections (currently broken) - JDH
+2004-12-14
+ Added linestyle to collections (currently broken) - JDH
-2004-12-14 Applied Nadia's setupext patch to fix libstdc++ link
- problem with contour and solaris -JDH
+2004-12-14
+ Applied Nadia's setupext patch to fix libstdc++ link problem with contour
+ and solaris -JDH
-2004-12-14 A number of pychecker inspired fixes, including removal of
- True and False from cbook which I erroneously thought was
- needed for python2.2 - JDH
+2004-12-14
+ A number of pychecker inspired fixes, including removal of True and False
+ from cbook which I erroneously thought was needed for python2.2 - JDH
-2004-12-14 Finished porting doc strings for set introspection.
- Used silent_list for many get funcs that return
- lists. JDH
+2004-12-14
+ Finished porting doc strings for set introspection. Used silent_list for
+ many get funcs that return lists. JDH
-2004-12-13 dates.py: removed all timezone() calls, except for UTC - SC
+2004-12-13
+ dates.py: removed all timezone() calls, except for UTC - SC
----------------------------
-2004-12-13 0.65 released - JDH
-
-2004-12-13 colors.py: rgb2hex(), hex2color() made simpler (and faster), also
- rgb2hex() - added round() instead of integer truncation
- hex2color() - changed 256.0 divisor to 255.0, so now
- '#ffffff' becomes (1.0,1.0,1.0) not (0.996,0.996,0.996) - SC
+0.65 (2004-12-13)
+-----------------
-2004-12-11 Added ion and ioff to pylab interface - JDH
+2004-12-13
+ colors.py: rgb2hex(), hex2color() made simpler (and faster), also rgb2hex()
+ - added round() instead of integer truncation hex2color() - changed 256.0
+ divisor to 255.0, so now '#ffffff' becomes (1.0,1.0,1.0) not
+ (0.996,0.996,0.996) - SC
-2004-12-11 backend_template.py: delete FigureCanvasTemplate.realize() - most
- backends don't use it and its no longer needed
+2004-12-11
+ Added ion and ioff to pylab interface - JDH
- backend_ps.py, backend_svg.py: delete show() and
- draw_if_interactive() - they are not needed for image backends
+2004-12-11
+ backend_template.py: delete FigureCanvasTemplate.realize() - most backends
+ don't use it and its no longer needed
- backend_svg.py: write direct to file instead of StringIO
- - SC
+ backend_ps.py, backend_svg.py: delete show() and draw_if_interactive() -
+ they are not needed for image backends
-2004-12-10 Added zorder to artists to control drawing order of lines,
- patches and text in axes. See examples/zoder_demo.py - JDH
+ backend_svg.py: write direct to file instead of StringIO
-2004-12-10 Fixed colorbar bug with scatter - JDH
+ - SC
-2004-12-10 Added Nadia Dencheva contour code - JDH
+2004-12-10
+ Added zorder to artists to control drawing order of lines, patches and text
+ in axes. See examples/zoder_demo.py - JDH
-2004-12-10 backend_cairo.py: got mathtext working - SC
+2004-12-10
+ Fixed colorbar bug with scatter - JDH
-2004-12-09 Added Norm Peterson's svg clipping patch
+2004-12-10
+ Added Nadia Dencheva contour code - JDH
-2004-12-09 Added Matthew Newville's wx printing patch
+2004-12-10
+ backend_cairo.py: got mathtext working - SC
-2004-12-09 Migrated matlab to pylab - JDH
+2004-12-09
+ Added Norm Peterson's svg clipping patch
-2004-12-09 backend_gtk.py: split into two parts
- - backend_gdk.py - an image backend
- - backend_gtk.py - A GUI backend that uses GDK - SC
+2004-12-09
+ Added Matthew Newville's wx printing patch
-2004-12-08 backend_gtk.py: remove quit_after_print_xvfb(\*args), show_xvfb(),
- Dialog_MeasureTool(gtk.Dialog) one month after sending mail to
- matplotlib-users asking if anyone still uses these functions - SC
+2004-12-09
+ Migrated matlab to pylab - JDH
-2004-12-02 backend_bases.py, backend_template.py: updated some of the method
- documentation to make them consistent with each other - SC
+2004-12-09
+ backend_gtk.py: split into two parts
-2004-12-04 Fixed multiple bindings per event for TkAgg mpl_connect and
- mpl_disconnect. Added a "test_disconnect" command line
- parameter to coords_demo.py JTM
+ - backend_gdk.py - an image backend
+ - backend_gtk.py - A GUI backend that uses GDK - SC
-2004-12-04 Fixed some legend bugs JDH
+2004-12-08
+ backend_gtk.py: remove quit_after_print_xvfb(\*args), show_xvfb(),
+ Dialog_MeasureTool(gtk.Dialog) one month after sending mail to
+ matplotlib-users asking if anyone still uses these functions - SC
-2004-11-30 Added over command for oneoff over plots. e.g., over(plot, x,
- y, lw=2). Works with any plot function.
+2004-12-02
+ backend_bases.py, backend_template.py: updated some of the method
+ documentation to make them consistent with each other - SC
-2004-11-30 Added bbox property to text - JDH
+2004-12-04
+ Fixed multiple bindings per event for TkAgg mpl_connect and mpl_disconnect.
+ Added a "test_disconnect" command line parameter to coords_demo.py JTM
-2004-11-29 Zoom to rect now respect reversed axes limits (for both
- linear and log axes). - GL
+2004-12-04
+ Fixed some legend bugs JDH
-2004-11-29 Added the over command to the matlab interface. over
- allows you to add an overlay plot regardless of hold
- state. - JDH
+2004-11-30
+ Added over command for oneoff over plots. e.g., over(plot, x, y, lw=2).
+ Works with any plot function.
-2004-11-25 Added Printf to mplutils for printf style format string
- formatting in C++ (should help write better exceptions)
+2004-11-30
+ Added bbox property to text - JDH
-2004-11-24 IMAGE_FORMAT: remove from agg and gtkagg backends as its no longer
- used - SC
+2004-11-29
+ Zoom to rect now respect reversed axes limits (for both linear and log
+ axes). - GL
-2004-11-23 Added matplotlib compatible set and get introspection. See
- set_and_get.py
+2004-11-29
+ Added the over command to the matlab interface. over allows you to add an
+ overlay plot regardless of hold state. - JDH
-2004-11-23 applied Norbert's patched and exposed legend configuration
- to kwargs - JDH
+2004-11-25
+ Added Printf to mplutils for printf style format string formatting in C++
+ (should help write better exceptions)
-2004-11-23 backend_gtk.py: added a default exception handler - SC
+2004-11-24
+ IMAGE_FORMAT: remove from agg and gtkagg backends as its no longer used -
+ SC
-2004-11-18 backend_gtk.py: change so that the backend knows about all image
- formats and does not need to use IMAGE_FORMAT in other backends - SC
+2004-11-23
+ Added matplotlib compatible set and get introspection. See set_and_get.py
-2004-11-18 Fixed some report_error bugs in string interpolation as
- reported on SF bug tracker- JDH
+2004-11-23
+ applied Norbert's patched and exposed legend configuration to kwargs - JDH
-2004-11-17 backend_gtkcairo.py: change so all print_figure() calls render using
- Cairo and get saved using backend_gtk.print_figure() - SC
+2004-11-23
+ backend_gtk.py: added a default exception handler - SC
-2004-11-13 backend_cairo.py: Discovered the magic number (96) required for
- Cairo PS plots to come out the right size. Restored Cairo PS output
- and added support for landscape mode - SC
+2004-11-18
+ backend_gtk.py: change so that the backend knows about all image formats
+ and does not need to use IMAGE_FORMAT in other backends - SC
-2004-11-13 Added ishold - JDH
+2004-11-18
+ Fixed some report_error bugs in string interpolation as reported on SF bug
+ tracker- JDH
-2004-11-12 Added many new matlab colormaps - autumn bone cool copper
- flag gray hot hsv jet pink prism spring summer winter - PG
+2004-11-17
+ backend_gtkcairo.py: change so all print_figure() calls render using Cairo
+ and get saved using backend_gtk.print_figure() - SC
-2004-11-11 greatly simplify the emitted postscript code - JV
+2004-11-13
+ backend_cairo.py: Discovered the magic number (96) required for Cairo PS
+ plots to come out the right size. Restored Cairo PS output and added
+ support for landscape mode - SC
-2004-11-12 Added new plotting functions spy, spy2 for sparse matrix
- visualization - JDH
+2004-11-13
+ Added ishold - JDH
-2004-11-11 Added rgrids, thetragrids for customizing the grid
- locations and labels for polar plots - JDH
+2004-11-12
+ Added many new matlab colormaps - autumn bone cool copper flag gray hot hsv
+ jet pink prism spring summer winter - PG
-2004-11-11 make the Gtk backends build without an X-server connection - JV
+2004-11-11
+ greatly simplify the emitted postscript code - JV
-2004-11-10 matplotlib/__init__.py: Added FROZEN to signal we are running under
- py2exe (or similar) - is used by backend_gtk.py - SC
+2004-11-12
+ Added new plotting functions spy, spy2 for sparse matrix visualization -
+ JDH
-2004-11-09 backend_gtk.py: Made fix suggested by maffew@cat.org.au
- to prevent problems when py2exe calls pygtk.require(). - SC
+2004-11-11
+ Added rgrids, thetragrids for customizing the grid locations and labels for
+ polar plots - JDH
-2004-11-09 backend_cairo.py: Added support for printing to a fileobject.
- Disabled cairo PS output which is not working correctly. - SC
+2004-11-11
+ make the Gtk backends build without an X-server connection - JV
-----------------------------------
+2004-11-10
+ matplotlib/__init__.py: Added FROZEN to signal we are running under py2exe
+ (or similar) - is used by backend_gtk.py - SC
-2004-11-08 matplotlib-0.64 released
+2004-11-09
+ backend_gtk.py: Made fix suggested by maffew@cat.org.au to prevent problems
+ when py2exe calls pygtk.require(). - SC
-2004-11-04 Changed -dbackend processing to only use known backends, so
- we don't clobber other non-matplotlib uses of -d, like -debug.
+2004-11-09
+ backend_cairo.py: Added support for printing to a fileobject. Disabled
+ cairo PS output which is not working correctly. - SC
-2004-11-04 backend_agg.py: added IMAGE_FORMAT to list the formats that the
- backend can save to.
- backend_gtkagg.py: added support for saving JPG files by using the
- GTK backend - SC
+----------------------------------
-2004-10-31 backend_cairo.py: now produces png and ps files (although the figure
- sizing needs some work). pycairo did not wrap all the necessary
- functions, so I wrapped them myself, they are included in the
- backend_cairo.py doc string. - SC
+0.64 (2004-11-08)
+-----------------
+
+2004-11-04
+ Changed -dbackend processing to only use known backends, so we don't
+ clobber other non-matplotlib uses of -d, like -debug.
+
+2004-11-04
+ backend_agg.py: added IMAGE_FORMAT to list the formats that the backend can
+ save to. backend_gtkagg.py: added support for saving JPG files by using
+ the GTK backend - SC
-2004-10-31 backend_ps.py: clean up the generated PostScript code, use
- the PostScript stack to hold itermediate values instead of
- storing them in the dictionary. - JV
+2004-10-31
+ backend_cairo.py: now produces png and ps files (although the figure sizing
+ needs some work). pycairo did not wrap all the necessary functions, so I
+ wrapped them myself, they are included in the backend_cairo.py doc string.
+ - SC
-2004-10-30 backend_ps.py, ft2font.cpp, ft2font.h: fix the position of
- text in the PostScript output. The new FT2Font method
- get_descent gives the distance between the lower edge of
- the bounding box and the baseline of a string. In
- backend_ps the text is shifted upwards by this amount. - JV
+2004-10-31
+ backend_ps.py: clean up the generated PostScript code, use the PostScript
+ stack to hold itermediate values instead of storing them in the dictionary.
+ - JV
-2004-10-30 backend_ps.py: clean up the code a lot. Change the
- PostScript output to be more DSC compliant. All
- definitions for the generated PostScript are now in a
- PostScript dictionary 'mpldict'. Moved the long comment
- about drawing ellipses from the PostScript output into a
- Python comment. - JV
+2004-10-30
+ backend_ps.py, ft2font.cpp, ft2font.h: fix the position of text in the
+ PostScript output. The new FT2Font method get_descent gives the distance
+ between the lower edge of the bounding box and the baseline of a string.
+ In backend_ps the text is shifted upwards by this amount. - JV
-2004-10-30 backend_gtk.py: removed FigureCanvasGTK.realize() as its no longer
- needed. Merged ColorManager into GraphicsContext
- backend_bases.py: For set_capstyle/joinstyle() only set cap or
- joinstyle if there is no error. - SC
+2004-10-30
+ backend_ps.py: clean up the code a lot. Change the PostScript output to be
+ more DSC compliant. All definitions for the generated PostScript are now
+ in a PostScript dictionary 'mpldict'. Moved the long comment about drawing
+ ellipses from the PostScript output into a Python comment. - JV
-2004-10-30 backend_gtk.py: tidied up print_figure() and removed some of the
- dependency on widget events - SC
+2004-10-30
+ backend_gtk.py: removed FigureCanvasGTK.realize() as its no longer needed.
+ Merged ColorManager into GraphicsContext backend_bases.py: For
+ set_capstyle/joinstyle() only set cap or joinstyle if there is no error. -
+ SC
-2004-10-28 backend_cairo.py: The renderer is complete except for mathtext,
- draw_image() and clipping. gtkcairo works reasonably well. cairo
- does not yet create any files since I can't figure how to set the
- 'target surface', I don't think pycairo wraps the required functions
- - SC
+2004-10-30
+ backend_gtk.py: tidied up print_figure() and removed some of the dependency
+ on widget events - SC
-2004-10-28 backend_gtk.py: Improved the save dialog (GTK 2.4 only) so it
- presents the user with a menu of supported image formats - SC
+2004-10-28
+ backend_cairo.py: The renderer is complete except for mathtext,
+ draw_image() and clipping. gtkcairo works reasonably well. cairo does not
+ yet create any files since I can't figure how to set the 'target surface',
+ I don't think pycairo wraps the required functions - SC
-2004-10-28 backend_svg.py: change print_figure() to restore original face/edge
- color
- backend_ps.py : change print_figure() to ensure original face/edge
- colors are restored even if there's an IOError - SC
+2004-10-28
+ backend_gtk.py: Improved the save dialog (GTK 2.4 only) so it presents the
+ user with a menu of supported image formats - SC
-2004-10-27 Applied Norbert's errorbar patch to support barsabove kwarg
+2004-10-28
+ backend_svg.py: change print_figure() to restore original face/edge color
+ backend_ps.py : change print_figure() to ensure original face/edge colors
+ are restored even if there's an IOError - SC
-2004-10-27 Applied Norbert's legend patch to support None handles
+2004-10-27
+ Applied Norbert's errorbar patch to support barsabove kwarg
-2004-10-27 Added two more backends: backend_cairo.py, backend_gtkcairo.py
- They are not complete yet, currently backend_gtkcairo just renders
- polygons, rectangles and lines - SC
+2004-10-27
+ Applied Norbert's legend patch to support None handles
-2004-10-21 Added polar axes and plots - JDH
+2004-10-27
+ Added two more backends: backend_cairo.py, backend_gtkcairo.py They are not
+ complete yet, currently backend_gtkcairo just renders polygons, rectangles
+ and lines - SC
-2004-10-20 Fixed corrcoef bug exposed by corrcoef(X) where X is matrix
- - JDH
+2004-10-21
+ Added polar axes and plots - JDH
-2004-10-19 Added kwarg support to xticks and yticks to set ticklabel
- text properties -- thanks to T. Edward Whalen for the suggestion
+2004-10-20
+ Fixed corrcoef bug exposed by corrcoef(X) where X is matrix - JDH
-2004-10-19 Added support for PIL images in imshow(), image.py - ADS
+2004-10-19
+ Added kwarg support to xticks and yticks to set ticklabel text properties
+ -- thanks to T. Edward Whalen for the suggestion
-2004-10-19 Re-worked exception handling in _image.py and _transforms.py
- to avoid masking problems with shared libraries. - JTM
+2004-10-19
+ Added support for PIL images in imshow(), image.py - ADS
-2004-10-16 Streamlined the matlab interface wrapper, removed the
- noplot option to hist - just use mlab.hist instead.
+2004-10-19
+ Re-worked exception handling in _image.py and _transforms.py to avoid
+ masking problems with shared libraries. - JTM
-2004-09-30 Added Andrew Dalke's strftime code to extend the range of
- dates supported by the DateFormatter - JDH
+2004-10-16
+ Streamlined the matlab interface wrapper, removed the noplot option to hist
+ - just use mlab.hist instead.
-2004-09-30 Added barh - JDH
+2004-09-30
+ Added Andrew Dalke's strftime code to extend the range of dates supported
+ by the DateFormatter - JDH
-2004-09-30 Removed fallback to alternate array package from numerix
- so that ImportErrors are easier to debug. JTM
+2004-09-30
+ Added barh - JDH
-2004-09-30 Add GTK+ 2.4 support for the message in the toolbar. SC
+2004-09-30
+ Removed fallback to alternate array package from numerix so that
+ ImportErrors are easier to debug. - JTM
-2004-09-30 Made some changes to support python22 - lots of doc
- fixes. - JDH
+2004-09-30
+ Add GTK+ 2.4 support for the message in the toolbar. SC
-2004-09-29 Added a Verbose class for reporting - JDH
+2004-09-30
+ Made some changes to support python22 - lots of doc fixes. - JDH
+
+2004-09-29
+ Added a Verbose class for reporting - JDH
------------------------------------
-2004-09-28 Released 0.63.0
-
-2004-09-28 Added save to file object for agg - see
- examples/print_stdout.py
-
-2004-09-24 Reorganized all py code to lib subdir
-
-2004-09-24 Fixed axes resize image edge effects on interpolation -
- required upgrade to agg22 which fixed an agg bug related to
- this problem
-
-2004-09-20 Added toolbar2 message display for backend_tkagg. JTM
-
-
-2004-09-17 Added coords formatter attributes. These must be callable,
- and return a string for the x or y data. These will be used
- to format the x and y data for the coords box. Default is
- the axis major formatter. e.g.:
-
- # format the coords message box
- def price(x): return '$%1.2f'%x
- ax.format_xdata = DateFormatter('%Y-%m-%d')
- ax.format_ydata = price
-
-
-2004-09-17 Total rewrite of dates handling to use python datetime with
- num2date, date2num and drange. pytz for timezone handling,
- dateutils for spohisticated ticking. date ranges from
- 0001-9999 are supported. rrules allow arbitrary date
- ticking. examples/date_demo*.py converted to show new
- usage. new example examples/date_demo_rrule.py shows how
- to use rrules in date plots. The date locators are much
- more general and almost all of them have different
- constructors. See matplotlib.dates for more info.
-
-2004-09-15 Applied Fernando's backend __init__ patch to support easier
- backend maintenance. Added his numutils to mlab. JDH
-
-2004-09-16 Re-designated all files in matplotlib/images as binary and
- w/o keyword substitution using "cvs admin -kb \*.svg ...".
- See binary files in "info cvs" under Linux. This was messing
- up builds from CVS on windows since CVS was doing lf -> cr/lf
- and keyword substitution on the bitmaps. - JTM
-
-2004-09-15 Modified setup to build array-package-specific extensions
- for those extensions which are array-aware. Setup builds
- extensions automatically for either Numeric, numarray, or
- both, depending on what you have installed. Python proxy
- modules for the array-aware extensions import the version
- optimized for numarray or Numeric determined by numerix.
- - JTM
-
-2004-09-15 Moved definitions of infinity from mlab to numerix to avoid
- divide by zero warnings for numarray - JTM
-
-2004-09-09 Added axhline, axvline, axhspan and axvspan
+2004-09-28
+ Released 0.63.0
+
+2004-09-28
+ Added save to file object for agg - see examples/print_stdout.py
+
+2004-09-24
+ Reorganized all py code to lib subdir
+
+2004-09-24
+ Fixed axes resize image edge effects on interpolation - required upgrade to
+ agg22 which fixed an agg bug related to this problem
+
+2004-09-20
+ Added toolbar2 message display for backend_tkagg. JTM
+
+2004-09-17
+ Added coords formatter attributes. These must be callable, and return a
+ string for the x or y data. These will be used to format the x and y data
+ for the coords box. Default is the axis major formatter. e.g.::
+
+ # format the coords message box
+ def price(x): return '$%1.2f'%x
+ ax.format_xdata = DateFormatter('%Y-%m-%d')
+ ax.format_ydata = price
+
+2004-09-17
+ Total rewrite of dates handling to use python datetime with num2date,
+ date2num and drange. pytz for timezone handling, dateutils for
+ spohisticated ticking. date ranges from 0001-9999 are supported. rrules
+ allow arbitrary date ticking. examples/date_demo*.py converted to show new
+ usage. new example examples/date_demo_rrule.py shows how to use rrules in
+ date plots. The date locators are much more general and almost all of them
+ have different constructors. See matplotlib.dates for more info.
+
+2004-09-15
+ Applied Fernando's backend __init__ patch to support easier backend
+ maintenance. Added his numutils to mlab. JDH
+
+2004-09-16
+ Re-designated all files in matplotlib/images as binary and w/o keyword
+ substitution using "cvs admin -kb \*.svg ...". See binary files in "info
+ cvs" under Linux. This was messing up builds from CVS on windows since CVS
+ was doing lf -> cr/lf and keyword substitution on the bitmaps. - JTM
+
+2004-09-15
+ Modified setup to build array-package-specific extensions for those
+ extensions which are array-aware. Setup builds extensions automatically
+ for either Numeric, numarray, or both, depending on what you have
+ installed. Python proxy modules for the array-aware extensions import the
+ version optimized for numarray or Numeric determined by numerix. - JTM
+
+2004-09-15
+ Moved definitions of infinity from mlab to numerix to avoid divide by zero
+ warnings for numarray - JTM
+
+2004-09-09
+ Added axhline, axvline, axhspan and axvspan
-------------------------------
-2004-08-30 matplotlib 0.62.4 released
+0.62.4 (2004-08-30)
+-------------------
-2004-08-30 Fixed a multiple images with different extent bug,
- Fixed markerfacecolor as RGB tuple
+2004-08-30
+ Fixed a multiple images with different extent bug, Fixed markerfacecolor as
+ RGB tuple
-2004-08-27 Mathtext now more than 5x faster. Thanks to Paul Mcguire
- for fixes both to pyparsing and to the matplotlib grammar!
- mathtext broken on python2.2
+2004-08-27
+ Mathtext now more than 5x faster. Thanks to Paul Mcguire for fixes both to
+ pyparsing and to the matplotlib grammar! mathtext broken on python2.2
-2004-08-25 Exposed Darren's and Greg's log ticking and formatting
- options to semilogx and friends
+2004-08-25
+ Exposed Darren's and Greg's log ticking and formatting options to semilogx
+ and friends
-2004-08-23 Fixed grid w/o args to toggle grid state - JDH
+2004-08-23
+ Fixed grid w/o args to toggle grid state - JDH
-2004-08-11 Added Gregory's log patches for major and minor ticking
+2004-08-11
+ Added Gregory's log patches for major and minor ticking
-2004-08-18 Some pixel edge effects fixes for images
+2004-08-18
+ Some pixel edge effects fixes for images
-2004-08-18 Fixed TTF files reads in backend_ps on win32.
+2004-08-18
+ Fixed TTF files reads in backend_ps on win32.
-2004-08-18 Added base and subs properties for logscale plots, user
- modifiable using
- set_[x,y]scale('log',base=b,subs=[mt1,mt2,...]) - GL
+2004-08-18
+ Added base and subs properties for logscale plots, user modifiable using
+ set_[x,y]scale('log',base=b,subs=[mt1,mt2,...]) - GL
-2004-08-18 fixed a bug exposed by trying to find the HOME dir on win32
- thanks to Alan Issac for pointing to the light - JDH
+2004-08-18
+ fixed a bug exposed by trying to find the HOME dir on win32 thanks to Alan
+ Issac for pointing to the light - JDH
-2004-08-18 fixed errorbar bug in setting ecolor - JDH
+2004-08-18
+ fixed errorbar bug in setting ecolor - JDH
-2004-08-12 Added Darren Dale's exponential ticking patch
+2004-08-12
+ Added Darren Dale's exponential ticking patch
-2004-08-11 Added Gregory's fltkagg backend
+2004-08-11
+ Added Gregory's fltkagg backend
------------------------------
-2004-08-09 matplotlib-0.61.0 released
+0.61.0 (2004-08-09)
+-------------------
-2004-08-08 backend_gtk.py: get rid of the final PyGTK deprecation warning by
- replacing gtkOptionMenu with gtkMenu in the 2.4 version of the
- classic toolbar.
+2004-08-08
+ backend_gtk.py: get rid of the final PyGTK deprecation warning by replacing
+ gtkOptionMenu with gtkMenu in the 2.4 version of the classic toolbar.
-2004-08-06 Added Tk zoom to rect rectangle, proper idle drawing, and
- keybinding - JDH
+2004-08-06
+ Added Tk zoom to rect rectangle, proper idle drawing, and keybinding - JDH
-2004-08-05 Updated installing.html and INSTALL - JDH
+2004-08-05
+ Updated installing.html and INSTALL - JDH
-2004-08-01 backend_gtk.py: move all drawing code into the expose_event()
+2004-08-01
+ backend_gtk.py: move all drawing code into the expose_event()
-2004-07-28 Added Greg's toolbar2 and backend_*agg patches - JDH
+2004-07-28
+ Added Greg's toolbar2 and backend_*agg patches - JDH
-2004-07-28 Added image.imread with support for loading png into
- numerix arrays
+2004-07-28
+ Added image.imread with support for loading png into numerix arrays
-2004-07-28 Added key modifiers to events - implemented dynamic updates
- and rubber banding for interactive pan/zoom - JDH
+2004-07-28
+ Added key modifiers to events - implemented dynamic updates and rubber
+ banding for interactive pan/zoom - JDH
-2004-07-27 did a readthrough of SVG, replacing all the string
- additions with string interps for efficiency, fixed some
- layout problems, added font and image support (through
- external pngs) - JDH
+2004-07-27
+ did a readthrough of SVG, replacing all the string additions with string
+ interps for efficiency, fixed some layout problems, added font and image
+ support (through external pngs) - JDH
-2004-07-25 backend_gtk.py: modify toolbar2 to make it easier to support GTK+
- 2.4. Add GTK+ 2.4 toolbar support. - SC
+2004-07-25
+ backend_gtk.py: modify toolbar2 to make it easier to support GTK+ 2.4. Add
+ GTK+ 2.4 toolbar support. - SC
-2004-07-24 backend_gtk.py: Simplified classic toolbar creation - SC
+2004-07-24
+ backend_gtk.py: Simplified classic toolbar creation - SC
-2004-07-24 Added images/matplotlib.svg to be used when GTK+ windows are
- minimised - SC
+2004-07-24
+ Added images/matplotlib.svg to be used when GTK+ windows are minimised - SC
-2004-07-22 Added right mouse click zoom for NavigationToolbar2 panning
- mode. - JTM
+2004-07-22
+ Added right mouse click zoom for NavigationToolbar2 panning mode. - JTM
-2004-07-22 Added NavigationToolbar2 support to backend_tkagg.
- Minor tweak to backend_bases. - JTM
+2004-07-22
+ Added NavigationToolbar2 support to backend_tkagg. Minor tweak to
+ backend_bases. - JTM
-2004-07-22 Incorporated Gergory's renderer cache and buffer object
- cache - JDH
+2004-07-22
+ Incorporated Gergory's renderer cache and buffer object cache - JDH
-2004-07-22 Backend_gtk.py: Added support for GtkFileChooser, changed
- FileSelection/FileChooser so that only one instance pops up,
- and made them both modal. - SC
+2004-07-22
+ Backend_gtk.py: Added support for GtkFileChooser, changed
+ FileSelection/FileChooser so that only one instance pops up, and made them
+ both modal. - SC
-2004-07-21 Applied backend_agg memory leak patch from hayden -
- jocallo@online.no. Found and fixed a leak in binary
- operations on transforms. Moral of the story: never incref
- where you meant to decref! Fixed several leaks in ft2font:
- moral of story: almost always return Py::asObject over
- Py::Object - JDH
+2004-07-21
+ Applied backend_agg memory leak patch from hayden - jocallo@online.no.
+ Found and fixed a leak in binary operations on transforms. Moral of the
+ story: never incref where you meant to decref! Fixed several leaks in
+ ft2font: moral of story: almost always return Py::asObject over Py::Object
+ - JDH
-2004-07-21 Fixed a to string memory allocation bug in agg and image
- modules - JDH
+2004-07-21
+ Fixed a to string memory allocation bug in agg and image modules - JDH
-2004-07-21 Added mpl_connect and mpl_disconnect to matlab interface -
- JDH
+2004-07-21
+ Added mpl_connect and mpl_disconnect to matlab interface - JDH
-2004-07-21 Added beginnings of users_guide to CVS - JDH
+2004-07-21
+ Added beginnings of users_guide to CVS - JDH
-2004-07-20 ported toolbar2 to wx
+2004-07-20
+ ported toolbar2 to wx
-2004-07-20 upgraded to agg21 - JDH
+2004-07-20
+ upgraded to agg21 - JDH
-2004-07-20 Added new icons for toolbar2 - JDH
+2004-07-20
+ Added new icons for toolbar2 - JDH
-2004-07-19 Added vertical mathtext for \*Agg and GTK - thanks Jim
- Benson! - JDH
+2004-07-19
+ Added vertical mathtext for \*Agg and GTK - thanks Jim Benson! - JDH
-2004-07-16 Added ps/eps/svg savefig options to wx and gtk JDH
+2004-07-16
+ Added ps/eps/svg savefig options to wx and gtk JDH
-2004-07-15 Fixed python framework tk finder in setupext.py - JDH
+2004-07-15
+ Fixed python framework tk finder in setupext.py - JDH
-2004-07-14 Fixed layer images demo which was broken by the 07/12 image
- extent fixes - JDH
+2004-07-14
+ Fixed layer images demo which was broken by the 07/12 image extent fixes -
+ JDH
-2004-07-13 Modified line collections to handle arbitrary length
- segments for each line segment. - JDH
+2004-07-13
+ Modified line collections to handle arbitrary length segments for each line
+ segment. - JDH
-2004-07-13 Fixed problems with image extent and origin -
- set_image_extent deprecated. Use imshow(blah, blah,
- extent=(xmin, xmax, ymin, ymax) instead - JDH
+2004-07-13
+ Fixed problems with image extent and origin - set_image_extent deprecated.
+ Use imshow(blah, blah, extent=(xmin, xmax, ymin, ymax) instead - JDH
-2004-07-12 Added prototype for new nav bar with codifed event
- handling. Use mpl_connect rather than connect for
- matplotlib event handling. toolbar style determined by rc
- toolbar param. backend status: gtk: prototype, wx: in
- progress, tk: not started - JDH
+2004-07-12
+ Added prototype for new nav bar with codifed event handling. Use
+ mpl_connect rather than connect for matplotlib event handling. toolbar
+ style determined by rc toolbar param. backend status: gtk: prototype, wx:
+ in progress, tk: not started - JDH
-2004-07-11 backend_gtk.py: use builtin round() instead of redefining it.
- - SC
+2004-07-11
+ backend_gtk.py: use builtin round() instead of redefining it. - SC
-2004-07-10 Added embedding_in_wx3 example - ADS
+2004-07-10
+ Added embedding_in_wx3 example - ADS
-2004-07-09 Added dynamic_image_wxagg to examples - ADS
+2004-07-09
+ Added dynamic_image_wxagg to examples - ADS
-2004-07-09 added support for embedding TrueType fonts in PS files - PEB
+2004-07-09
+ added support for embedding TrueType fonts in PS files - PEB
-2004-07-09 fixed a sfnt bug exposed if font cache is not built
+2004-07-09
+ fixed a sfnt bug exposed if font cache is not built
-2004-07-09 added default arg None to matplotlib.matlab grid command to
- toggle current grid state
+2004-07-09
+ added default arg None to matplotlib.matlab grid command to toggle current
+ grid state
---------------------
-2004-07-08 0.60.2 released
+0.60.2 (2004-07-08)
+-------------------
-2004-07-08 fixed a mathtext bug for '6'
+2004-07-08
+ fixed a mathtext bug for '6'
-2004-07-08 added some numarray bug workarounds
+2004-07-08
+ added some numarray bug workarounds
--------------------------
-2004-07-07 0.60 released
-
-2004-07-07 Fixed a bug in dynamic_demo_wx
-
+0.60 (2004-07-07)
+-----------------
-2004-07-07 backend_gtk.py: raise SystemExit immediately if
- 'import pygtk' fails - SC
+2004-07-07
+ Fixed a bug in dynamic_demo_wx
-2004-07-05 Added new mathtext commands \over{sym1}{sym2} and
- \under{sym1}{sym2}
+2004-07-07
+ backend_gtk.py: raise SystemExit immediately if 'import pygtk' fails - SC
-2004-07-05 Unified image and patch collections colormapping and
- scaling args. Updated docstrings for all - JDH
+2004-07-05
+ Added new mathtext commands \over{sym1}{sym2} and \under{sym1}{sym2}
-2004-07-05 Fixed a figure legend bug and added
- examples/figlegend_demo.py - JDH
+2004-07-05
+ Unified image and patch collections colormapping and scaling args. Updated
+ docstrings for all - JDH
-2004-07-01 Fixed a memory leak in image and agg to string methods
+2004-07-05
+ Fixed a figure legend bug and added examples/figlegend_demo.py - JDH
-2004-06-25 Fixed fonts_demo spacing problems and added a kwargs
- version of the fonts_demo fonts_demo_kw.py - JDH
+2004-07-01
+ Fixed a memory leak in image and agg to string methods
-2004-06-25 finance.py: handle case when urlopen() fails - SC
+2004-06-25
+ Fixed fonts_demo spacing problems and added a kwargs version of the
+ fonts_demo fonts_demo_kw.py - JDH
-2004-06-24 Support for multiple images on axes and figure, with
- blending. Support for upper and lower image origins.
- clim, jet and gray functions in matlab interface operate on
- current image - JDH
+2004-06-25
+ finance.py: handle case when urlopen() fails - SC
-2004-06-23 ported code to Perry's new colormap and norm scheme. Added
- new rc attributes image.aspect, image.interpolation,
- image.cmap, image.lut, image.origin
+2004-06-24
+ Support for multiple images on axes and figure, with blending. Support for
+ upper and lower image origins. clim, jet and gray functions in matlab
+ interface operate on current image - JDH
-2004-06-20 backend_gtk.py: replace gtk.TRUE/FALSE with True/False.
- simplified _make_axis_menu(). - SC
+2004-06-23
+ ported code to Perry's new colormap and norm scheme. Added new rc
+ attributes image.aspect, image.interpolation, image.cmap, image.lut,
+ image.origin
-2004-06-19 anim_tk.py: Updated to use TkAgg by default (not GTK)
- backend_gtk_py: Added '_' in front of private widget
- creation functions - SC
+2004-06-20
+ backend_gtk.py: replace gtk.TRUE/FALSE with True/False. simplified
+ _make_axis_menu(). - SC
-2004-06-17 backend_gtk.py: Create a GC once in realise(), not every
- time draw() is called. - SC
+2004-06-19
+ anim_tk.py: Updated to use TkAgg by default (not GTK) backend_gtk_py: Added
+ '_' in front of private widget creation functions - SC
-2004-06-16 Added new py2exe FAQ entry and added frozen support in
- get_data_path for py2exe - JDH
+2004-06-17
+ backend_gtk.py: Create a GC once in realise(), not every time draw() is
+ called. - SC
-2004-06-16 Removed GTKGD, which was always just a proof-of-concept
- backend - JDH
+2004-06-16
+ Added new py2exe FAQ entry and added frozen support in get_data_path for
+ py2exe - JDH
-2004-06-16 backend_gtk.py updates to replace deprecated functions
- gtk.mainquit(), gtk.mainloop().
- Update NavigationToolbar to use the new GtkToolbar API - SC
+2004-06-16
+ Removed GTKGD, which was always just a proof-of-concept backend - JDH
-2004-06-15 removed set_default_font from font_manager to unify font
- customization using the new function rc. See API_CHANGES
- for more info. The examples fonts_demo.py and
- fonts_demo_kw.py are ported to the new API - JDH
+2004-06-16
+ backend_gtk.py updates to replace deprecated functions gtk.mainquit(),
+ gtk.mainloop(). Update NavigationToolbar to use the new GtkToolbar API -
+ SC
-2004-06-15 Improved (yet again!) axis scaling to properly handle
- singleton plots - JDH
+2004-06-15
+ removed set_default_font from font_manager to unify font customization
+ using the new function rc. See API_CHANGES for more info. The examples
+ fonts_demo.py and fonts_demo_kw.py are ported to the new API - JDH
-2004-06-15 Restored the old FigureCanvasGTK.draw() - SC
+2004-06-15
+ Improved (yet again!) axis scaling to properly handle singleton plots - JDH
-2004-06-11 More memory leak fixes in transforms and ft2font - JDH
+2004-06-15
+ Restored the old FigureCanvasGTK.draw() - SC
-2004-06-11 Eliminated numerix .numerix file and environment variable
- NUMERIX. Fixed bug which prevented command line overrides:
- --numarray or --numeric. - JTM
+2004-06-11
+ More memory leak fixes in transforms and ft2font - JDH
-2004-06-10 Added rc configuration function rc; deferred all rc param
- setting until object creation time; added new rc attrs:
- lines.markerfacecolor, lines.markeredgecolor,
- lines.markeredgewidth, patch.linewidth, patch.facecolor,
- patch.edgecolor, patch.antialiased; see
- examples/customize_rc.py for usage - JDH
+2004-06-11
+ Eliminated numerix .numerix file and environment variable NUMERIX. Fixed
+ bug which prevented command line overrides: --numarray or --numeric. - JTM
+2004-06-10
+ Added rc configuration function rc; deferred all rc param setting until
+ object creation time; added new rc attrs: lines.markerfacecolor,
+ lines.markeredgecolor, lines.markeredgewidth, patch.linewidth,
+ patch.facecolor, patch.edgecolor, patch.antialiased; see
+ examples/customize_rc.py for usage - JDH
---------------------------------------------------------------
-2004-06-09 0.54.2 released
+0.54.2 (2004-06-09)
+-------------------
-2004-06-08 Rewrote ft2font using CXX as part of general memory leak
- fixes; also fixed transform memory leaks - JDH
+2004-06-08
+ Rewrote ft2font using CXX as part of general memory leak fixes; also fixed
+ transform memory leaks - JDH
-2004-06-07 Fixed several problems with log ticks and scaling - JDH
+2004-06-07
+ Fixed several problems with log ticks and scaling - JDH
-2004-06-07 Fixed width/height issues for images - JDH
+2004-06-07
+ Fixed width/height issues for images - JDH
-2004-06-03 Fixed draw_if_interactive bug for semilogx;
+2004-06-03
+ Fixed draw_if_interactive bug for semilogx;
-2004-06-02 Fixed text clipping to clip to axes - JDH
+2004-06-02
+ Fixed text clipping to clip to axes - JDH
-2004-06-02 Fixed leading newline text and multiple newline text - JDH
+2004-06-02
+ Fixed leading newline text and multiple newline text - JDH
-2004-06-02 Fixed plot_date to return lines - JDH
+2004-06-02
+ Fixed plot_date to return lines - JDH
-2004-06-01 Fixed plot to work with x or y having shape N,1 or 1,N - JDH
+2004-06-01
+ Fixed plot to work with x or y having shape N,1 or 1,N - JDH
-2004-05-31 Added renderer markeredgewidth attribute of Line2D. - ADS
+2004-05-31
+ Added renderer markeredgewidth attribute of Line2D. - ADS
-2004-05-29 Fixed tick label clipping to work with navigation.
+2004-05-29
+ Fixed tick label clipping to work with navigation.
-2004-05-28 Added renderer grouping commands to support groups in
+2004-05-28
+ Added renderer grouping commands to support groups in
SVG/PS. - JDH
-2004-05-28 Fixed, this time I really mean it, the singleton plot
- plot([0]) scaling bug; Fixed Flavio's shape = N,1 bug - JDH
+2004-05-28
+ Fixed, this time I really mean it, the singleton plot plot([0]) scaling
+ bug; Fixed Flavio's shape = N,1 bug - JDH
-2004-05-28 added colorbar - JDH
+2004-05-28
+ added colorbar - JDH
-2004-05-28 Made some changes to the matplotlib.colors.Colormap to
- properly support clim - JDH
+2004-05-28
+ Made some changes to the matplotlib.colors.Colormap to properly support
+ clim - JDH
-----------------------------------------------------------------
-2004-05-27 0.54.1 released
+0.54.1 (2004-05-27)
+-------------------
-2004-05-27 Lots of small bug fixes: rotated text at negative angles,
- errorbar capsize and autoscaling, right tick label
- position, gtkagg on win98, alpha of figure background,
- singleton plots - JDH
+2004-05-27
+ Lots of small bug fixes: rotated text at negative angles, errorbar capsize
+ and autoscaling, right tick label position, gtkagg on win98, alpha of
+ figure background, singleton plots - JDH
-2004-05-26 Added Gary's errorbar stuff and made some fixes for length
- one plots and constant data plots - JDH
+2004-05-26
+ Added Gary's errorbar stuff and made some fixes for length one plots and
+ constant data plots - JDH
-2004-05-25 Tweaked TkAgg backend so that canvas.draw() works
- more like the other backends. Fixed a bug resulting
- in 2 draws per figure manager show(). - JTM
+2004-05-25
+ Tweaked TkAgg backend so that canvas.draw() works more like the other
+ backends. Fixed a bug resulting in 2 draws per figure manager show().
+ - JTM
------------------------------------------------------------
-2004-05-19 0.54 released
+0.54 (2004-05-19)
+-----------------
-2004-05-18 Added newline separated text with rotations to text.Text
- layout - JDH
+2004-05-18
+ Added newline separated text with rotations to text.Text layout - JDH
-2004-05-16 Added fast pcolor using PolyCollections. - JDH
+2004-05-16
+ Added fast pcolor using PolyCollections. - JDH
-2004-05-14 Added fast polygon collections - changed scatter to use
- them. Added multiple symbols to scatter. 10x speedup on
- large scatters using \*Agg and 5X speedup for ps. - JDH
+2004-05-14
+ Added fast polygon collections - changed scatter to use them. Added
+ multiple symbols to scatter. 10x speedup on large scatters using \*Agg and
+ 5X speedup for ps. - JDH
-2004-05-14 On second thought... created an "nx" namespace in
- in numerix which maps type names onto typecodes
- the same way for both numarray and Numeric. This
- undoes my previous change immediately below. To get a
- typename for Int16 usable in a Numeric extension:
- say nx.Int16. - JTM
+2004-05-14
+ On second thought... created an "nx" namespace in in numerix which maps
+ type names onto typecodes the same way for both numarray and Numeric. This
+ undoes my previous change immediately below. To get a typename for Int16
+ usable in a Numeric extension: say nx.Int16. - JTM
-2004-05-15 Rewrote transformation class in extension code, simplified
- all the artist constructors - JDH
+2004-05-15
+ Rewrote transformation class in extension code, simplified all the artist
+ constructors - JDH
-2004-05-14 Modified the type definitions in the numarray side of
- numerix so that they are Numeric typecodes and can be
- used with Numeric compilex extensions. The original
- numarray types were renamed to type. - JTM
+2004-05-14
+ Modified the type definitions in the numarray side of numerix so that they
+ are Numeric typecodes and can be used with Numeric compilex extensions.
+ The original numarray types were renamed to type. - JTM
-2004-05-06 Gary Ruben sent me a bevy of new plot symbols and markers.
- See matplotlib.matlab.plot - JDH
+2004-05-06
+ Gary Ruben sent me a bevy of new plot symbols and markers. See
+ matplotlib.matlab.plot - JDH
-2004-05-06 Total rewrite of mathtext - factored ft2font stuff out of
- layout engine and defined abstract class for font handling
- to lay groundwork for ps mathtext. Rewrote parser and made
- layout engine much more precise. Fixed all the layout
- hacks. Added spacing commands \/ and \hspace. Added
- composite chars and defined angstrom. - JDH
+2004-05-06
+ Total rewrite of mathtext - factored ft2font stuff out of layout engine and
+ defined abstract class for font handling to lay groundwork for ps mathtext.
+ Rewrote parser and made layout engine much more precise. Fixed all the
+ layout hacks. Added spacing commands \/ and \hspace. Added composite
+ chars and defined angstrom. - JDH
-2004-05-05 Refactored text instances out of backend; aligned
- text with arbitrary rotations is now supported - JDH
+2004-05-05
+ Refactored text instances out of backend; aligned text with arbitrary
+ rotations is now supported - JDH
-2004-05-05 Added a Matrix capability for numarray to numerix. JTM
+2004-05-05
+ Added a Matrix capability for numarray to numerix. JTM
-2004-05-04 Updated whats_new.html.template to use dictionary and
- template loop, added anchors for all versions and items;
- updated goals.txt to use those for links. PG
+2004-05-04
+ Updated whats_new.html.template to use dictionary and template loop, added
+ anchors for all versions and items; updated goals.txt to use those for
+ links. PG
-2004-05-04 Added fonts_demo.py to backend_driver, and AFM and TTF font
- caches to font_manager.py - PEB
+2004-05-04
+ Added fonts_demo.py to backend_driver, and AFM and TTF font caches to
+ font_manager.py - PEB
-2004-05-03 Redid goals.html.template to use a goals.txt file that
- has a pseudo restructured text organization. PG
+2004-05-03
+ Redid goals.html.template to use a goals.txt file that has a pseudo
+ restructured text organization. PG
-2004-05-03 Removed the close buttons on all GUIs and added the python
- #! bang line to the examples following Steve Chaplin's
- advice on matplotlib dev
+2004-05-03
+ Removed the close buttons on all GUIs and added the python #! bang line to
+ the examples following Steve Chaplin's advice on matplotlib dev
-2004-04-29 Added CXX and rewrote backend_agg using it; tracked down
- and fixed agg memory leak - JDH
+2004-04-29
+ Added CXX and rewrote backend_agg using it; tracked down and fixed agg
+ memory leak - JDH
-2004-04-29 Added stem plot command - JDH
+2004-04-29
+ Added stem plot command - JDH
-2004-04-28 Fixed PS scaling and centering bug - JDH
+2004-04-28
+ Fixed PS scaling and centering bug - JDH
-2004-04-26 Fixed errorbar autoscale problem - JDH
+2004-04-26
+ Fixed errorbar autoscale problem - JDH
-2004-04-22 Fixed copy tick attribute bug, fixed singular datalim
- ticker bug; fixed mathtext fontsize interactive bug. - JDH
+2004-04-22
+ Fixed copy tick attribute bug, fixed singular datalim ticker bug; fixed
+ mathtext fontsize interactive bug. - JDH
-2004-04-21 Added calls to draw_if_interactive to axes(), legend(),
- and pcolor(). Deleted duplicate pcolor(). - JTM
+2004-04-21
+ Added calls to draw_if_interactive to axes(), legend(), and pcolor().
+ Deleted duplicate pcolor(). - JTM
------------------------------------------------------------
-2004-04-21 matplotlib 0.53 release
+2004-04-21
+ matplotlib 0.53 release
-2004-04-19 Fixed vertical alignment bug in PS backend - JDH
+2004-04-19
+ Fixed vertical alignment bug in PS backend - JDH
-2004-04-17 Added support for two scales on the "same axes" with tick
- different ticking and labeling left right or top bottom.
- See examples/two_scales.py - JDH
+2004-04-17
+ Added support for two scales on the "same axes" with tick different ticking
+ and labeling left right or top bottom. See examples/two_scales.py - JDH
-2004-04-17 Added default dirs as list rather than single dir in
- setupext.py - JDH
+2004-04-17
+ Added default dirs as list rather than single dir in setupext.py - JDH
-2004-04-16 Fixed wx exception swallowing bug (and there was much
- rejoicing!) - JDH
+2004-04-16
+ Fixed wx exception swallowing bug (and there was much rejoicing!) - JDH
-2004-04-16 Added new ticker locator a formatter, fixed default font
- return - JDH
+2004-04-16
+ Added new ticker locator a formatter, fixed default font return - JDH
-2004-04-16 Added get_name method to FontProperties class. Fixed font lookup
- in GTK and WX backends. - PEB
+2004-04-16
+ Added get_name method to FontProperties class. Fixed font lookup in GTK and
+ WX backends. - PEB
-2004-04-16 Added get- and set_fontstyle msethods. - PEB
+2004-04-16
+ Added get- and set_fontstyle msethods. - PEB
-2004-04-10 Mathtext fixes: scaling with dpi, - JDH
+2004-04-10
+ Mathtext fixes: scaling with dpi, - JDH
-2004-04-09 Improved font detection algorithm. - PEB
+2004-04-09
+ Improved font detection algorithm. - PEB
-2004-04-09 Move deprecation warnings from text.py to __init__.py - PEB
+2004-04-09
+ Move deprecation warnings from text.py to __init__.py - PEB
-2004-04-09 Added default font customization - JDH
+2004-04-09
+ Added default font customization - JDH
-2004-04-08 Fixed viewlim set problem on axes and axis. - JDH
+2004-04-08
+ Fixed viewlim set problem on axes and axis. - JDH
-2004-04-07 Added validate_comma_sep_str and font properties parameters to
- __init__. Removed font families and added rcParams to
- FontProperties __init__ arguments in font_manager. Added
- default font property parameters to .matplotlibrc file with
- descriptions. Added deprecation warnings to the get\_ - and
- set_fontXXX methods of the Text object. - PEB
+2004-04-07
+ Added validate_comma_sep_str and font properties parameters to __init__.
+ Removed font families and added rcParams to FontProperties __init__
+ arguments in font_manager. Added default font property parameters to
+ .matplotlibrc file with descriptions. Added deprecation warnings to the
+ get\_ - and set_fontXXX methods of the Text object. - PEB
-2004-04-06 Added load and save commands for ASCII data - JDH
+2004-04-06
+ Added load and save commands for ASCII data - JDH
-2004-04-05 Improved font caching by not reading AFM fonts until needed.
- Added better documentation. Changed the behaviour of the
- get_family, set_family, and set_name methods of FontProperties.
- - PEB
+2004-04-05
+ Improved font caching by not reading AFM fonts until needed. Added better
+ documentation. Changed the behaviour of the get_family, set_family, and
+ set_name methods of FontProperties. - PEB
-2004-04-05 Added WXAgg backend - JDH
+2004-04-05
+ Added WXAgg backend - JDH
-2004-04-04 Improved font caching in backend_agg with changes to
- font_manager - JDH
+2004-04-04
+ Improved font caching in backend_agg with changes to font_manager - JDH
-2004-03-29 Fixed fontdicts and kwargs to work with new font manager -
- JDH
+2004-03-29
+ Fixed fontdicts and kwargs to work with new font manager - JDH
--------------------------------------------
This is the Old, stale, never used changelog
-2002-12-10 - Added a TODO file and CHANGELOG. Lots to do -- get
- crackin'!
+2002-12-10
+ - Added a TODO file and CHANGELOG. Lots to do -- get crackin'!
- - Fixed y zoom tool bug
+ - Fixed y zoom tool bug
- - Adopted a compromise fix for the y data clipping problem.
- The problem was that for solid lines, the y data clipping
- (as opposed to the gc clipping) caused artifactual
- horizontal solid lines near the ylim boundaries. I did a
- 5% offset hack in Axes set_ylim functions which helped,
- but didn't cure the problem for very high gain y zooms.
- So I disabled y data clipping for connected lines . If
- you need extensive y clipping, either plot(y,x) because x
- data clipping is always enabled, or change the _set_clip
- code to 'if 1' as indicated in the lines.py src. See
- _set_clip in lines.py and set_ylim in figure.py for more
- information.
+ - Adopted a compromise fix for the y data clipping problem. The problem
+ was that for solid lines, the y data clipping (as opposed to the gc
+ clipping) caused artifactual horizontal solid lines near the ylim
+ boundaries. I did a 5% offset hack in Axes set_ylim functions which
+ helped, but didn't cure the problem for very high gain y zooms. So I
+ disabled y data clipping for connected lines . If you need extensive y
+ clipping, either plot(y,x) because x data clipping is always enabled, or
+ change the _set_clip code to 'if 1' as indicated in the lines.py src.
+ See _set_clip in lines.py and set_ylim in figure.py for more information.
+2002-12-11
+ - Added a measurement dialog to the figure window to measure axes position
+ and the delta x delta y with a left mouse drag. These defaults can be
+ overridden by deriving from Figure and overriding button_press_event,
+ button_release_event, and motion_notify_event, and _dialog_measure_tool.
-2002-12-11 - Added a measurement dialog to the figure window to
- measure axes position and the delta x delta y with a left
- mouse drag. These defaults can be overridden by deriving
- from Figure and overriding button_press_event,
- button_release_event, and motion_notify_event,
- and _dialog_measure_tool.
+ - fixed the navigation dialog so you can check the axes the navigation
+ buttons apply to.
- - fixed the navigation dialog so you can check the axes the
- navigation buttons apply to.
+2003-04-23
+ Released matplotlib v0.1
+2003-04-24
+ Added a new line style PixelLine2D which is the plots the markers as pixels
+ (as small as possible) with format symbol ','
+ Added a new class Patch with derived classes Rectangle, RegularPolygon and
+ Circle
-2003-04-23 Released matplotlib v0.1
-
-2003-04-24 Added a new line style PixelLine2D which is the plots the
- markers as pixels (as small as possible) with format
- symbol ','
-
- Added a new class Patch with derived classes Rectangle,
- RegularPolygon and Circle
-
-2003-04-25 Implemented new functions errorbar, scatter and hist
-
- Added a new line type '|' which is a vline. syntax is
- plot(x, Y, '|') where y.shape = len(x),2 and each row gives
- the ymin,ymax for the respective values of x. Previously I
- had implemented vlines as a list of lines, but I needed the
- efficientcy of the numeric clipping for large numbers of
- vlines outside the viewport, so I wrote a dedicated class
- Vline2D which derives from Line2D
+2003-04-25
+ Implemented new functions errorbar, scatter and hist
+ Added a new line type '|' which is a vline. syntax is plot(x, Y, '|')
+ where y.shape = len(x),2 and each row gives the ymin,ymax for the
+ respective values of x. Previously I had implemented vlines as a list of
+ lines, but I needed the efficientcy of the numeric clipping for large
+ numbers of vlines outside the viewport, so I wrote a dedicated class
+ Vline2D which derives from Line2D
2003-05-01
-
- Fixed ytick bug where grid and tick show outside axis viewport with gc clip
+ Fixed ytick bug where grid and tick show outside axis viewport with gc clip
2003-05-14
-
- Added new ways to specify colors 1) matlab format string 2)
- html-style hex string, 3) rgb tuple. See examples/color_demo.py
+ Added new ways to specify colors 1) matlab format string 2) html-style hex
+ string, 3) rgb tuple. See examples/color_demo.py
2003-05-28
-
- Changed figure rendering to draw form a pixmap to reduce flicker.
- See examples/system_monitor.py for an example where the plot is
- continusouly updated w/o flicker. This example is meant to
- simulate a system monitor that shows free CPU, RAM, etc...
+ Changed figure rendering to draw form a pixmap to reduce flicker. See
+ examples/system_monitor.py for an example where the plot is continusouly
+ updated w/o flicker. This example is meant to simulate a system monitor
+ that shows free CPU, RAM, etc...
2003-08-04
-
- Added Jon Anderson's GTK shell, which doesn't require pygtk to
- have threading built-in and looks nice!
+ Added Jon Anderson's GTK shell, which doesn't require pygtk to have
+ threading built-in and looks nice!
2003-08-25
-
- Fixed deprecation warnings for python2.3 and pygtk-1.99.18
+ Fixed deprecation warnings for python2.3 and pygtk-1.99.18
2003-08-26
-
- Added figure text with new example examples/figtext.py
-
+ Added figure text with new example examples/figtext.py
2003-08-27
+ Fixed bugs i figure text with font override dictionairies and fig text that
+ was placed outside the window bounding box
- Fixed bugs i figure text with font override dictionairies and fig
- text that was placed outside the window bounding box
-
-2003-09-1 through 2003-09-15
-
- Added a postscript and a GD module backend
+2003-09-01 through 2003-09-15
+ Added a postscript and a GD module backend
2003-09-16
-
- Fixed font scaling and point scaling so circles, squares, etc on
- lines will scale with DPI as will fonts. Font scaling is not fully
- implemented on the gtk backend because I have not figured out how
- to scale fonts to arbitrary sizes with GTK
+ Fixed font scaling and point scaling so circles, squares, etc on lines will
+ scale with DPI as will fonts. Font scaling is not fully implemented on the
+ gtk backend because I have not figured out how to scale fonts to arbitrary
+ sizes with GTK
2003-09-17
+ Fixed figure text bug which crashed X windows on long figure text extending
+ beyond display area. This was, I believe, due to the vestigial erase
+ functionality that was no longer needed since I began rendering to a pixmap
- Fixed figure text bug which crashed X windows on long figure text
- extending beyond display area. This was, I believe, due to the
- vestigial erase functionality that was no longer needed since I
- began rendering to a pixmap
-
-2003-09-30 Added legend
+2003-09-30
+ Added legend
-2003-10-01 Fixed bug when colors are specified with rgb tuple or hex
- string.
+2003-10-01
+ Fixed bug when colors are specified with rgb tuple or hex string.
+2003-10-21
+ Andrew Straw provided some legend code which I modified and incorporated.
+ Thanks Andrew!
-2003-10-21 Andrew Straw provided some legend code which I modified
- and incorporated. Thanks Andrew!
+2003-10-27
+ Fixed a bug in axis.get_view_distance that affected zoom in versus out with
+ interactive scrolling, and a bug in the axis text reset system that
+ prevented the text from being redrawn on a interactive gtk view lim set
+ with the widget
-2003-10-27 Fixed a bug in axis.get_view_distance that affected zoom in
- versus out with interactive scrolling, and a bug in the axis text
- reset system that prevented the text from being redrawn on a
- interactive gtk view lim set with the widget
+ Fixed a bug in that prevented the manual setting of ticklabel strings from
+ working properly
- Fixed a bug in that prevented the manual setting of ticklabel
- strings from working properly
-
-2003-11-02 - Do a nearest neighbor color pick on GD when
- allocate fails
+2003-11-02
+ - Do a nearest neighbor color pick on GD when allocate fails
2003-11-02
- - Added pcolor plot
- - Added MRI example
- - Fixed bug that screwed up label position if xticks or yticks were
- empty
- - added nearest neighbor color picker when GD max colors exceeded
- - fixed figure background color bug in GD backend
+ - Added pcolor plot
+ - Added MRI example
+ - Fixed bug that screwed up label position if xticks or yticks were empty
+ - added nearest neighbor color picker when GD max colors exceeded
+ - fixed figure background color bug in GD backend
2003-11-10 - 2003-11-11
- - major refactoring.
-
- * Ticks (with labels, lines and grid) handled by dedicated class
- * Artist now know bounding box and dpi
- * Bounding boxes and transforms handled by dedicated classes
- * legend in dedicated class. Does a better job of alignment and
- bordering. Can be initialized with specific line instances.
- See examples/legend_demo2.py
-
-
-2003-11-14 Fixed legend positioning bug and added new position args
+ major refactoring.
-2003-11-16 Finished porting GD to new axes API
+ * Ticks (with labels, lines and grid) handled by dedicated class
+ * Artist now know bounding box and dpi
+ * Bounding boxes and transforms handled by dedicated classes
+ * legend in dedicated class. Does a better job of alignment and bordering.
+ Can be initialized with specific line instances. See
+ examples/legend_demo2.py
+2003-11-14
+ Fixed legend positioning bug and added new position args
-2003-11-20 - add TM for matlab on website and in docs
+2003-11-16
+ Finished porting GD to new axes API
+2003-11-20
+ - add TM for matlab on website and in docs
-2003-11-20 - make a nice errorbar and scatter screenshot
+2003-11-20
+ - make a nice errorbar and scatter screenshot
-2003-11-20 - auto line style cycling for multiple line types
- broken
+2003-11-20
+ - auto line style cycling for multiple line types broken
-2003-11-18 (using inkrect) :logical rect too big on gtk backend
+2003-11-18
+ (using inkrect) :logical rect too big on gtk backend
-2003-11-18 ticks don't reach edge of axes in gtk mode --
- rounding error?
+2003-11-18
+ ticks don't reach edge of axes in gtk mode -- rounding error?
-2003-11-20 - port Gary's errorbar code to new API before 0.40
+2003-11-20
+ - port Gary's errorbar code to new API before 0.40
-2003-11-20 - problem with stale _set_font. legend axes box
- doesn't resize on save in GTK backend -- see htdocs legend_demo.py
+2003-11-20
+ - problem with stale _set_font. legend axes box doesn't resize on save in
+ GTK backend -- see htdocs legend_demo.py
-2003-11-21 - make a dash-dot dict for the GC
+2003-11-21
+ - make a dash-dot dict for the GC
-2003-12-15 - fix install path bug
+2003-12-15
+ - fix install path bug
diff --git a/doc/users/prev_whats_new/github_stats_3.0.0.rst b/doc/users/prev_whats_new/github_stats_3.0.0.rst
new file mode 100644
index 000000000000..ab90e5e79e4e
--- /dev/null
+++ b/doc/users/prev_whats_new/github_stats_3.0.0.rst
@@ -0,0 +1,1221 @@
+.. _github-stats-3-0-0:
+
+GitHub statistics for 3.0.0 (Sep 18, 2018)
+==========================================
+
+GitHub statistics for 2017/01/17 (tag: v2.0.0) - 2018/09/18
+
+These lists are automatically generated, and may be incomplete or contain duplicates.
+
+We closed 123 issues and merged 598 pull requests.
+The full list can be seen `on GitHub `__
+
+The following 478 authors contributed 9809 commits.
+
+* 816-8055
+* Aashil Patel
+* AbdealiJK
+* Adam
+* Adam Williamson
+* Adrian Price-Whelan
+* Adrien Chardon
+* Adrien F. Vincent
+* ahed87
+* akrherz
+* Akshay Nair
+* Alan Bernstein
+* Alberto
+* alcinos
+* Aleksey Bilogur
+* Alex Rothberg
+* Alexander Buchkovsky
+* Alexander Harnisch
+* AlexCav
+* Alexis Bienvenüe
+* Ali Uneri
+* Allan Haldane
+* Allen Downey
+* Alvaro Sanchez
+* alvarosg
+* AndersonDaniel
+* Andras Deak
+* Andreas Gustafsson
+* Andreas Hilboll
+* Andreas Mayer
+* Andreas Mueller
+* Andrew Nelson
+* Andy Mastbaum
+* aneda
+* Anthony Scopatz
+* Anton Akhmerov
+* Antony Lee
+* aparamon
+* apodemus
+* Arthur Paulino
+* Arvind
+* as691454
+* ash13
+* Atharva Khare
+* Avinash Sharma
+* Bastian Bechtold
+* bduick
+* Ben
+* Ben Root
+* Benedikt Daurer
+* Benjamin Berg
+* Benjamin Congdon
+* Bernhard M. Wiedemann
+* BHT
+* Bianca Gibson
+* Björn Dahlgren
+* Blaise Thompson
+* Boaz Mohar
+* Brendan Zhang
+* Brennan Magee
+* Bruno Zohreh
+* BTWS
+* buefox
+* Cameron Davidson-Pilon
+* Cameron Fackler
+* cclauss
+* ch3rn0v
+* Charles Ruan
+* chelseatroy
+* Chen Karako
+* Chris Holdgraf
+* Christoph Deil
+* Christoph Gohlke
+* Cimarron Mittelsteadt
+* CJ Carey
+* cknd
+* cldssty
+* clintval
+* Cody Scot
+* Colin
+* Conner R. Phillips
+* Craig Citro
+* DaCoEx
+* dahlbaek
+* Dakota Blair
+* Damian
+* Dan Hickstein
+* Dana
+* Daniel C. Marcu
+* Daniel Laidig
+* danielballan
+* Danny Hermes
+* daronjp
+* DaveL17
+* David A
+* David Brooks
+* David Kent
+* David Stansby
+* deeenes
+* deepyaman
+* Derek Kim
+* Derek Tropf
+* Devashish Deshpande
+* Diego Mora Cespedes
+* Dietmar Schwertberger
+* Dietrich Brunn
+* Divyam Madaan
+* dlmccaffrey
+* Dmitry Shachnev
+* Dora Fraeman
+* DoriekeMG
+* Dorota Jarecka
+* Doug Blank
+* Drew J. Sonne
+* Duncan Macleod
+* Dylan Evans
+* E. G. Patrick Bos
+* Egor Panfilov
+* Elijah Schutz
+* Elizabeth Seiver
+* Elliott Sales de Andrade
+* Elvis Stansvik
+* Emlyn Price
+* endolith
+* Eric Dill
+* Eric Firing
+* Eric Galloway
+* Eric Larson
+* Eric Wang (Mac)
+* Eric Wieser
+* Erik M. Bray
+* Erin Pintozzi
+* et2010
+* Ethan Ligon
+* Eugene Yurtsev
+* Fabian Kloosterman
+* Fabian-Robert Stöter
+* FedeMiorelli
+* Federico Ariza
+* Felix
+* Felix Kohlgrüber
+* Felix Yan
+* Filip Dimitrovski
+* Florencia Noriega
+* Florian Le Bourdais
+* Franco Vaccari
+* Francoise Provencher
+* Frank Yu
+* fredrik-1
+* fuzzythecat
+* Gabe
+* Gabriel Munteanu
+* Gauravjeet
+* Gaute Hope
+* gcallah
+* Geoffrey Spear
+* gnaggnoyil
+* goldstarwebs
+* Graeme Smecher
+* greg-roper
+* gregorybchris
+* Grillard
+* Guillermo Breto
+* Gustavo Goretkin
+* Hajoon Choi
+* Hakan Kucukdereli
+* hannah
+* Hans Moritz Günther
+* Harnesser
+* Harshal Prakash Patankar
+* Harshit Patni
+* Hassan Kibirige
+* Hastings Greer
+* Heath Henley
+* Heiko Oberdiek
+* Helder
+* helmiriawan
+* Henning Pohl
+* Herbert Kruitbosch
+* HHest
+* Hubert Holin
+* Ian Thomas
+* Ida Hjorth
+* Ildar Akhmetgaleev
+* ilivni
+* Ilya Flyamer
+* ImportanceOfBeingErnest
+* ImSoErgodic
+* Isa Hassen
+* Isaac Schwabacher
+* Isaac Slavitt
+* Ismo Toijala
+* J Alammar
+* J. Goutin
+* Jaap Versteegh
+* Jacob McDonald
+* jacob-on-github
+* Jae-Joon Lee
+* Jake Vanderplas
+* James A. Bednar
+* Jamie Nunez
+* Jan Koehler
+* Jan Schlüter
+* Jan Schulz
+* Jarrod Millman
+* Jason King
+* Jason Neal
+* Jason Zheng
+* jbhopkins
+* jdollichon
+* Jeffrey Hokanson @ Loki
+* JelsB
+* Jens Hedegaard Nielsen
+* Jerry Lui
+* jerrylui803
+* jhelie
+* jli
+* Jody Klymak
+* joelostblom
+* Johannes Wienke
+* John Hoffman
+* John Vandenberg
+* Johnny Gill
+* JojoBoulix
+* jonchar
+* Joseph Albert
+* Joseph Fox-Rabinovitz
+* Joseph Jon Booker
+* Joseph Martinot-Lagarde
+* Jouni K. Seppänen
+* Juan Nunez-Iglesias
+* Julia Sprenger
+* Julian Mehne
+* Julian V. Modesto
+* Julien Lhermitte
+* Julien Schueller
+* Jun Tan
+* Justin Cai
+* Jörg Dietrich
+* Kacper Kowalik (Xarthisius)
+* Kanchana Ranasinghe
+* Katrin Leinweber
+* Keerysanth Sribaskaran
+* keithbriggs
+* Kenneth Ma
+* Kevin Davies
+* Kevin Ji
+* Kevin Keating
+* Kevin Rose
+* Kexuan Sun
+* khyox
+* Kieran Ramos
+* Kjartan Myrdal
+* Kjell Le
+* Klara Gerlei
+* klaus
+* klonuo
+* Kristen M. Thyng
+* kshramt
+* Kyle Bridgemohansingh
+* Kyle Sunden
+* Kyler Brown
+* Laptop11_ASPP2016
+* lboogaard
+* legitz7
+* Leo Singer
+* Leon Yin
+* Levi Kilcher
+* Liam Brannigan
+* Lionel Miller
+* lspvic
+* Luca Verginer
+* Luis Pedro Coelho
+* luz.paz
+* lzkelley
+* Maarten Baert
+* Magnus Nord
+* mamrehn
+* Manish Devgan
+* Manuel Jung
+* Mark Harfouche
+* Martin Fitzpatrick
+* Martin Spacek
+* Massimo Santini
+* Matt Hancock
+* Matt Newville
+* Matthew Bell
+* Matthew Brett
+* Matthias Bussonnier
+* Matthias Lüthi
+* Matti Picus
+* Maximilian Albert
+* Maximilian Maahn
+* Maximilian Nöthe
+* mcquin
+* Mher Kazandjian
+* Michael Droettboom
+* Michael Scott Cuthbert
+* Michael Seifert
+* Michiel de Hoon
+* Mike Henninger
+* Mike Jarvis
+* MinRK
+* Mitar
+* mitch
+* mlub
+* mobando
+* Molly Rossow
+* Moritz Boehle
+* muahah
+* Mudit Surana
+* myyc
+* Naoya Kanai
+* Nathan Goldbaum
+* Nathan Musoke
+* Nathaniel M. Beaver
+* navdeep rana
+* nbrunett
+* Nelle Varoquaux
+* nemanja
+* neok-m4700
+* nepix32
+* Nick Forrington
+* Nick Garvey
+* Nick Papior
+* Nico Schlömer
+* Nicolas P. Rougier
+* Nicolas Tessore
+* Nik Quibin
+* Nikita Kniazev
+* Nils Werner
+* Ninad Bhat
+* nmartensen
+* Norman Fomferra
+* ob
+* OceanWolf
+* Olivier
+* Orso Meneghini
+* Osarumwense
+* Pankaj Pandey
+* Paramonov Andrey
+* Pastafarianist
+* Paul Ganssle
+* Paul Hobson
+* Paul Ivanov
+* Paul Kirow
+* Paul Romano
+* Paul Seyfert
+* Pavol Juhas
+* pdubcali
+* Pete Huang
+* Pete Peterson
+* Peter Mackenzie-Helnwein
+* Peter Mortensen
+* Peter Würtz
+* Petr Danecek
+* pharshalp
+* Phil Elson
+* Phil Ruffwind
+* Pierre de Buyl
+* Pierre Haessig
+* Pranav Garg
+* productivememberofsociety666
+* Przemysław Dąbek
+* Qingpeng "Q.P." Zhang
+* RAKOTOARISON Herilalaina
+* Ramiro Gómez
+* Randy Olson
+* rebot
+* Richard Gowers
+* Rishikesh
+* Rob Harrigan
+* Robin Dunn
+* Robin Neatherway
+* Robin Wilson
+* Ronald Hartley-Davies
+* Roy Smith
+* Rui Lopes
+* ruin
+* rvhbooth
+* Ryan
+* Ryan May
+* Ryan Morshead
+* RyanPan
+* s0vereign
+* Saket Choudhary
+* Salganos
+* Salil Vanvari
+* Salinder Sidhu
+* Sam Vaughan
+* Samson
+* Samuel St-Jean
+* Sander
+* scls19fr
+* Scott Howard
+* Scott Lasley
+* scott-vsi
+* Sean Farley
+* Sebastian Raschka
+* Sebastián Vanrell
+* Seraphim Alvanides
+* Sergey B Kirpichev
+* serv-inc
+* settheory
+* shaunwbell
+* Simon Gibbons
+* simonpf
+* sindunuragarp
+* Sourav Singh
+* Stefan Pfenninger
+* Stephan Erb
+* Sterling Smith
+* Steven Silvester
+* Steven Tilley
+* stone
+* stonebig
+* Tadeo Corradi
+* Taehoon Lee
+* Tanuj
+* Taras
+* Taras Kuzyo
+* TD22057
+* Ted Petrou
+* terranjp
+* Terrence J. Katzenbaer
+* Terrence Katzenbaer
+* The Gitter Badger
+* Thomas A Caswell
+* Thomas Hisch
+* Thomas Levine
+* Thomas Mansencal
+* Thomas Robitaille
+* Thomas Spura
+* Thomas VINCENT
+* Thorsten Liebig
+* thuvejan
+* Tian Xia
+* Till Stensitzki
+* Tim Hoffmann
+* tmdavison
+* Tobias Froehlich
+* Tobias Megies
+* Tom
+* Tom Augspurger
+* Tom Dupré la Tour
+* tomoemon
+* tonyyli
+* Trish Gillett-Kawamoto
+* Truong Pham
+* Tuan Dung Tran
+* u55
+* ultra-andy
+* V. R
+* vab9
+* Valentin Schmidt
+* Vedant Nanda
+* Vidur Satija
+* vraelvrangr
+* Víctor Zabalza
+* WANG Aiyong
+* Warren Weckesser
+* watkinrt
+* Wieland Hoffmann
+* Will Silva
+* William Granados
+* William Mallard
+* Xufeng Wang
+* y1thof
+* Yao-Yuan Mao
+* Yuval Langer
+* Zac Hatfield-Dodds
+* Zbigniew Jędrzejewski-Szmek
+* zhangeugenia
+* ZhaoZhonglun1991
+* zhoubecky
+* ZWL
+* Élie Gouzien
+* Андрей Парамонов
+
+GitHub issues and pull requests:
+
+Pull Requests (598):
+
+* :ghpull:`12145`: Doc final 3.0 docs
+* :ghpull:`12143`: Backport PR #12142 on branch v3.0.x (Unbreak formlayout for image edits.)
+* :ghpull:`12142`: Unbreak formlayout for image edits.
+* :ghpull:`12135`: Backport PR #12131 on branch v3.0.x (Fixes currently release version of cartopy)
+* :ghpull:`12131`: Fixes currently release version of cartopy
+* :ghpull:`12129`: Backports for 3.0
+* :ghpull:`12132`: Backport PR #12130 on branch v3.0.x (Mention colorbar.minorticks_on/off in references)
+* :ghpull:`12130`: Mention colorbar.minorticks_on/off in references
+* :ghpull:`12099`: FIX: make sure all ticks show up for colorbar minor tick
+* :ghpull:`11962`: Propagate changes to backend loading to setup/setupext.
+* :ghpull:`12128`: Unbreak the Sphinx 1.8 build by renaming :math: to :mathmpl:.
+* :ghpull:`12126`: Backport PR #12117 on branch v3.0.x (Fix Agg extent calculations for empty draws)
+* :ghpull:`12113`: Backport PR #12112 on branch v3.0.x (Reword the LockDraw docstring.)
+* :ghpull:`12112`: Reword the LockDraw docstring.
+* :ghpull:`12110`: Backport PR #12109 on branch v3.0.x (Pin to sphinx<1.8; unremove sphinxext.mathmpl.)
+* :ghpull:`12084`: DOC: link palettable
+* :ghpull:`12096`: Backport PR #12092 on branch v3.0.x (Update backend_qt5agg to fix PySide2 mem issues)
+* :ghpull:`12083`: Backport PR #12012 on branch v3.0.x (FIX: fallback text renderer to fig._cachedRenderer, if none found)
+* :ghpull:`12081`: Backport PR #12037 on branch v3.0.x (Fix ArtistInspector.get_aliases.)
+* :ghpull:`12080`: Backport PR #12053 on branch v3.0.x (Fix up some OSX backend issues)
+* :ghpull:`12037`: Fix ArtistInspector.get_aliases.
+* :ghpull:`12053`: Fix up some OSX backend issues
+* :ghpull:`12064`: Backport PR #11971 on branch v3.0.x (FIX: use cached renderer on Legend.get_window_extent)
+* :ghpull:`12063`: Backport PR #12036 on branch v3.0.x (Interactive tests update)
+* :ghpull:`11928`: Update doc/conf.py to avoid warnings with (future) sphinx 1.8.
+* :ghpull:`12048`: Backport PR #12047 on branch v3.0.x (Remove asserting about current backend at the end of mpl_test_settings.)
+* :ghpull:`11971`: FIX: use cached renderer on Legend.get_window_extent
+* :ghpull:`12036`: Interactive tests update
+* :ghpull:`12029`: Backport PR #12022 on branch v3.0.x (Remove intent to deprecate rcParams["backend_fallback"].)
+* :ghpull:`12047`: Remove asserting about current backend at the end of mpl_test_settings.
+* :ghpull:`12020`: Backport PR #12019 on branch v3.0.x (typo: s/unmultipled/unmultiplied)
+* :ghpull:`12022`: Remove intent to deprecate rcParams["backend_fallback"].
+* :ghpull:`12028`: Backport PR #12023 on branch v3.0.x (Fix deprecation check in wx Timer.)
+* :ghpull:`12023`: Fix deprecation check in wx Timer.
+* :ghpull:`12019`: typo: s/unmultipled/unmultiplied
+* :ghpull:`12017`: Backport PR #12016 on branch v3.0.x (Fix AttributeError in GTK3Agg backend)
+* :ghpull:`12016`: Fix AttributeError in GTK3Agg backend
+* :ghpull:`11991`: Backport PR #11988 on branch v3.0.x
+* :ghpull:`11978`: Backport PR #11973 on branch v3.0.x
+* :ghpull:`11968`: Backport PR #11963 on branch v3.0.x
+* :ghpull:`11967`: Backport PR #11961 on branch v3.0.x
+* :ghpull:`11969`: Fix an invalid escape sequence.
+* :ghpull:`11963`: Fix some lgtm convention alerts
+* :ghpull:`11961`: Downgrade backend_version log to DEBUG level.
+* :ghpull:`11953`: Backport PR #11896 on branch v3.0.x
+* :ghpull:`11896`: Resolve backend in rcParams.__getitem__("backend").
+* :ghpull:`11950`: Backport PR #11934 on branch v3.0.x
+* :ghpull:`11952`: Backport PR #11949 on branch v3.0.x
+* :ghpull:`11949`: Remove test2.png from examples.
+* :ghpull:`11934`: Suppress the "non-GUI backend" warning from the .. plot:: directive...
+* :ghpull:`11918`: Backport PR #11917 on branch v3.0.x
+* :ghpull:`11916`: Backport PR #11897 on branch v3.0.x
+* :ghpull:`11915`: Backport PR #11591 on branch v3.0.x
+* :ghpull:`11897`: HTMLWriter, put initialisation of frames in setup
+* :ghpull:`11591`: BUG: correct the scaling in the floating-point slop test.
+* :ghpull:`11910`: Backport PR #11907 on branch v3.0.x
+* :ghpull:`11907`: Move TOC back to top in axes documentation
+* :ghpull:`11904`: Backport PR #11900 on branch v3.0.x
+* :ghpull:`11900`: Allow args to pass through _allow_super_init
+* :ghpull:`11889`: Backport PR #11847 on branch v3.0.x
+* :ghpull:`11890`: Backport PR #11850 on branch v3.0.x
+* :ghpull:`11850`: FIX: macosx framework check
+* :ghpull:`11883`: Backport PR #11862 on branch v3.0.x
+* :ghpull:`11882`: Backport PR #11876 on branch v3.0.x
+* :ghpull:`11876`: MAINT Better error message for number of colors versus number of data…
+* :ghpull:`11862`: Fix NumPy FutureWarning for non-tuple indexing.
+* :ghpull:`11845`: Use Format_ARGB32_Premultiplied instead of RGBA8888 for Qt backends.
+* :ghpull:`11843`: Remove unnecessary use of nose.
+* :ghpull:`11600`: backend switching -- don't create a public fallback API
+* :ghpull:`11833`: adding show inheritance to autosummary template
+* :ghpull:`11828`: changed warning in animation
+* :ghpull:`11829`: func animation warning changes
+* :ghpull:`11826`: DOC documented more of the gridspec options
+* :ghpull:`11818`: Merge v2.2.x
+* :ghpull:`11821`: DOC: remove multicolumns from examples
+* :ghpull:`11819`: DOC: fix minor typo in figure example
+* :ghpull:`11722`: Remove unnecessary hacks from setup.py.
+* :ghpull:`11802`: gridspec tutorial edits
+* :ghpull:`11801`: update annotations
+* :ghpull:`11734`: Small cleanups to backend_agg.
+* :ghpull:`11785`: Add missing API changes
+* :ghpull:`11788`: Fix DeprecationWarning on LocatableAxes
+* :ghpull:`11558`: Added xkcd Style for Markers (plot only)
+* :ghpull:`11755`: Add description for metadata argument of savefig
+* :ghpull:`11703`: FIX: make update-from also set the original face/edgecolor
+* :ghpull:`11765`: DOC: reorder examples and fix top level heading
+* :ghpull:`11724`: Fix cairo's image inversion and alpha misapplication.
+* :ghpull:`11726`: Consolidate agg-buffer examples.
+* :ghpull:`11754`: FIX: update spine positions before get extents
+* :ghpull:`11779`: Remove unused attribute in tests.
+* :ghpull:`11770`: Correct errors in documentation
+* :ghpull:`11778`: Unpin pandas in the CI.
+* :ghpull:`11772`: Clarifying an error message
+* :ghpull:`11760`: Switch grid documentation to numpydoc style
+* :ghpull:`11705`: Suppress/fix some test warnings.
+* :ghpull:`11763`: Pin OSX CI to numpy<1.15 to unbreak the build.
+* :ghpull:`11767`: Add tolerance to csd frequency test
+* :ghpull:`11757`: PGF backend output text color even if black
+* :ghpull:`11751`: Remove the unused 'verbose' option from setupext.
+* :ghpull:`9084`: Require calling a _BoundMethodProxy to get the underlying callable.
+* :ghpull:`11752`: Fix section level of Previous Whats New
+* :ghpull:`10513`: Replace most uses of getfilesystemencoding by os.fs{en,de}code.
+* :ghpull:`11739`: fix tight_layout bug #11737
+* :ghpull:`11744`: minor doc update on axes_grid1's inset_axes
+* :ghpull:`11729`: Pass 'figure' as kwarg to FigureCanvasQt5Agg super __init__.
+* :ghpull:`11736`: Remove unused needs_sphinx marker; move importorskip to toplevel.
+* :ghpull:`11731`: Directly get the size of the renderer buffer from the renderer.
+* :ghpull:`11717`: DOC: fix broken link in inset-locator example
+* :ghpull:`11723`: Start work on making colormaps picklable.
+* :ghpull:`11721`: Remove some references to colorConverter.
+* :ghpull:`11713`: Don't assume cwd in test_ipynb.
+* :ghpull:`11026`: ENH add an inset_axes to the axes class
+* :ghpull:`11712`: Fix drawing on qt+retina.
+* :ghpull:`11714`: docstring for Figure.tight_layout don't include renderer parameter
+* :ghpull:`8951`: Let QPaintEvent tell us what region to repaint.
+* :ghpull:`11234`: Add fig.add_artist method
+* :ghpull:`11706`: Remove unused private method.
+* :ghpull:`11637`: Split API changes into individual pages
+* :ghpull:`10403`: Deprecate LocatableAxes from toolkits
+* :ghpull:`11699`: Dedent overindented rst bullet lists.
+* :ghpull:`11701`: Use skipif instead of xfail when test dependencies are missing.
+* :ghpull:`11700`: Don't use pytest -rw now that pytest-warnings is builtin.
+* :ghpull:`11696`: Don't force backend in toolmanager example.
+* :ghpull:`11690`: Avoid using private APIs in examples.
+* :ghpull:`11684`: Style
+* :ghpull:`11666`: TESTS: Increase tolerance for aarch64 tests
+* :ghpull:`11680`: Boring style fixes.
+* :ghpull:`11678`: Use super() instead of manually fetching supermethods for parasite axes.
+* :ghpull:`11679`: Remove pointless draw() at the end of static examples.
+* :ghpull:`11676`: Remove unused C++ code.
+* :ghpull:`11010`: ENH: Add gridspec method to figure, and subplotspecs
+* :ghpull:`11672`: Add comment re: use of lru_cache in PsfontsMap.
+* :ghpull:`11674`: Boring style fixes.
+* :ghpull:`10954`: Cache various dviread constructs globally.
+* :ghpull:`9150`: Don't update style-blacklisted rcparams in rc_* functions
+* :ghpull:`10936`: Simplify tkagg C extension.
+* :ghpull:`11378`: SVG Backend gouraud_triangle Correction
+* :ghpull:`11383`: FIX: Improve *c* (color) kwarg checking in scatter and the related exceptions
+* :ghpull:`11627`: FIX: CL avoid fully collapsed axes
+* :ghpull:`11504`: Bump pgi requirement to 0.0.11.2.
+* :ghpull:`11640`: Fix barplot color if none and alpha is set
+* :ghpull:`11443`: changed paths in kwdocs
+* :ghpull:`11626`: Minor docstring fixes
+* :ghpull:`11631`: DOC: better tight_layout error handling
+* :ghpull:`11651`: Remove unused imports in examples
+* :ghpull:`11633`: Clean up next api_changes
+* :ghpull:`11643`: Fix deprecation messages.
+* :ghpull:`9223`: Set norm to log if bins=='log' in hexbin
+* :ghpull:`11622`: FIX: be forgiving about the event for enterEvent not having a pos
+* :ghpull:`11581`: backend switching.
+* :ghpull:`11616`: Fix some doctest issues
+* :ghpull:`10872`: Cleanup _plot_args_replacer logic
+* :ghpull:`11617`: Clean up what's new
+* :ghpull:`11610`: FIX: let colorbar extends work for PowerNorm
+* :ghpull:`11615`: Revert glyph warnings
+* :ghpull:`11614`: CI: don't run tox to test pytz
+* :ghpull:`11603`: Doc merge up
+* :ghpull:`11613`: Make flake8 exceptions explicit
+* :ghpull:`11611`: Fix css for parameter types
+* :ghpull:`10001`: MAINT/BUG: Don't use 5-sided quadrilaterals in Axes3D.plot_surface
+* :ghpull:`10234`: PowerNorm: do not clip negative values
+* :ghpull:`11398`: Simplify retrieval of cache and config directories
+* :ghpull:`10682`: ENH have ax.get_tightbbox have a bbox around all artists attached to axes.
+* :ghpull:`11590`: Don't associate Wx timers with the parent frame.
+* :ghpull:`10245`: Cache paths of fonts shipped with mpl relative to the mpl data path.
+* :ghpull:`11381`: Deprecate text.latex.unicode.
+* :ghpull:`11601`: FIX: subplots don't mutate kwargs passed by user.
+* :ghpull:`11609`: Remove _macosx.NavigationToolbar.
+* :ghpull:`11608`: Remove some conditional branches in examples for wx<4.
+* :ghpull:`11604`: TST: Place animation files in a temp dir.
+* :ghpull:`11605`: Suppress a spurious missing-glyph warning with ft2font.
+* :ghpull:`11360`: Pytzectomy
+* :ghpull:`10885`: Move GTK3 setupext checks to within the process.
+* :ghpull:`11081`: Help tool for Wx backends
+* :ghpull:`10851`: Wx Toolbar for ToolManager
+* :ghpull:`11247`: Remove mplDeprecation
+* :ghpull:`9795`: Backend switching
+* :ghpull:`9426`: Don't mark a patch transform as set if the parent transform is not set.
+* :ghpull:`9175`: Warn on freetype missing glyphs.
+* :ghpull:`11412`: Make contour and contourf color assignments consistent.
+* :ghpull:`11477`: Enable flake8 and re-enable it everywhere
+* :ghpull:`11165`: Fix figure window icon
+* :ghpull:`11584`: ENH: fix colorbar bad minor ticks
+* :ghpull:`11438`: ENH: add get_gridspec convenience method to subplots
+* :ghpull:`11451`: Cleanup Matplotlib API docs
+* :ghpull:`11579`: DOC update some examples to use constrained_layout=True
+* :ghpull:`11594`: Some more docstring cleanups.
+* :ghpull:`11593`: Skip wx interactive tests on OSX.
+* :ghpull:`11592`: Remove some extra spaces in docstrings/comments.
+* :ghpull:`11585`: Some doc cleanup of Triangulation
+* :ghpull:`10474`: Use TemporaryDirectory instead of mkdtemp in a few places.
+* :ghpull:`11240`: Deprecate the examples.directory rcParam.
+* :ghpull:`11370`: Sorting drawn artists by their zorder when blitting using FuncAnimation
+* :ghpull:`11576`: Add parameter doc to save_diff_image
+* :ghpull:`11573`: Inline setup_external_compile into setupext.
+* :ghpull:`11571`: Cleanup stix_fonts_demo example.
+* :ghpull:`11563`: Use explicit signature in pyplot.close()
+* :ghpull:`9801`: ENH: Change default Autodatelocator *interval_multiples*
+* :ghpull:`11570`: More simplifications to FreeType setup on Windows.
+* :ghpull:`11401`: Some py3fications.
+* :ghpull:`11566`: Cleanups.
+* :ghpull:`11520`: Add private API retrieving the current event loop and backend GUI info.
+* :ghpull:`11544`: Restore axes sharedness when unpickling.
+* :ghpull:`11568`: Figure.text changes
+* :ghpull:`11248`: Simplify FreeType Windows build.
+* :ghpull:`11556`: Fix colorbar bad ticks
+* :ghpull:`11494`: Fix CI install of wxpython.
+* :ghpull:`11564`: triinterpolate cleanups.
+* :ghpull:`11548`: Use numpydoc-style parameter lists for choices
+* :ghpull:`9583`: Add edgecolors kwarg to contourf
+* :ghpull:`10275`: Update contour.py and widget.py
+* :ghpull:`11547`: Fix example links
+* :ghpull:`11555`: Fix spelling in title
+* :ghpull:`11404`: FIX: don't include text at -inf in bbox
+* :ghpull:`11455`: Fixing the issue where right column and top row generate wrong stream…
+* :ghpull:`11297`: Prefer warn_deprecated instead of warnings.warn.
+* :ghpull:`11495`: Update the documentation guidelines
+* :ghpull:`11545`: Doc: fix x(filled) marker image
+* :ghpull:`11287`: Maintain artist addition order in Axes.mouseover_set.
+* :ghpull:`11530`: FIX: Ensuring both x and y attrs of LocationEvent are int
+* :ghpull:`10336`: Use Integral and Real in typechecks rather than explicit types.
+* :ghpull:`10298`: Apply gtk3 background.
+* :ghpull:`10297`: Fix gtk3agg alpha channel.
+* :ghpull:`9094`: axisbelow should just set zorder.
+* :ghpull:`11542`: Documentation polar grids
+* :ghpull:`11459`: Doc changes in add_subplot and add_axes
+* :ghpull:`10908`: Make draggable callbacks check that artist has not been removed.
+* :ghpull:`11522`: Small cleanups.
+* :ghpull:`11539`: DOC: talk about sticky edges in Axes.margins
+* :ghpull:`11540`: adding axes to module list
+* :ghpull:`11537`: Fix invalid value warning when autoscaling with no data limits
+* :ghpull:`11512`: Skip 3D rotation example in sphinx gallery
+* :ghpull:`11538`: Re-enable pep8 on examples folder
+* :ghpull:`11136`: Move remaining examples from api/
+* :ghpull:`11519`: Raise ImportError on failure to import backends.
+* :ghpull:`11529`: add documentation for quality in savefig
+* :ghpull:`11528`: Replace an unnecessary zip() in mplot3d by numpy ops.
+* :ghpull:`11492`: add __repr__ to GridSpecBase
+* :ghpull:`11521`: Add missing ``.`` to rcParam
+* :ghpull:`11491`: Fixed the source path on windows in rcparam_role
+* :ghpull:`11514`: Remove embedding_in_tk_canvas, which demonstrated a private API.
+* :ghpull:`11507`: Fix embedding_in_tk_canvas example.
+* :ghpull:`11513`: Changed docstrings in Text
+* :ghpull:`11503`: Remove various mentions of the now removed GTK(2) backend.
+* :ghpull:`11493`: Update a test to a figure-equality test.
+* :ghpull:`11501`: Treat empty $MPLBACKEND as an unset value.
+* :ghpull:`11395`: Various fixes to deprecated and warn_deprecated.
+* :ghpull:`11408`: Figure equality-based tests.
+* :ghpull:`11461`: Fixed bug in rendering font property kwargs list
+* :ghpull:`11397`: Replace ACCEPTS by standard numpydoc params table.
+* :ghpull:`11483`: Use pip requirements files for travis build
+* :ghpull:`11481`: remove more pylab references
+* :ghpull:`10940`: Run flake8 instead of pep8 on Python 3.6
+* :ghpull:`11476`: Remove pylab references
+* :ghpull:`11448`: Link rcParams role to docs
+* :ghpull:`11424`: DOC: point align-ylabel demo to new align-label functions
+* :ghpull:`11454`: add subplots to axes documentation
+* :ghpull:`11470`: Hyperlink DOIs against preferred resolver
+* :ghpull:`11421`: DOC: make signature background grey
+* :ghpull:`11457`: Search $CPATH for include directories
+* :ghpull:`11456`: DOC: fix minor typo in figaspect
+* :ghpull:`11293`: Lim parameter naming
+* :ghpull:`11447`: Do not use class attributes as defaults for instance attributes
+* :ghpull:`11449`: Slightly improve doc sidebar layout
+* :ghpull:`11224`: Add deprecation messages for unused kwargs in FancyArrowPatch
+* :ghpull:`11437`: Doc markersupdate
+* :ghpull:`11417`: FIX: better default spine path (for logit)
+* :ghpull:`11406`: Backport PR #11403 on branch v2.2.2-doc
+* :ghpull:`11427`: FIX: pathlib in nbagg
+* :ghpull:`11428`: Doc: Remove huge note box from examples.
+* :ghpull:`11392`: Deprecate the ``verts`` kwarg to ``scatter``.
+* :ghpull:`8834`: WIP: Contour log extension
+* :ghpull:`11402`: Remove unnecessary str calls.
+* :ghpull:`11399`: Autogenerate credits.rst
+* :ghpull:`11382`: plt.subplots and plt.figure docstring changes
+* :ghpull:`11388`: DOC: Constrained layout tutorial improvements
+* :ghpull:`11400`: Correct docstring for axvspan()
+* :ghpull:`11396`: Remove some (minor) comments regarding Py2.
+* :ghpull:`11210`: FIX: don't pad axes for ticks if they aren't visible or axis off
+* :ghpull:`11362`: Fix tox configuration
+* :ghpull:`11366`: Improve docstring of Axes.spy
+* :ghpull:`11289`: io.open and codecs.open are redundant with open on Py3.
+* :ghpull:`11213`: MNT: deprecate patches.YAArrow
+* :ghpull:`11352`: Catch a couple of test warnings
+* :ghpull:`11292`: Simplify cleanup decorator implementation.
+* :ghpull:`11349`: Remove non-existent files from MANIFEST.IN
+* :ghpull:`8774`: Git issue #7216 - Add a "ruler" tool to the plot UI
+* :ghpull:`11348`: Make OSX's blit() have a consistent signature with other backends.
+* :ghpull:`11345`: Revert "Deprecate text.latex.unicode."
+* :ghpull:`11250`: [WIP] Add tutorial for LogScale
+* :ghpull:`11223`: Add an arrow tutorial
+* :ghpull:`10212`: Categorical refactor
+* :ghpull:`11339`: Convert Ellipse docstring to numpydoc
+* :ghpull:`11255`: Deprecate text.latex.unicode.
+* :ghpull:`11338`: Fix typos
+* :ghpull:`11332`: Let plt.rc = matplotlib.rc, instead of being a trivial wrapper.
+* :ghpull:`11331`: multiprocessing.set_start_method() --> mp.set_start_method()
+* :ghpull:`9948`: Add ``ealpha`` option to ``errorbar``
+* :ghpull:`11329`: Minor docstring update of thumbnail
+* :ghpull:`9551`: Refactor backend loading
+* :ghpull:`11328`: Undeprecate Polygon.xy from #11299
+* :ghpull:`11318`: Improve docstring of imread() and imsave()
+* :ghpull:`11311`: Simplify image.thumbnail.
+* :ghpull:`11225`: Add stacklevel=2 to some more warnings.warn() calls
+* :ghpull:`11313`: Add changelog entry for removal of proprietary sphinx directives.
+* :ghpull:`11323`: Fix infinite loop for connectionstyle + add some tests
+* :ghpull:`11314`: API changes: use the heading format defined in README.txt
+* :ghpull:`11320`: Py3fy multiprocess example.
+* :ghpull:`6254`: adds two new cyclic color schemes
+* :ghpull:`11268`: DOC: Sanitize some internal documentation links
+* :ghpull:`11300`: Start replacing ACCEPTS table by parsing numpydoc.
+* :ghpull:`11298`: Automagically set the stacklevel on warnings.
+* :ghpull:`11277`: Avoid using MacRoman encoding.
+* :ghpull:`11295`: Use sphinx builtin only directive instead of custom one.
+* :ghpull:`11305`: Reuse the noninteractivity warning from Figure.show in _Backend.show.
+* :ghpull:`11307`: Avoid recursion for subclasses of str that are also "PathLike" in to_filehandle()
+* :ghpull:`11304`: Re-remove six from INSTALL.rst.
+* :ghpull:`11299`: Fix a bunch of doc/comment typos in patches.py.
+* :ghpull:`11301`: Undefined name: cbook --> matplotlib.cbook
+* :ghpull:`11254`: Update INSTALL.rst.
+* :ghpull:`11267`: FIX: allow nan values in data for plt.hist
+* :ghpull:`11271`: Better argspecs for Axes.stem
+* :ghpull:`11272`: Remove commented-out code, unused imports
+* :ghpull:`11280`: Trivial cleanups
+* :ghpull:`10514`: Cleanup/update cairo + gtk compatibility matrix.
+* :ghpull:`11282`: Reduce the use of C++ exceptions
+* :ghpull:`11263`: Fail gracefully if can't decode font names
+* :ghpull:`11278`: Remove conditional path for sphinx <1.3 in plot_directive.
+* :ghpull:`11273`: Include template matplotlibrc in package_data.
+* :ghpull:`11265`: Minor cleanups.
+* :ghpull:`11249`: Simplify FreeType build.
+* :ghpull:`11158`: Remove dependency on six - we're Py3 only now!
+* :ghpull:`10050`: Update Legend draggable API
+* :ghpull:`11206`: More cleanups
+* :ghpull:`11001`: DOC: improve legend bbox_to_anchor description
+* :ghpull:`11258`: Removed comment in AGG backend that is no longer applicable
+* :ghpull:`11062`: FIX: call constrained_layout twice
+* :ghpull:`11251`: Re-run boilerplate.py.
+* :ghpull:`11228`: Don't bother checking luatex's version.
+* :ghpull:`11207`: Update venv gui docs wrt availability of PySide2.
+* :ghpull:`11236`: Minor cleanups to setupext.
+* :ghpull:`11239`: Reword the timeout error message in cbook._lock_path.
+* :ghpull:`11204`: Test that boilerplate.py is correctly run.
+* :ghpull:`11172`: ENH add rcparam to legend_title
+* :ghpull:`11229`: Simplify lookup of animation external commands.
+* :ghpull:`9086`: Add SVG animation.
+* :ghpull:`11212`: Fix CirclePolygon __str__ + adding tests
+* :ghpull:`6737`: Ternary
+* :ghpull:`11216`: Yet another set of simplifications.
+* :ghpull:`11056`: Simplify travis setup a bit.
+* :ghpull:`11211`: Revert explicit linestyle kwarg on step()
+* :ghpull:`11205`: Minor cleanups to pyplot.
+* :ghpull:`11174`: Replace numeric loc by position string
+* :ghpull:`11208`: Don't crash qt figure options on unknown marker styles.
+* :ghpull:`11195`: Some unrelated cleanups.
+* :ghpull:`11192`: Don't use deprecated get_texcommand in backend_pgf.
+* :ghpull:`11197`: Simplify demo_ribbon_box.py.
+* :ghpull:`11137`: Convert ``**kwargs`` to named arguments for a clearer API
+* :ghpull:`10982`: Improve docstring of Axes.imshow
+* :ghpull:`11182`: Use GLib.MainLoop() instead of deprecated GObject.MainLoop()
+* :ghpull:`11185`: Fix undefined name error in backend_pgf.
+* :ghpull:`10321`: Ability to scale axis by a fixed factor
+* :ghpull:`8787`: Faster path drawing for the cairo backend (cairocffi only)
+* :ghpull:`4559`: tight_layout: Use a different default gridspec
+* :ghpull:`11179`: Convert internal tk focus helper to a context manager
+* :ghpull:`11176`: Allow creating empty closed paths
+* :ghpull:`10339`: Pass explicit font paths to fontspec in backend_pgf.
+* :ghpull:`9832`: Minor cleanup to Text class.
+* :ghpull:`11141`: Remove mpl_examples symlink.
+* :ghpull:`10715`: ENH: add title_fontsize to legend
+* :ghpull:`11166`: Set stacklevel to 2 for backend_wx
+* :ghpull:`10934`: Autogenerate (via boilerplate) more of pyplot.
+* :ghpull:`9298`: Cleanup blocking_input.
+* :ghpull:`6329`: Set _text to '' if Text.set_text argument is None
+* :ghpull:`11157`: Fix contour return link
+* :ghpull:`11146`: Explicit args and refactor Axes.margins
+* :ghpull:`11145`: Use kwonlyargs instead of popping from kwargs
+* :ghpull:`11119`: PGF: Get unitless positions from Text elements (fix #11116)
+* :ghpull:`9078`: New anchored direction arrows
+* :ghpull:`11144`: Remove toplevel unit/ directory.
+* :ghpull:`11148`: remove use of subprocess compatibility shim
+* :ghpull:`11143`: Use debug level for debugging messages
+* :ghpull:`11142`: Finish removing future imports.
+* :ghpull:`11130`: Don't include the postscript title if it is not latin-1 encodable.
+* :ghpull:`11093`: DOC: Fixup to AnchoredArtist examples in the gallery
+* :ghpull:`11132`: pillow-dependency update
+* :ghpull:`10446`: implementation of the copy canvas tool
+* :ghpull:`9131`: FIX: prevent the canvas from jump sizes due to DPI changes
+* :ghpull:`9454`: Batch ghostscript converter.
+* :ghpull:`10545`: Change manual kwargs popping to kwonly arguments.
+* :ghpull:`10950`: Actually ignore invalid log-axis limit setting
+* :ghpull:`11096`: Remove support for bar(left=...) (as opposed to bar(x=...)).
+* :ghpull:`11106`: py3fy art3d.
+* :ghpull:`11085`: Use GtkShortcutsWindow for Help tool.
+* :ghpull:`11099`: Deprecate certain marker styles that have simpler synonyms.
+* :ghpull:`11100`: Some more deprecations of old, old stuff.
+* :ghpull:`11098`: Make Marker.get_snap_threshold() always return a scalar.
+* :ghpull:`11097`: Schedule a removal date for passing normed (instead of density) to hist.
+* :ghpull:`9706`: Masking invalid x and/or weights in hist
+* :ghpull:`11080`: Py3fy backend_qt5 + other cleanups to the backend.
+* :ghpull:`10967`: updated the pyplot fill_between example to elucidate the premise;maki…
+* :ghpull:`11075`: Drop alpha channel when saving comparison failure diff image.
+* :ghpull:`9022`: Help tool
+* :ghpull:`11045`: Help tool.
+* :ghpull:`11076`: Don't create texput.{aux,log} in rootdir everytime tests are run.
+* :ghpull:`11073`: py3fication of some tests.
+* :ghpull:`11074`: bytes % args is back since py3.5
+* :ghpull:`11066`: Use chained comparisons where reasonable.
+* :ghpull:`11061`: Changed tight_layout doc strings
+* :ghpull:`11064`: Minor docstring format cleanup
+* :ghpull:`11055`: Remove setup_tests_only.py.
+* :ghpull:`11057`: Update Ellipse position with ellipse.center
+* :ghpull:`10435`: Pathlibify font_manager (only internally, doesn't change the API).
+* :ghpull:`10442`: Make the filternorm prop of Images a boolean rather than a {0,1} scalar.
+* :ghpull:`9855`: ENH: make ax.get_position apply aspect
+* :ghpull:`9987`: MNT: hist2d now uses pcolormesh instead of pcolorfast
+* :ghpull:`11014`: Merge v2.2.x into master
+* :ghpull:`11000`: FIX: improve Text repr to not error if non-float x and y.
+* :ghpull:`10910`: FIX: return proper legend window extent
+* :ghpull:`10915`: FIX: tight_layout having negative width axes
+* :ghpull:`10408`: Factor out common code in _process_unit_info
+* :ghpull:`10960`: Added share_tickers parameter to axes._AxesBase.twinx/y
+* :ghpull:`10971`: Skip pillow animation test if pillow not importable
+* :ghpull:`10970`: Simplify/fix some manual manipulation of len(args).
+* :ghpull:`10958`: Simplify the grouper implementation.
+* :ghpull:`10508`: Deprecate FigureCanvasQT.keyAutoRepeat.
+* :ghpull:`10607`: Move notify_axes_change to FigureManagerBase class.
+* :ghpull:`10215`: Test timers and (a bit) key_press_event for interactive backends.
+* :ghpull:`10955`: Py3fy cbook, compare_backend_driver_results
+* :ghpull:`10680`: Rewrite the tk C blitting code
+* :ghpull:`9498`: Move title up if x-axis is on the top of the figure
+* :ghpull:`10942`: Make active param in CheckBottons optional, default false
+* :ghpull:`10943`: Allow pie textprops to take alignment and rotation arguments
+* :ghpull:`10780`: Fix scaling of RadioButtons
+* :ghpull:`10938`: Fix two undefined names
+* :ghpull:`10685`: fix plt.show doesn't warn if a non-GUI backend
+* :ghpull:`10689`: Declare global variables that are created elsewhere
+* :ghpull:`10845`: WIP: first draft at replacing linkcheker
+* :ghpull:`10898`: Replace "matplotlibrc" by "rcParams" in the docs where applicable.
+* :ghpull:`10926`: Some more removals of deprecated APIs.
+* :ghpull:`9173`: dynamically generate pyplot functions
+* :ghpull:`10918`: Use function signatures in boilerplate.py.
+* :ghpull:`10914`: Changed pie charts default shape to circle and added tests
+* :ghpull:`10864`: ENH: Stop mangling default figure file name if file exists
+* :ghpull:`10562`: Remove deprecated code in image.py
+* :ghpull:`10798`: FIX: axes limits reverting to automatic when sharing
+* :ghpull:`10485`: Remove the 'hold' kwarg from codebase
+* :ghpull:`10571`: Use np.full{,_like} where appropriate. [requires numpy>=1.12]
+* :ghpull:`10913`: Rely a bit more on rc_context.
+* :ghpull:`10299`: Invalidate texmanager cache when any text.latex.* rc changes.
+* :ghpull:`10906`: Deprecate ImageComparisonTest.
+* :ghpull:`10904`: Improve docstring of clabel()
+* :ghpull:`10912`: remove unused matplotlib.testing import
+* :ghpull:`10876`: [wip] Replace _remove_method by _on_remove list of callbacks
+* :ghpull:`10692`: Update afm docs and internal data structures
+* :ghpull:`10896`: Update INSTALL.rst.
+* :ghpull:`10905`: Inline knownfailureif.
+* :ghpull:`10907`: No need to mark (unicode) strings as u"foo" anymore.
+* :ghpull:`10903`: Py3fy testing machinery.
+* :ghpull:`10901`: Remove Py2/3 portable code guide.
+* :ghpull:`10900`: Remove some APIs deprecated in mpl2.1.
+* :ghpull:`10902`: Kill some Py2 docs.
+* :ghpull:`10887`: Added feature (Make pie charts circular by default #10789)
+* :ghpull:`10884`: Style fixes to setupext.py.
+* :ghpull:`10879`: Deprecate two-args for cycler() and set_prop_cycle()
+* :ghpull:`10865`: DOC: use OO-ish interface in image, contour, field examples
+* :ghpull:`8479`: FIX markerfacecolor / mfc not in rcparams
+* :ghpull:`10314`: setattr context manager.
+* :ghpull:`10013`: Allow rasterization for 3D plots
+* :ghpull:`10158`: Allow mplot3d rasterization; adjacent cleanups.
+* :ghpull:`10871`: Rely on rglob support rather than os.walk.
+* :ghpull:`10878`: Change hardcoded brackets for Toolbar message
+* :ghpull:`10708`: Py3fy webagg/nbagg.
+* :ghpull:`10862`: py3ify table.py and correct some docstrings
+* :ghpull:`10810`: Fix for plt.plot() does not support structured arrays as data= kwarg
+* :ghpull:`10861`: More python3 cleanup
+* :ghpull:`9903`: ENH: adjustable colorbar ticks
+* :ghpull:`10831`: Minor docstring updates on binning related plot functions
+* :ghpull:`9571`: Remove LaTeX checking in setup.py.
+* :ghpull:`10097`: Reset extents in RectangleSelector when not interactive on press.
+* :ghpull:`10686`: fix BboxConnectorPatch does not show facecolor
+* :ghpull:`10801`: Fix undefined name. Add animation tests.
+* :ghpull:`10857`: FIX: ioerror font cache, second try
+* :ghpull:`10796`: Added descriptions for line bars and markers examples
+* :ghpull:`10846`: Unsixification
+* :ghpull:`10852`: Update docs re: pygobject in venv.
+* :ghpull:`10847`: Py3fy axis.py.
+* :ghpull:`10834`: Minor docstring updates on spectral plot functions
+* :ghpull:`10778`: wx_compat is no more.
+* :ghpull:`10609`: More wx cleanup.
+* :ghpull:`10826`: Py3fy dates.py.
+* :ghpull:`10837`: Correctly display error when running setup.py test.
+* :ghpull:`10838`: Don't use private attribute in tk example. Fix Toolbar class rename.
+* :ghpull:`10835`: DOC: Make colorbar tutorial examples look like colorbars.
+* :ghpull:`10823`: Add some basic smoketesting for webagg (and wx).
+* :ghpull:`10828`: Add print_rgba to backend_cairo.
+* :ghpull:`10830`: Make function signatures more explicit
+* :ghpull:`10829`: Use long color names for default rcParams
+* :ghpull:`9776`: WIP: Lockout new converters Part 2
+* :ghpull:`10799`: DOC: make legend docstring interpolated
+* :ghpull:`10818`: Deprecate vestigial Annotation.arrow.
+* :ghpull:`10817`: Add test to imread from url.
+* :ghpull:`10696`: Simplify venv docs.
+* :ghpull:`10724`: Py3fication of unicode.
+* :ghpull:`10815`: API: shift deprecation of TempCache class to 3.0
+* :ghpull:`10725`: FIX/TST constrained_layout remove test8 duplication
+* :ghpull:`10705`: FIX: enable extend kwargs with log scale colorbar
+* :ghpull:`10400`: numpydoc-ify art3d docstrings
+* :ghpull:`10723`: repr style fixes.
+* :ghpull:`10592`: Rely on generalized * and ** unpackings where possible.
+* :ghpull:`9475`: Declare property aliases in a single place
+* :ghpull:`10793`: A hodgepodge of Py3 & style fixes.
+* :ghpull:`10794`: fixed comment typo
+* :ghpull:`10768`: Fix crash when imshow encounters longdouble data
+* :ghpull:`10774`: Remove dead wx testing code.
+* :ghpull:`10756`: Fixes png showing inconsistent inset_axes position
+* :ghpull:`10773`: Consider alpha channel from RGBA color of text for SVG backend text opacity rendering
+* :ghpull:`10772`: API: check locator and formatter args when passed
+* :ghpull:`10713`: Implemented support for 'markevery' in prop_cycle
+* :ghpull:`10751`: make centre_baseline legal for Text.set_verticalalignment
+* :ghpull:`10771`: FIX/TST OS X builds
+* :ghpull:`10742`: FIX: reorder linewidth setting before linestyle
+* :ghpull:`10714`: sys.platform is normalized to "linux" on Py3.
+* :ghpull:`10542`: Minor cleanup: PEP8, PEP257
+* :ghpull:`10636`: Remove some wx version checks.
+* :ghpull:`9731`: Make legend title fontsize obey fontsize kwarg by default
+* :ghpull:`10697`: Remove special-casing of _remove_method when pickling.
+* :ghpull:`10701`: Autoadd removal version to deprecation message.
+* :ghpull:`10699`: Remove incorrect warning in gca().
+* :ghpull:`10674`: Fix getting polar axes in plt.polar()
+* :ghpull:`10564`: Nested classes and instancemethods are directly picklable on Py3.5+.
+* :ghpull:`10107`: Fix stay_span to reset onclick in SpanSelector.
+* :ghpull:`10693`: Make markerfacecolor work for 3d scatterplots
+* :ghpull:`10596`: Switch to per-file locking.
+* :ghpull:`10532`: Py3fy backend_pgf.
+* :ghpull:`10618`: Fixes #10501. python3 support and pep8 in jpl_units
+* :ghpull:`10652`: Some py3fication for matplotlib/__init__, setupext.
+* :ghpull:`10522`: Py3fy font_manager.
+* :ghpull:`10666`: More figure-related doc updates
+* :ghpull:`10507`: Remove Python 2 code from C extensions
+* :ghpull:`10679`: Small fixes to gtk3 examples.
+* :ghpull:`10426`: Delete deprecated backends
+* :ghpull:`10488`: Bug Fix - Polar plot rectangle patch not transformed correctly (#8521)
+* :ghpull:`9814`: figure_enter_event uses now LocationEvent instead of Event. Fix issue #9812.
+* :ghpull:`9918`: Remove old nose testing code
+* :ghpull:`10672`: Deprecation fixes.
+* :ghpull:`10608`: Remove most APIs deprecated in 2.1.
+* :ghpull:`10653`: Mock is in stdlib in Py3.
+* :ghpull:`10603`: Remove workarounds for numpy<1.10.
+* :ghpull:`10660`: Work towards removing reuse-of-axes-on-collision.
+* :ghpull:`10661`: Homebrew python is now python 3
+* :ghpull:`10656`: Minor fixes to event handling docs.
+* :ghpull:`10635`: Simplify setupext by using globs.
+* :ghpull:`10632`: Support markers from Paths that consist of one line segment
+* :ghpull:`10558`: Remove if six.PY2 code paths from boilerplate.py
+* :ghpull:`10640`: Fix extra and missing spaces in constrainedlayout warning.
+* :ghpull:`10624`: Some trivial py3fications.
+* :ghpull:`10548`: Implement PdfPages for backend pgf
+* :ghpull:`10614`: Use np.stack instead of list(zip()) in colorbar.py.
+* :ghpull:`10621`: Cleanup and py3fy backend_gtk3.
+* :ghpull:`10615`: More style fixes.
+* :ghpull:`10604`: Minor style fixes.
+* :ghpull:`10565`: Strip python 2 code from subprocess.py
+* :ghpull:`10605`: Bump a tolerance in test_axisartist_floating_axes.
+* :ghpull:`7853`: Use exact types for Py_BuildValue.
+* :ghpull:`10591`: Switch to @-matrix multiplication.
+* :ghpull:`10570`: Fix check_shared in test_subplots.
+* :ghpull:`10569`: Various style fixes.
+* :ghpull:`10593`: Use 'yield from' where appropriate.
+* :ghpull:`10577`: Minor simplification to Figure.__getstate__ logic.
+* :ghpull:`10549`: Source typos
+* :ghpull:`10525`: Convert six.moves.xrange() to range() for Python 3
+* :ghpull:`10541`: More argumentless (py3) super()
+* :ghpull:`10539`: TST: Replace assert_equal with plain asserts.
+* :ghpull:`10534`: Modernize cbook.get_realpath_and_stat.
+* :ghpull:`10524`: Remove unused private _StringFuncParser.
+* :ghpull:`10470`: Remove Python 2 code from setup
+* :ghpull:`10528`: py3fy examples
+* :ghpull:`10520`: Py3fy mathtext.py.
+* :ghpull:`10527`: Switch to argumentless (py3) super().
+* :ghpull:`10523`: The current master branch is now python 3 only.
+* :ghpull:`10515`: Use feature detection instead of version detection
+* :ghpull:`10432`: Use some new Python3 types
+* :ghpull:`10475`: Use HTTP Secure for matplotlib.org
+* :ghpull:`10383`: Fix some C++ warnings
+* :ghpull:`10498`: Tell the lgtm checker that the project is Python 3 only
+* :ghpull:`10505`: Remove backport of which()
+* :ghpull:`10483`: Remove backports.functools_lru_cache
+* :ghpull:`10492`: Avoid UnboundLocalError in drag_pan.
+* :ghpull:`10491`: Simplify Mac builds on Travis
+* :ghpull:`10481`: Remove python 2 compatibility code from dviread
+* :ghpull:`10447`: Remove Python 2 compatibility code from backend_pdf.py
+* :ghpull:`10468`: Replace is_numlike by isinstance(..., numbers.Number).
+* :ghpull:`10439`: mkdir is in the stdlib in Py3.
+* :ghpull:`10392`: FIX: make set_text(None) keep string empty instead of "None"
+* :ghpull:`10425`: API: only support python 3.5+
+* :ghpull:`10316`: TST FIX pyqt5 5.9
+* :ghpull:`4625`: hist2d() is now using pcolormesh instead of pcolorfast
+
+Issues (123):
+
+* :ghissue:`12133`: Streamplot does not work for 29x29 grid
+* :ghissue:`4429`: Error calculating scaling for radiobutton widget.
+* :ghissue:`3293`: markerfacecolor / mfc not in rcparams
+* :ghissue:`8109`: Cannot set the markeredgecolor by default
+* :ghissue:`7942`: Extend keyword doesn't work with log scale.
+* :ghissue:`5571`: Finish reorganizing examples
+* :ghissue:`8307`: Colorbar with imshow(logNorm) shows unexpected minor ticks
+* :ghissue:`6992`: plt.hist fails when data contains nan values
+* :ghissue:`6483`: Range determination for data with NaNs
+* :ghissue:`8059`: BboxConnectorPatch does not show facecolor
+* :ghissue:`12134`: tight_layout flips images when making plots without displaying them
+* :ghissue:`6739`: Make matplotlib fail more gracefully in headless environments
+* :ghissue:`3679`: Runtime detection for default backend
+* :ghissue:`11966`: CartoPy code gives attribute error
+* :ghissue:`11844`: Backend related issues with matplotlib 3.0.0rc1
+* :ghissue:`12095`: colorbar minorticks (possibly release critical for 3.0)
+* :ghissue:`12108`: Broken doc build with sphinx 1.8
+* :ghissue:`7366`: handle repaint requests better it qtAgg
+* :ghissue:`11985`: Single shot timer not working correctly with MacOSX backend
+* :ghissue:`10948`: OSX backend raises deprecation warning for enter_notify_event
+* :ghissue:`11970`: Legend.get_window_extent now requires a renderer
+* :ghissue:`8293`: investigate whether using a single instance of ghostscript for ps->png conversion can speed up the Windows build
+* :ghissue:`7707`: Replace pep8 by pycodestyle for style checking
+* :ghissue:`9135`: rcdefaults, rc_file_defaults, rc_file should not update backend if it has already been selected
+* :ghissue:`12015`: AttributeError with GTK3Agg backend
+* :ghissue:`11913`: plt.contour levels parameter don't work as intended if receive a single int
+* :ghissue:`11846`: macosx backend won't load
+* :ghissue:`11792`: Newer versions of ImageMagickWriter not found on windows
+* :ghissue:`11858`: Adding "pie of pie" and "bar of pie" functionality
+* :ghissue:`11852`: get_backend() backward compatibility
+* :ghissue:`11629`: Importing qt_compat when no Qt binding is installed fails with NameError instead of ImportError
+* :ghissue:`11842`: Failed nose import in test_annotation_update
+* :ghissue:`11252`: Some API removals not documented
+* :ghissue:`9404`: Drop support for python 2
+* :ghissue:`2625`: Markers in XKCD style
+* :ghissue:`11749`: metadata kwarg to savefig is not documented
+* :ghissue:`11702`: Setting alpha on legend handle changes patch color
+* :ghissue:`8798`: gtk3cairo draw_image does not respect origin and mishandles alpha
+* :ghissue:`11737`: Bug in tight_layout
+* :ghissue:`11373`: Passing an incorrectly sized colour list to scatter should raise a relevant error
+* :ghissue:`11756`: pgf backend doesn't set color of text when the color is black
+* :ghissue:`11766`: test_axes.py::test_csd_freqs failing with numpy 1.15.0 on macOS
+* :ghissue:`11750`: previous whats new is overindented on "what's new in mpl3.0 page"
+* :ghissue:`11728`: Qt5 Segfaults on window resize
+* :ghissue:`11709`: Repaint region is wrong on Retina display with Qt5
+* :ghissue:`11578`: wx segfaulting on OSX travis tests
+* :ghissue:`11628`: edgecolor argument not working in matplotlib.pyplot.bar
+* :ghissue:`11625`: plt.tight_layout() does not work with plt.subplot2grid
+* :ghissue:`4993`: Version ~/.cache/matplotlib
+* :ghissue:`7842`: If hexbin has logarithmic bins, use log formatter for colorbar
+* :ghissue:`11607`: AttributeError: 'QEvent' object has no attribute 'pos'
+* :ghissue:`11486`: Colorbar does not render with PowerNorm and min extend when using imshow
+* :ghissue:`11582`: wx segfault
+* :ghissue:`11515`: using 'sharex' once in 'subplots' function can affect subsequent calles to 'subplots'
+* :ghissue:`10269`: input() blocks any rendering and event handling
+* :ghissue:`10345`: Python 3.4 with Matplotlib 1.5 vs Python 3.6 with Matplotlib 2.1
+* :ghissue:`10443`: Drop use of pytz dependency in next major release
+* :ghissue:`10572`: contour and contourf treat levels differently
+* :ghissue:`11123`: Crash when interactively adding a number of subplots
+* :ghissue:`11550`: Undefined names: 'obj_type' and 'cbook'
+* :ghissue:`11138`: Only the first figure window has mpl icon, all other figures have default tk icon.
+* :ghissue:`11510`: extra minor-ticks on the colorbar when used with the extend option
+* :ghissue:`11369`: zorder of Artists not being respected when blitting with FuncAnimation
+* :ghissue:`11452`: Streamplot ignores rightmost column and topmost row of velocity data
+* :ghissue:`11284`: imshow of multiple images produces old pixel values printed in status bar
+* :ghissue:`11496`: MouseEvent.x and .y have different types
+* :ghissue:`11534`: Cross-reference margins and sticky edges
+* :ghissue:`8556`: Add images of markers to the list of markers
+* :ghissue:`11386`: Logit scale doesn't position x/ylabel correctly first draw
+* :ghissue:`11384`: Undefined name 'Path' in backend_nbagg.py
+* :ghissue:`11426`: nbagg broken on master. 'Path' is not defined...
+* :ghissue:`11390`: Internal use of deprecated code
+* :ghissue:`11203`: tight_layout reserves tick space even if disabled
+* :ghissue:`11361`: Tox.ini does not work out of the box
+* :ghissue:`11253`: Problem while changing current figure size in Jupyter notebook
+* :ghissue:`11219`: Write an arrow tutorial
+* :ghissue:`11322`: Really deprecate Patches.xy?
+* :ghissue:`11294`: ConnectionStyle Angle3 hangs with specific parameters
+* :ghissue:`9518`: Some ConnectionStyle not working
+* :ghissue:`11306`: savefig and path.py
+* :ghissue:`11077`: Font "DejaVu Sans" can only be used through fallback
+* :ghissue:`10717`: Failure to find matplotlibrc when testing installed distribution
+* :ghissue:`9912`: Cleaning up variable argument signatures
+* :ghissue:`3701`: unit tests should compare pyplot.py with output from boilerplate.py
+* :ghissue:`11183`: Undefined name 'system_fonts' in backend_pgf.py
+* :ghissue:`11101`: Crash on empty patches
+* :ghissue:`11124`: [Bug] savefig cannot save file with a Unicode name
+* :ghissue:`7733`: Trying to set_ylim(bottom=0) on a log scaled axis changes plot
+* :ghissue:`10319`: TST: pyqt 5.10 breaks pyqt5 interactive tests
+* :ghissue:`10676`: Add source code to documentation
+* :ghissue:`9207`: axes has no method to return new position after box is adjusted due to aspect ratio...
+* :ghissue:`4615`: hist2d with log xy axis
+* :ghissue:`10996`: Plotting text with datetime axis causes warning
+* :ghissue:`7582`: Report date and time of cursor position on a plot_date plot
+* :ghissue:`10114`: Remove mlab from examples
+* :ghissue:`10342`: imshow longdouble not truly supported
+* :ghissue:`8062`: tight_layout + lots of subplots + long ylabels inverts yaxis
+* :ghissue:`4413`: Long axis title alters xaxis length and direction with ``plt.tight_layout()``
+* :ghissue:`1415`: Plot title should be shifted up when xticks are set to the top of the plot
+* :ghissue:`10789`: Make pie charts circular by default
+* :ghissue:`10941`: Cannot set text alignment in pie chart
+* :ghissue:`7908`: plt.show doesn't warn if a non-GUI backend is being used
+* :ghissue:`10502`: 'FigureManager' is an undefined name in backend_wx.py
+* :ghissue:`10062`: axes limits revert to automatic on sharing axes?
+* :ghissue:`9246`: ENH: make default colorbar ticks adjust as nicely as axes ticks
+* :ghissue:`8818`: plt.plot() does not support structured arrays as data= kwarg
+* :ghissue:`10533`: Recognize pandas Timestamp objects for DateConverter?
+* :ghissue:`8358`: Minor ticks on log-scale colorbar are not cleared
+* :ghissue:`10075`: RectangleSelector does not work if start and end points are identical
+* :ghissue:`8576`: support 'markevery' in prop_cycle
+* :ghissue:`8874`: Crash in python setup.py test
+* :ghissue:`3871`: replace use of _tkcanvas with get_tk_widget()
+* :ghissue:`10550`: Use long color names for rc defaultParams
+* :ghissue:`10722`: Duplicated test name in test_constrainedlayout
+* :ghissue:`10419`: svg backend does not respect alpha channel of text *when passed as rgba*
+* :ghissue:`10769`: DOC: set_major_locator could check that its getting a Locator (was EngFormatter broken?)
+* :ghissue:`10719`: Need better type error checking for linewidth in ax.grid
+* :ghissue:`7776`: tex cache lockfile retries should be configurable
+* :ghissue:`10556`: Special conversions of xrange()
+* :ghissue:`10501`: cmp() is an undefined name in Python 3
+* :ghissue:`9812`: figure_enter_event generates base Event and not LocationEvent
+* :ghissue:`10602`: Random image failures with test_curvelinear4
+* :ghissue:`7795`: Incorrect uses of is_numlike
diff --git a/doc/users/prev_whats_new/github_stats_3.0.1.rst b/doc/users/prev_whats_new/github_stats_3.0.1.rst
new file mode 100644
index 000000000000..95e899d1a9de
--- /dev/null
+++ b/doc/users/prev_whats_new/github_stats_3.0.1.rst
@@ -0,0 +1,203 @@
+.. _github-stats-3-0-1:
+
+GitHub statistics for 3.0.1 (Oct 25, 2018)
+==========================================
+
+GitHub statistics for 2018/09/18 (tag: v3.0.0) - 2018/10/25
+
+These lists are automatically generated, and may be incomplete or contain duplicates.
+
+We closed 31 issues and merged 127 pull requests.
+The full list can be seen `on GitHub `__
+
+The following 23 authors contributed 227 commits.
+
+* Abhinuv Nitin Pitale
+* Antony Lee
+* Anubhav Shrimal
+* Ben Root
+* Colin
+* Daniele Nicolodi
+* David Haberthür
+* David Stansby
+* Elan Ernest
+* Elliott Sales de Andrade
+* Eric Firing
+* ImportanceOfBeingErnest
+* Jody Klymak
+* Kai Muehlbauer
+* Kevin Rose
+* Marcel Martin
+* MeeseeksMachine
+* Nelle Varoquaux
+* Nikita Kniazev
+* Ryan May
+* teresy
+* Thomas A Caswell
+* Tim Hoffmann
+
+GitHub issues and pull requests:
+
+Pull Requests (127):
+
+* :ghpull:`12595`: Backport PR #12569 on branch v3.0.x (Don't confuse uintptr_t and Py_ssize_t.)
+* :ghpull:`12623`: Backport PR #12285 on branch v3.0.x (FIX: Don't apply tight_layout if axes collapse)
+* :ghpull:`12285`: FIX: Don't apply tight_layout if axes collapse
+* :ghpull:`12622`: FIX: flake8errors 3.0.x mergeup
+* :ghpull:`12619`: Backport PR #12548 on branch v3.0.x (undef _XOPEN_SOURCE breaks the build in AIX)
+* :ghpull:`12621`: Backport PR #12607 on branch v3.0.x (STY: fix whitespace and escaping)
+* :ghpull:`12616`: Backport PR #12615 on branch v3.0.x (Fix travis OSX build)
+* :ghpull:`12594`: Backport PR #12572 on branch v3.0.x (Fix singleton hist labels)
+* :ghpull:`12615`: Fix travis OSX build
+* :ghpull:`12607`: STY: fix whitespace and escaping
+* :ghpull:`12605`: Backport PR #12603 on branch v3.0.x (FIX: don't import macosx to check if eventloop running)
+* :ghpull:`12604`: FIX: over-ride 'copy' on RcParams
+* :ghpull:`12603`: FIX: don't import macosx to check if eventloop running
+* :ghpull:`12602`: Backport PR #12599 on branch v3.0.x (Fix formatting of docstring)
+* :ghpull:`12599`: Fix formatting of docstring
+* :ghpull:`12593`: Backport PR #12581 on branch v3.0.x (Fix hist() error message)
+* :ghpull:`12569`: Don't confuse uintptr_t and Py_ssize_t.
+* :ghpull:`12572`: Fix singleton hist labels
+* :ghpull:`12581`: Fix hist() error message
+* :ghpull:`12575`: Backport PR #12573 on branch v3.0.x (BUG: mplot3d: Don't crash if azim or elev are non-integral)
+* :ghpull:`12558`: Backport PR #12555 on branch v3.0.x (Clarify horizontalalignment and verticalalignment in suptitle)
+* :ghpull:`12544`: Backport PR #12159 on branch v3.0.x (FIX: colorbar re-check norm before draw for autolabels)
+* :ghpull:`12159`: FIX: colorbar re-check norm before draw for autolabels
+* :ghpull:`12540`: Backport PR #12501 on branch v3.0.x (Rectified plot error)
+* :ghpull:`12531`: Backport PR #12431 on branch v3.0.x (FIX: allow single-string color for scatter)
+* :ghpull:`12431`: FIX: allow single-string color for scatter
+* :ghpull:`12529`: Backport PR #12216 on branch v3.0.x (Doc: Fix search for sphinx >=1.8)
+* :ghpull:`12527`: Backport PR #12461 on branch v3.0.x (FIX: make add_lines work with new colorbar)
+* :ghpull:`12461`: FIX: make add_lines work with new colorbar
+* :ghpull:`12522`: Backport PR #12241 on branch v3.0.x (FIX: make unused spines invisible)
+* :ghpull:`12241`: FIX: make unused spines invisible
+* :ghpull:`12519`: Backport PR #12504 on branch v3.0.x (DOC: clarify min supported version wording)
+* :ghpull:`12517`: Backport PR #12507 on branch v3.0.x (FIX: make minor ticks formatted with science formatter as well)
+* :ghpull:`12507`: FIX: make minor ticks formatted with science formatter as well
+* :ghpull:`12512`: Backport PR #12363 on branch v3.0.x
+* :ghpull:`12511`: Backport PR #12366 on branch v2.2.x (TST: Update test images for new Ghostscript.)
+* :ghpull:`12509`: Backport PR #12478 on branch v3.0.x (MAINT: numpy deprecates asscalar in 1.16)
+* :ghpull:`12363`: FIX: errors in get_position changes
+* :ghpull:`12497`: Backport PR #12495 on branch v3.0.x (Fix duplicate condition in pathpatch3d example)
+* :ghpull:`12490`: Backport PR #12489 on branch v3.0.x (Fix typo in documentation of ylim)
+* :ghpull:`12485`: Fix font_manager.OSXInstalledFonts()
+* :ghpull:`12484`: Backport PR #12448 on branch v3.0.x (Don't error if some font directories are not readable.)
+* :ghpull:`12421`: Backport PR #12360 on branch v3.0.x (Replace axes_grid by axes_grid1 in test)
+* :ghpull:`12448`: Don't error if some font directories are not readable.
+* :ghpull:`12471`: Backport PR #12468 on branch v3.0.x (Fix ``set_ylim`` unit handling)
+* :ghpull:`12475`: Backport PR #12469 on branch v3.0.x (Clarify documentation of offsetbox.AnchoredText's prop kw argument)
+* :ghpull:`12468`: Fix ``set_ylim`` unit handling
+* :ghpull:`12464`: Backport PR #12457 on branch v3.0.x (Fix tutorial typos.)
+* :ghpull:`12432`: Backport PR #12277: FIX: datetime64 now recognized if in a list
+* :ghpull:`12277`: FIX: datetime64 now recognized if in a list
+* :ghpull:`12426`: Backport PR #12293 on branch v3.0.x (Make pyplot more tolerant wrt. 3rd-party subclasses.)
+* :ghpull:`12293`: Make pyplot more tolerant wrt. 3rd-party subclasses.
+* :ghpull:`12360`: Replace axes_grid by axes_grid1 in test
+* :ghpull:`12412`: Backport PR #12394 on branch v3.0.x (DOC: fix CL tutorial to give same output from saved file and example)
+* :ghpull:`12410`: Backport PR #12408 on branch v3.0.x (Don't crash on invalid registry font entries on Windows.)
+* :ghpull:`12411`: Backport PR #12366 on branch v3.0.0-doc (TST: Update test images for new Ghostscript.)
+* :ghpull:`12408`: Don't crash on invalid registry font entries on Windows.
+* :ghpull:`12403`: Backport PR #12149 on branch v3.0.x (Mathtext tutorial fixes)
+* :ghpull:`12400`: Backport PR #12257 on branch v3.0.x (Document standard backends in matplotlib.use())
+* :ghpull:`12257`: Document standard backends in matplotlib.use()
+* :ghpull:`12399`: Backport PR #12383 on branch v3.0.x (Revert change of parameter name in annotate())
+* :ghpull:`12383`: Revert change of parameter name in annotate()
+* :ghpull:`12390`: Backport PR #12385 on branch v3.0.x (CI: Added Appveyor Python 3.7 build)
+* :ghpull:`12385`: CI: Added Appveyor Python 3.7 build
+* :ghpull:`12381`: Backport PR #12353 on branch v3.0.x (Doc: clarify default parameters in scatter docs)
+* :ghpull:`12378`: Backport PR #12366 on branch v3.0.x (TST: Update test images for new Ghostscript.)
+* :ghpull:`12375`: Backport PR #11648 on branch v3.0.x (FIX: colorbar placement in constrained layout)
+* :ghpull:`11648`: FIX: colorbar placement in constrained layout
+* :ghpull:`12350`: Backport PR #12214 on branch v3.0.x
+* :ghpull:`12348`: Backport PR #12347 on branch v3.0.x (DOC: add_child_axes to axes_api.rst)
+* :ghpull:`12214`: Improve docstring of Annotation
+* :ghpull:`12344`: Backport PR #12321 on branch v3.0.x (maint: setupext.py for freetype had a Catch case for missing ft2build.h)
+* :ghpull:`12342`: Backport PR #12334 on branch v3.0.x (Improve selection of inset indicator connectors.)
+* :ghpull:`12334`: Improve selection of inset indicator connectors.
+* :ghpull:`12339`: Backport PR #12297 on branch v3.0.x (Remove some pytest parameterising warnings)
+* :ghpull:`12338`: Backport PR #12268 on branch v3.0.x (FIX: remove unnecessary ``self`` in ``super_``-calls, fixes #12265)
+* :ghpull:`12336`: Backport PR #12212 on branch v3.0.x (font_manager: Fixed problems with Path(...).suffix)
+* :ghpull:`12268`: FIX: remove unnecessary ``self`` in ``super_``-calls, fixes #12265
+* :ghpull:`12212`: font_manager: Fixed problems with Path(...).suffix
+* :ghpull:`12331`: Backport PR #12322 on branch v3.0.x (Fix the docs build.)
+* :ghpull:`12327`: Backport PR #12326 on branch v3.0.x (fixed minor spelling error in docstring)
+* :ghpull:`12320`: Backport PR #12319 on branch v3.0.x (Fix Travis 3.6 builds)
+* :ghpull:`12315`: Backport PR #12313 on branch v3.0.x (BUG: Fix typo in view_limits() for MultipleLocator)
+* :ghpull:`12313`: BUG: Fix typo in view_limits() for MultipleLocator
+* :ghpull:`12305`: Backport PR #12274 on branch v3.0.x (MNT: put back ``_hold`` as read-only attribute on AxesBase)
+* :ghpull:`12274`: MNT: put back ``_hold`` as read-only attribute on AxesBase
+* :ghpull:`12303`: Backport PR #12163 on branch v3.0.x (TST: Defer loading Qt framework until test is run.)
+* :ghpull:`12299`: Backport PR #12294 on branch v3.0.x (Fix expand_dims warnings in triinterpolate)
+* :ghpull:`12163`: TST: Defer loading Qt framework until test is run.
+* :ghpull:`12301`: Ghostscript 9.0 requirement revisited
+* :ghpull:`12294`: Fix expand_dims warnings in triinterpolate
+* :ghpull:`12297`: Remove some pytest parameterising warnings
+* :ghpull:`12295`: Backport PR #12261 on branch v3.0.x (FIX: parasite axis2 demo)
+* :ghpull:`12289`: Backport PR #12278 on branch v3.0.x (Document inheriting docstrings)
+* :ghpull:`12287`: Backport PR #12262 on branch v3.0.x (Simplify empty-rasterized pdf test.)
+* :ghpull:`12280`: Backport PR #12269 on branch v3.0.x (Add some param docs to BlockingInput methods)
+* :ghpull:`12266`: Backport PR #12254 on branch v3.0.x (Improve docstrings of Animations)
+* :ghpull:`12262`: Simplify empty-rasterized pdf test.
+* :ghpull:`12254`: Improve docstrings of Animations
+* :ghpull:`12263`: Backport PR #12258 on branch v3.0.x (Fix CSS for module-level data)
+* :ghpull:`12250`: Backport PR #12209 on branch v3.0.x (Doc: Sort named colors example by palette)
+* :ghpull:`12248`: Backport PR #12237 on branch v3.0.x (Use (float, float) as parameter type for 2D positions in docstrings)
+* :ghpull:`12240`: Backport PR #12236 on branch v3.0.x
+* :ghpull:`12237`: Use (float, float) as parameter type for 2D positions in docstrings
+* :ghpull:`12242`: Backport PR #12238 on branch v3.0.x (Typo in docs)
+* :ghpull:`12236`: Make boilerplate-generated pyplot.py flake8 compliant
+* :ghpull:`12234`: Backport PR #12228 on branch v3.0.x (Fix trivial typo in docs.)
+* :ghpull:`12230`: Backport PR #12213 on branch v3.0.x (Change win32InstalledFonts return value)
+* :ghpull:`12213`: Change win32InstalledFonts return value
+* :ghpull:`12223`: Backport PR #11688 on branch v3.0.x (Don't draw axis (spines, ticks, labels) twice when using parasite axes.)
+* :ghpull:`12224`: Backport PR #12207 on branch v3.0.x (FIX: dont' check for interactive framework if none required)
+* :ghpull:`12207`: FIX: don't check for interactive framework if none required
+* :ghpull:`11688`: Don't draw axis (spines, ticks, labels) twice when using parasite axes.
+* :ghpull:`12205`: Backport PR #12186 on branch v3.0.x (DOC: fix API note about get_tightbbox)
+* :ghpull:`12204`: Backport PR #12203 on branch v3.0.x (Document legend best slowness)
+* :ghpull:`12203`: Document legend's slowness when "best" location is used
+* :ghpull:`12194`: Backport PR #12164 on branch v3.0.x (Fix Annotation.contains.)
+* :ghpull:`12193`: Backport PR #12177 on branch v3.0.x (FIX: remove cwd from mac font path search)
+* :ghpull:`12164`: Fix Annotation.contains.
+* :ghpull:`12177`: FIX: remove cwd from mac font path search
+* :ghpull:`12185`: Backport PR #12183 on branch v3.0.x (Doc: Don't use Sphinx 1.8)
+* :ghpull:`12183`: Doc: Don't use Sphinx 1.8
+* :ghpull:`12172`: Backport PR #12157 on branch v3.0.x (Properly declare the interactive framework for the qt4foo backends.)
+* :ghpull:`12167`: Backport PR #12166 on branch v3.0.x (Document preference order for backend auto selection)
+* :ghpull:`12166`: Document preference order for backend auto selection
+* :ghpull:`12157`: Properly declare the interactive framework for the qt4foo backends.
+* :ghpull:`12153`: Backport PR #12148 on branch v3.0.x (BLD: pragmatic fix for building basic_unit example on py37)
+
+Issues (31):
+
+* :ghissue:`12626`: AttributeError: module 'matplotlib' has no attribute 'artist'
+* :ghissue:`12613`: transiently linked interactivity of unshared pair of axes generated with make_axes_locatable
+* :ghissue:`12601`: Can't import matplotlib
+* :ghissue:`12580`: Incorrect hist error message with bad color size
+* :ghissue:`12567`: Calling pyplot.show() with TkAgg backend on x86 machine raises OverflowError.
+* :ghissue:`12556`: Matplotlib 3.0.0 import hangs in clean environment
+* :ghissue:`12550`: colorbar resizes in animation
+* :ghissue:`12155`: Incorrect placement of Colorbar ticks using LogNorm
+* :ghissue:`12438`: Scatter doesn't accept a list of strings as color spec.
+* :ghissue:`12429`: scatter() does not accept gray strings anymore
+* :ghissue:`12458`: add_lines misses lines for matplotlib.colorbar.ColorbarBase
+* :ghissue:`12239`: 3d axes are collapsed by tight_layout
+* :ghissue:`12488`: inconsistent colorbar tick labels for LogNorm
+* :ghissue:`12515`: pyplot.step broken in 3.0.0?
+* :ghissue:`12355`: Error for bbox_inches='tight' in savefig with make_axes_locatable
+* :ghissue:`12505`: ImageGrid in 3.0
+* :ghissue:`12291`: Importing pyplot crashes on macOS due to missing fontlist-v300.json and then Permission denied: '/opt/local/share/fonts'
+* :ghissue:`12288`: New function signatures in pyplot break Cartopy
+* :ghissue:`12445`: Error on colorbar
+* :ghissue:`12446`: Polar Contour - float() argument must be a string or a number, not 'AxesParasiteParasiteAuxTrans'
+* :ghissue:`12271`: error with errorbar with datetime64
+* :ghissue:`12405`: plt.stackplot() does not work with 3.0.0
+* :ghissue:`12406`: Bug with font finding, and here is my fix as well.
+* :ghissue:`12325`: Annotation change from "s" to "text" in 3.0- documentation
+* :ghissue:`11641`: constrained_layout and colorbar for a subset of axes
+* :ghissue:`12352`: TeX rendering broken on master with windows
+* :ghissue:`12354`: Too many levels of symbolic links
+* :ghissue:`12265`: ParasiteAxesAuxTrans pcolor/pcolormesh and contour/contourf broken
+* :ghissue:`12173`: Cannot import pyplot
+* :ghissue:`12120`: Default legend behavior (loc='best') very slow for large amounts of data.
+* :ghissue:`12176`: import pyplot on MacOS without font cache will search entire subtree of current dir
diff --git a/doc/users/prev_whats_new/github_stats_3.0.2.rst b/doc/users/prev_whats_new/github_stats_3.0.2.rst
index edafac67e192..395f87acd534 100644
--- a/doc/users/prev_whats_new/github_stats_3.0.2.rst
+++ b/doc/users/prev_whats_new/github_stats_3.0.2.rst
@@ -1,13 +1,14 @@
.. _github-stats-3-0-2:
-GitHub Stats for Matplotlib 3.0.2
-=================================
+GitHub statistics for 3.0.2 (Nov 10, 2018)
+==========================================
-GitHub stats for 2018/09/18 - 2018/11/09 (tag: v3.0.0)
+GitHub statistics for 2018/09/18 (tag: v3.0.0) - 2018/11/10
These lists are automatically generated, and may be incomplete or contain duplicates.
We closed 170 issues and merged 224 pull requests.
+The full list can be seen `on GitHub `__
The following 49 authors contributed 460 commits.
diff --git a/doc/users/prev_whats_new/github_stats_3.0.3.rst b/doc/users/prev_whats_new/github_stats_3.0.3.rst
new file mode 100644
index 000000000000..5c1271e52e4f
--- /dev/null
+++ b/doc/users/prev_whats_new/github_stats_3.0.3.rst
@@ -0,0 +1,147 @@
+.. _github-stats-3-0-3:
+
+GitHub statistics for 3.0.3 (Feb 28, 2019)
+==========================================
+
+GitHub statistics for 2018/11/10 (tag: v3.0.2) - 2019/02/28
+
+These lists are automatically generated, and may be incomplete or contain duplicates.
+
+We closed 14 issues and merged 92 pull requests.
+The full list can be seen `on GitHub `__
+
+The following 19 authors contributed 157 commits.
+
+* Antony Lee
+* Christer Jensen
+* Christoph Gohlke
+* David Stansby
+* Elan Ernest
+* Elliott Sales de Andrade
+* ImportanceOfBeingErnest
+* James Adams
+* Jody Klymak
+* Johannes H. Jensen
+* Matthias Geier
+* MeeseeksMachine
+* Molly Rossow
+* Nelle Varoquaux
+* Paul Ivanov
+* Pierre Thibault
+* Thomas A Caswell
+* Tim Hoffmann
+* Tobia De Koninck
+
+GitHub issues and pull requests:
+
+Pull Requests (92):
+
+* :ghpull:`13493`: V3.0.3 prep
+* :ghpull:`13491`: V3.0.x pi
+* :ghpull:`13460`: Backport PR #13455 on branch v3.0.x (BLD: only try to get freetype src if src does not exist)
+* :ghpull:`13461`: Backport PR #13426 on branch v3.0.x (FIX: bbox_inches='tight' with only non-finite bounding boxes)
+* :ghpull:`13426`: FIX: bbox_inches='tight' with only non-finite bounding boxes
+* :ghpull:`13453`: Backport PR #13451 on branch v3.0.x (MNT: fix logic error where we never try the second freetype URL)
+* :ghpull:`13451`: MNT: fix logic error where we never try the second freetype URL
+* :ghpull:`13446`: Merge pull request #11246 from anntzer/download-jquery
+* :ghpull:`13437`: Backport PR #13436 on branch v3.0.x (Add get/set_in_layout to artist API docs.)
+* :ghpull:`13436`: Add get/set_in_layout to artist API docs.
+* :ghpull:`13432`: Really fix ArtistInspector.get_aliases
+* :ghpull:`13416`: Backport PR #13405 on branch v3.0.x (Fix imshow()ing PIL-opened images.)
+* :ghpull:`13418`: Backport PR #13412 and #13337 on branch v3.0.x
+* :ghpull:`13412`: CI: add additional qt5 deb package on travis
+* :ghpull:`13370`: Backport PR #13367 on branch v3.0.x (DOC: fix note of what version hold was deprecated in (2.0 not 2.1))
+* :ghpull:`13366`: Backport PR #13365 on branch v3.0.x (Fix gcc warning)
+* :ghpull:`13365`: Fix gcc warning
+* :ghpull:`13347`: Backport PR #13289 on branch v3.0.x (Fix unhandled C++ exception)
+* :ghpull:`13349`: Backport PR #13234 on branch v3.0.x
+* :ghpull:`13281`: MAINT install of pinned vers for travis
+* :ghpull:`13289`: Fix unhandled C++ exception
+* :ghpull:`13345`: Backport PR #13333 on branch v3.0.x (Fix possible leak of return of PySequence_GetItem.)
+* :ghpull:`13333`: Fix possible leak of return of PySequence_GetItem.
+* :ghpull:`13337`: Bump to flake8 3.7.
+* :ghpull:`13340`: Backport PR #12398 on branch v3.0.x (CI: Don't run AppVeyor/Travis for doc backport branches.)
+* :ghpull:`13317`: Backport PR #13316 on branch v3.0.x (Put correct version in constrained layout tutorial)
+* :ghpull:`13308`: Backport PR #12678 on branch v3.0.x
+* :ghpull:`12678`: FIX: properly set tz for YearLocator
+* :ghpull:`13291`: Backport PR #13287 on branch v3.0.x (Fix unsafe use of NULL pointer)
+* :ghpull:`13290`: Backport PR #13288 on branch v3.0.x (Fix potential memory leak)
+* :ghpull:`13287`: Fix unsafe use of NULL pointer
+* :ghpull:`13288`: Fix potential memory leak
+* :ghpull:`13273`: Backport PR #13272 on branch v3.0.x (DOC Better description of inset locator and colorbar)
+* :ghpull:`12812`: Backport PR #12809 on branch v3.0.x (Fix TypeError when calculating tick_values)
+* :ghpull:`13245`: Backport PR #13244 on branch v3.0.x (Fix typo)
+* :ghpull:`13176`: Backport PR #13047 on branch v3.0.x (Improve docs on contourf extend)
+* :ghpull:`13215`: Backport PR #13212 on branch v3.0.x (Updated the docstring for pyplot.figure to list floats as the type for figsize argument)
+* :ghpull:`13158`: Backport PR #13150 on branch v3.0.x (Remove unused add_dicts from example.)
+* :ghpull:`13157`: Backport PR #13152 on branch v3.0.x (DOC: Add explanatory comment for colorbar with axes divider example)
+* :ghpull:`13221`: Backport PR #13194 on branch v3.0.x (TST: Fix incorrect call to pytest.raises.)
+* :ghpull:`13230`: Backport PR #13226 on branch v3.0.x (Avoid triggering warnings in mandelbrot example.)
+* :ghpull:`13216`: Backport #13205 on branch v3.0.x (Add xvfb service to travis)
+* :ghpull:`13194`: TST: Fix incorrect call to pytest.raises.
+* :ghpull:`13212`: Updated the docstring for pyplot.figure to list floats as the type for figsize argument
+* :ghpull:`13205`: Add xvfb service to travis
+* :ghpull:`13204`: Add xvfb service to travis
+* :ghpull:`13175`: Backport PR #13015 on branch v3.0.x (Enable local doc building without git installation)
+* :ghpull:`13047`: Improve docs on contourf extend
+* :ghpull:`13015`: Enable local doc building without git installation
+* :ghpull:`13159`: Revert "Pin pytest to <3.8 (for 3.0.x)"
+* :ghpull:`13150`: Remove unused add_dicts from example.
+* :ghpull:`13152`: DOC: Add explanatory comment for colorbar with axes divider example
+* :ghpull:`13085`: Backport PR #13081 on branch v3.0.x (DOC: forbid a buggy version of pillow for building docs)
+* :ghpull:`13082`: Backport PR #13080 on branch v3.0.x (Pin pillow to < 5.4 to fix doc build)
+* :ghpull:`13054`: Backport PR #13052 on branch v3.0.x (Small bug fix in image_slices_viewer)
+* :ghpull:`13052`: Small bug fix in image_slices_viewer
+* :ghpull:`13036`: Backport PR #12949 on branch v3.0.x (Update docstring of Axes3d.scatter)
+* :ghpull:`12949`: Update docstring of Axes3d.scatter
+* :ghpull:`13004`: Backport PR #13001: Update windows build instructions
+* :ghpull:`13011`: Backport PR #13006 on branch v3.0.x (Add category module to docs)
+* :ghpull:`13009`: Fix dependencies for travis build with python 3.5
+* :ghpull:`13006`: Add category module to docs
+* :ghpull:`13001`: Update windows build instructions
+* :ghpull:`12996`: Fix return type in 3D scatter docs
+* :ghpull:`12972`: Backport PR #12929 on branch v3.0.x (FIX: skip gtk backend if gobject but not pygtk is installed)
+* :ghpull:`12596`: Use sudo:true for nightly builds.
+* :ghpull:`12929`: FIX: skip gtk backend if gobject but not pygtk is installed
+* :ghpull:`12965`: Backport PR #12960 on branch v3.0.x (Remove animated=True from animation docs)
+* :ghpull:`12964`: Backport PR #12938 on branch v3.0.x (Fix xtick.minor.visible only acting on the xaxis)
+* :ghpull:`12938`: Fix xtick.minor.visible only acting on the xaxis
+* :ghpull:`12937`: Backport PR #12914 on branch 3.0.x: Fix numpydoc formatting
+* :ghpull:`12914`: Fix numpydoc formatting
+* :ghpull:`12923`: Backport PR #12921 on branch v3.0.x (Fix documentation of vert parameter of Axes.bxp)
+* :ghpull:`12921`: Fix documentation of vert parameter of Axes.bxp
+* :ghpull:`12912`: Backport PR #12878 on branch v3.0.2-doc (Pin pytest to <3.8 (for 3.0.x))
+* :ghpull:`12906`: Backport PR #12774 on branch v3.0.x
+* :ghpull:`12774`: Cairo backend: Fix alpha render of collections
+* :ghpull:`12854`: Backport PR #12835 on branch v3.0.x (Don't fail tests if cairo dependency is not installed.)
+* :ghpull:`12896`: Backport PR #12848 on branch v3.0.x (Fix spelling of the name Randall Munroe)
+* :ghpull:`12894`: Backport PR #12890 on branch v3.0.x (Restrict postscript title to ascii.)
+* :ghpull:`12838`: Backport PR #12795 on branch v3.0.x (Fix Bezier degree elevation formula in backend_cairo.)
+* :ghpull:`12843`: Backport PR #12824 on branch v3.0.x
+* :ghpull:`12890`: Restrict postscript title to ascii.
+* :ghpull:`12878`: Pin pytest to <3.8 (for 3.0.x)
+* :ghpull:`12870`: Backport PR #12869 on branch v3.0.x (Fix latin-1-ization of Title in eps.)
+* :ghpull:`12869`: Fix latin-1-ization of Title in eps.
+* :ghpull:`12835`: Don't fail tests if cairo dependency is not installed.
+* :ghpull:`12848`: Fix spelling of the name Randall Munroe
+* :ghpull:`12795`: Fix Bezier degree elevation formula in backend_cairo.
+* :ghpull:`12824`: Add missing datestr2num to docs
+* :ghpull:`12791`: Backport PR #12790 on branch v3.0.x (Remove ticks and titles from tight bbox tests.)
+* :ghpull:`12790`: Remove ticks and titles from tight bbox tests.
+
+Issues (14):
+
+* :ghissue:`10360`: creating PathCollection proxy artist with %matplotlib inline raises ValueError: cannot convert float NaN to integer
+* :ghissue:`13276`: calling annotate with nan values for the position still gives error after 3.0.2
+* :ghissue:`13450`: Issues with jquery download caching
+* :ghissue:`13223`: label1On set to true when axis.tick_params(axis='both', which='major', length=5)
+* :ghissue:`13311`: docs unclear on status of constraint layout
+* :ghissue:`12675`: Off-by-one bug in annual axis labels when localized time crosses year boundary
+* :ghissue:`13208`: Wrong argument type for figsize in documentation for figure
+* :ghissue:`13201`: test_backend_qt tests failing
+* :ghissue:`13013`: v3.0.2 local html docs "git describe" error
+* :ghissue:`13051`: Missing self in image_slices_viewer
+* :ghissue:`12920`: Incorrect return type in mplot3d documentation
+* :ghissue:`12907`: Tiny typo in documentation of matplotlib.figure.Figure.colorbar
+* :ghissue:`12892`: GTK3Cairo Backend Legend TypeError
+* :ghissue:`12815`: DOC: matplotlib.dates datestr2num function documentation is missing
diff --git a/doc/users/prev_whats_new/github_stats_3.1.0.rst b/doc/users/prev_whats_new/github_stats_3.1.0.rst
index 704de6d09932..97bee1af56b8 100644
--- a/doc/users/prev_whats_new/github_stats_3.1.0.rst
+++ b/doc/users/prev_whats_new/github_stats_3.1.0.rst
@@ -1,14 +1,14 @@
.. _github-stats-3-1-0:
-GitHub Stats for Matplotlib 3.1.0
-=================================
+GitHub statistics for 3.1.0 (May 18, 2019)
+==========================================
-GitHub stats for 2018/09/18 - 2019/05/13 (tag: v3.0.0)
+GitHub statistics for 2018/09/18 (tag: v3.0.0) - 2019/05/18
These lists are automatically generated, and may be incomplete or contain duplicates.
We closed 161 issues and merged 918 pull requests.
-The full list can be seen `on GitHub `__
+The full list can be seen `on GitHub `__
The following 150 authors contributed 3426 commits.
diff --git a/doc/users/prev_whats_new/github_stats_3.1.1.rst b/doc/users/prev_whats_new/github_stats_3.1.1.rst
index 5de8ba84ade8..3e552c371c55 100644
--- a/doc/users/prev_whats_new/github_stats_3.1.1.rst
+++ b/doc/users/prev_whats_new/github_stats_3.1.1.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-1-1:
-GitHub Stats for Matplotlib 3.1.1
-=================================
+GitHub statistics for 3.1.1 (Jul 02, 2019)
+==========================================
-GitHub stats for 2019/05/18 - 2019/06/30 (tag: v3.1.0)
+GitHub statistics for 2019/05/18 (tag: v3.1.0) - 2019/07/02
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.1.2.rst b/doc/users/prev_whats_new/github_stats_3.1.2.rst
index 9f11f34cb78a..e1ed84e26372 100644
--- a/doc/users/prev_whats_new/github_stats_3.1.2.rst
+++ b/doc/users/prev_whats_new/github_stats_3.1.2.rst
@@ -1,202 +1,186 @@
.. _github-stats-3-1-2:
-GitHub Stats for Matplotlib 3.1.2
-=================================
+GitHub statistics for 3.1.2 (Nov 21, 2019)
+==========================================
-GitHub stats for 2019/05/18 - 2019/06/30 (tag: v3.1.0)
+GitHub statistics for 2019/07/01 (tag: v3.1.1) - 2019/11/21
These lists are automatically generated, and may be incomplete or contain duplicates.
-We closed 30 issues and merged 120 pulnl requests.
-The full list can be seen `on GitHub `__
+We closed 28 issues and merged 113 pull requests.
+The full list can be seen `on GitHub `__
-The following 30 authors contributed 323 commits.
+The following 23 authors contributed 192 commits.
-* Adam Gomaa
+* Alex Rudy
* Antony Lee
-* Ben Root
-* Christer Jensen
-* chuanzhu xu
+* Bingyao Liu
+* Cong Ma
* David Stansby
-* Deng Tian
-* djdt
-* Dora Fraeman Caswell
-* Elan Ernest
* Elliott Sales de Andrade
-* Eric Firing
-* Filipe Fernandes
-* Ian Thomas
+* hannah
+* Hanno Rein
* ImportanceOfBeingErnest
+* joaonsg
* Jody Klymak
-* Johannes H. Jensen
-* Jonas Camillus Jeppesen
-* LeiSurrre
-* Matt Adamson
+* Matthias Bussonnier
* MeeseeksMachine
-* Molly Rossow
-* Nathan Goldbaum
+* miquelastein
* Nelle Varoquaux
+* Patrick Shriwise
+* Paul Hoffman
* Paul Ivanov
-* RoryIAngus
* Ryan May
+* Samesh
* Thomas A Caswell
-* Thomas Robitaille
* Tim Hoffmann
+* Vincent L.M. Mazoyer
GitHub issues and pull requests:
-Pull Requests (120):
+Pull Requests (113):
-* :ghpull:`14636`: Don't capture stderr in _check_and_log_subprocess.
-* :ghpull:`14655`: Backport PR #14649 on branch v3.1.x (Fix appveyor conda py37)
-* :ghpull:`14649`: Fix appveyor conda py37
-* :ghpull:`14646`: Backport PR #14640 on branch v3.1.x (FIX: allow secondary axes to be non-linear)
-* :ghpull:`14640`: FIX: allow secondary axes to be non-linear
-* :ghpull:`14643`: Second attempt at fixing axis inversion (for mpl3.1).
-* :ghpull:`14623`: Fix axis inversion with loglocator and logitlocator.
-* :ghpull:`14619`: Backport PR #14598 on branch v3.1.x (Fix inversion of shared axes.)
-* :ghpull:`14621`: Backport PR #14613 on branch v3.1.x (Cleanup DateFormatter docstring.)
-* :ghpull:`14622`: Backport PR #14611 on branch v3.1.x (Update some axis docstrings.)
-* :ghpull:`14611`: Update some axis docstrings.
-* :ghpull:`14613`: Cleanup DateFormatter docstring.
-* :ghpull:`14598`: Fix inversion of shared axes.
-* :ghpull:`14610`: Backport PR #14579 on branch v3.1.x (Fix inversion of 3d axis.)
-* :ghpull:`14579`: Fix inversion of 3d axis.
-* :ghpull:`14600`: Backport PR #14599 on branch v3.1.x (DOC: Add numpngw to third party packages.)
-* :ghpull:`14574`: Backport PR #14568 on branch v3.1.x (Don't assume tk canvas have a manager attached.)
-* :ghpull:`14568`: Don't assume tk canvas have a manager attached.
-* :ghpull:`14571`: Backport PR #14566 on branch v3.1.x (Move setting of AA_EnableHighDpiScaling before creating QApplication.)
-* :ghpull:`14566`: Move setting of AA_EnableHighDpiScaling before creating QApplication.
-* :ghpull:`14541`: Backport PR #14535 on branch v3.1.x (Invalidate FT2Font cache when fork()ing.)
-* :ghpull:`14535`: Invalidate FT2Font cache when fork()ing.
-* :ghpull:`14522`: Backport PR #14040 on branch v3.1.x (Gracefully handle non-finite z in tricontour (issue #10167))
-* :ghpull:`14434`: Backport PR #14296 on branch v3.1.x (Fix barbs to accept array of bool for ``flip_barb``)
-* :ghpull:`14518`: Backport PR #14509 on branch v3.1.x (Fix too large icon spacing in Qt5 on non-HiDPI screens)
-* :ghpull:`14509`: Fix too large icon spacing in Qt5 on non-HiDPI screens
-* :ghpull:`14514`: Backport PR #14256 on branch v3.1.x (Improve docstring of Axes.barbs)
-* :ghpull:`14256`: Improve docstring of Axes.barbs
-* :ghpull:`14505`: Backport PR #14395 on branch v3.1.x (MAINT: work around non-zero exit status of "pdftops -v" command.)
-* :ghpull:`14504`: Backport PR #14445 on branch v3.1.x (FIX: fastpath clipped artists)
-* :ghpull:`14502`: Backport PR #14451 on branch v3.1.x (FIX: return points rather than path to fix regression)
-* :ghpull:`14445`: FIX: fastpath clipped artists
-* :ghpull:`14497`: Backport PR #14491 on branch v3.1.x (Fix uses of PyObject_IsTrue.)
-* :ghpull:`14491`: Fix uses of PyObject_IsTrue.
-* :ghpull:`14492`: Backport PR #14490 on branch v3.1.x (Fix links of parameter types)
-* :ghpull:`14490`: Fix links of parameter types
-* :ghpull:`14489`: Backport PR #14459 on branch v3.1.x (Cleanup docstring of DraggableBase.)
-* :ghpull:`14459`: Cleanup docstring of DraggableBase.
-* :ghpull:`14485`: Backport #14429 on v3.1.x
-* :ghpull:`14486`: Backport #14403 on v3.1.
-* :ghpull:`14429`: FIX: if the first elements of an array are masked keep checking
-* :ghpull:`14481`: Backport PR #14475 on branch v3.1.x (change ginoput docstring to match behavior)
-* :ghpull:`14482`: Backport PR #14464 on branch v3.1.x (Mention origin and extent tutorial in API docs for origin kwarg)
-* :ghpull:`14464`: Mention origin and extent tutorial in API docs for origin kwarg
-* :ghpull:`14468`: Backport PR #14449: Improve docs on gridspec
-* :ghpull:`14475`: change ginoput docstring to match behavior
-* :ghpull:`14477`: Backport PR #14461 on branch v3.1.x (Fix out of bounds read in backend_tk.)
-* :ghpull:`14476`: Backport PR #14474 on branch v3.1.x (Fix default value in docstring of errorbar func)
-* :ghpull:`14461`: Fix out of bounds read in backend_tk.
-* :ghpull:`14474`: Fix default value in docstring of errorbar func
-* :ghpull:`14473`: Backport PR #14472 on branch v3.1.x (Fix NameError in example code for setting label via method)
-* :ghpull:`14472`: Fix NameError in example code for setting label via method
-* :ghpull:`14449`: Improve docs on gridspec
-* :ghpull:`14450`: Backport PR #14422 on branch v3.1.x (Fix ReST note in span selector example)
-* :ghpull:`14446`: Backport PR #14438 on branch v3.1.x (Issue #14372 - Add degrees to documentation)
-* :ghpull:`14438`: Issue #14372 - Add degrees to documentation
-* :ghpull:`14437`: Backport PR #14387 on branch v3.1.x (Fix clearing rubberband on nbagg)
-* :ghpull:`14387`: Fix clearing rubberband on nbagg
-* :ghpull:`14435`: Backport PR #14425 on branch v3.1.x (Lic restore license paint)
-* :ghpull:`14296`: Fix barbs to accept array of bool for ``flip_barb``
-* :ghpull:`14430`: Backport PR #14397 on branch v3.1.x (Correctly set clip_path on pcolorfast return artist.)
-* :ghpull:`14397`: Correctly set clip_path on pcolorfast return artist.
-* :ghpull:`14409`: Backport PR #14335 on branch v3.1.x (Add explanation of animation.embed_limit to matplotlibrc.template)
-* :ghpull:`14335`: Add explanation of animation.embed_limit to matplotlibrc.template
-* :ghpull:`14403`: Revert "Preserve whitespace in svg output."
-* :ghpull:`14407`: Backport PR #14406 on branch v3.1.x (Remove extra \iint in math_symbol_table for document)
-* :ghpull:`14398`: Backport PR #14394 on branch v3.1.x (Update link to "MathML torture test".)
-* :ghpull:`14394`: Update link to "MathML torture test".
-* :ghpull:`14389`: Backport PR #14388 on branch v3.1.x (Fixed one little spelling error)
-* :ghpull:`14385`: Backport PR #14316 on branch v3.1.x (Improve error message for kiwisolver import error (DLL load failed))
-* :ghpull:`14388`: Fixed one little spelling error
-* :ghpull:`14384`: Backport PR #14369 on branch v3.1.x (Don't use deprecated mathcircled in docs.)
-* :ghpull:`14316`: Improve error message for kiwisolver import error (DLL load failed)
-* :ghpull:`14369`: Don't use deprecated mathcircled in docs.
-* :ghpull:`14375`: Backport PR #14374 on branch v3.1.x (Check that the figure patch is in bbox_artists before trying to remove.)
-* :ghpull:`14374`: Check that the figure patch is in bbox_artists before trying to remove.
-* :ghpull:`14040`: Gracefully handle non-finite z in tricontour (issue #10167)
-* :ghpull:`14342`: Backport PR #14326 on branch v3.1.x (Correctly apply PNG palette when building ImageBase through Pillow.)
-* :ghpull:`14326`: Correctly apply PNG palette when building ImageBase through Pillow.
-* :ghpull:`14341`: Backport PR #14337 on branch v3.1.x (Docstring cleanup)
-* :ghpull:`14337`: Docstring cleanup
-* :ghpull:`14325`: Backport PR #14126 on branch v3.1.x (Simplify grouped bar chart example)
-* :ghpull:`14324`: Backport PR #14139 on branch v3.1.x (TST: be more explicit about identifying qt4/qt5 imports)
-* :ghpull:`14126`: Simplify grouped bar chart example
-* :ghpull:`14323`: Backport PR #14290 on branch v3.1.x (Convert SymmetricalLogScale to numpydoc)
-* :ghpull:`14139`: TST: be more explicit about identifying qt4/qt5 imports
-* :ghpull:`14290`: Convert SymmetricalLogScale to numpydoc
-* :ghpull:`14321`: Backport PR #14313 on branch v3.1.x
-* :ghpull:`14313`: Support masked array inputs for to_rgba and to_rgba_array.
-* :ghpull:`14320`: Backport PR #14319 on branch v3.1.x (Don't set missing history buttons.)
-* :ghpull:`14319`: Don't set missing history buttons.
-* :ghpull:`14317`: Backport PR #14295: Fix bug in SymmetricalLogTransform.
-* :ghpull:`14302`: Backport PR #14255 on branch v3.1.x (Improve docsstring of Axes.streamplot)
-* :ghpull:`14255`: Improve docsstring of Axes.streamplot
-* :ghpull:`14295`: Fix bug in SymmetricalLogTransform.
-* :ghpull:`14294`: Backport PR #14282 on branch v3.1.x (Fix toolmanager's destroy subplots in tk)
-* :ghpull:`14282`: Fix toolmanager's destroy subplots in tk
-* :ghpull:`14292`: Backport PR #14289 on branch v3.1.x (BUG: Fix performance regression when plotting values from Numpy array sub-classes)
-* :ghpull:`14289`: BUG: Fix performance regression when plotting values from Numpy array sub-classes
-* :ghpull:`14287`: Backport PR #14286 on branch v3.1.x (fix minor typo)
-* :ghpull:`14284`: Backport PR #14279 on branch v3.1.x (In case fallback to Agg fails, let the exception propagate out.)
-* :ghpull:`14254`: Merge up 30x
-* :ghpull:`14279`: In case fallback to Agg fails, let the exception propagate out.
-* :ghpull:`14268`: Backport PR #14261 on branch v3.1.x (Updated polar documentation)
-* :ghpull:`14261`: Updated polar documentation
-* :ghpull:`14264`: Backport PR #14260 on branch v3.1.x (Remove old OSX FAQ page)
-* :ghpull:`14260`: Remove old OSX FAQ page
-* :ghpull:`14249`: Backport PR #14243 on branch v3.1.x (Update docstring of makeMappingArray)
-* :ghpull:`14250`: Backport PR #14149 on branch v3.1.x
-* :ghpull:`14252`: Backport PR #14248 on branch v3.1.x (Fix TextBox not respecting eventson)
-* :ghpull:`14253`: Backport PR #13596 on branch v3.1.x (Normalize properties passed to bxp().)
-* :ghpull:`14251`: Backport PR #14241 on branch v3.1.x (Fix linear segmented colormap with one element)
-* :ghpull:`13596`: Normalize properties passed to bxp().
-* :ghpull:`14248`: Fix TextBox not respecting eventson
-* :ghpull:`14241`: Fix linear segmented colormap with one element
-* :ghpull:`14243`: Update docstring of makeMappingArray
-* :ghpull:`14238`: Backport PR #14164 on branch v3.1.x (Fix regexp for dvipng version detection)
-* :ghpull:`14149`: Avoid using ``axis([xlo, xhi, ylo, yhi])`` in examples.
-* :ghpull:`14164`: Fix regexp for dvipng version detection
-* :ghpull:`13739`: Fix pressing tab breaks keymap in CanvasTk
+* :ghpull:`15664`: Backport PR #15649 on branch v3.1.x (Fix searchindex.js loading when ajax fails (because e.g. CORS in embedded iframes))
+* :ghpull:`15722`: Backport PR #15718 on branch v3.1.x (Update donation link)
+* :ghpull:`15667`: Backport PR #15654 on branch v3.1.x (Fix some broken links.)
+* :ghpull:`15658`: Backport PR #15647 on branch v3.1.x (Update some links)
+* :ghpull:`15582`: Backport PR #15512 on branch v3.1.x
+* :ghpull:`15512`: FIX: do not consider webagg and nbagg "interactive" for fallback
+* :ghpull:`15558`: Backport PR #15553 on branch v3.1.x (DOC: add cache-buster query string to css path)
+* :ghpull:`15550`: Backport PR #15528 on branch v3.1.x (Declutter home page)
+* :ghpull:`15547`: Backport PR #15516 on branch v3.1.x (Add logo like font)
+* :ghpull:`15511`: DOC: fix nav location
+* :ghpull:`15508`: Backport PR #15489 on branch v3.1.x (DOC: adding main nav to site)
+* :ghpull:`15494`: Backport PR #15486 on branch v3.1.x (Fixes an error in the documentation of Ellipse)
+* :ghpull:`15486`: Fixes an error in the documentation of Ellipse
+* :ghpull:`15473`: Backport PR #15464 on branch v3.1.x (Remove unused code (remainder from #15453))
+* :ghpull:`15470`: Backport PR #15460 on branch v3.1.x (Fix incorrect value check in axes_grid.)
+* :ghpull:`15464`: Remove unused code (remainder from #15453)
+* :ghpull:`15455`: Backport PR #15453 on branch v3.1.x (Improve example for tick locators)
+* :ghpull:`15453`: Improve example for tick locators
+* :ghpull:`15443`: Backport PR #15439 on branch v3.1.x (DOC: mention discourse main page)
+* :ghpull:`15424`: Backport PR #15422 on branch v3.1.x (FIX: typo in attribute lookup)
+* :ghpull:`15322`: Backport PR #15297 on branch v3.1.x (Document How-to figure empty)
+* :ghpull:`15298`: Backport PR #15296 on branch v3.1.x (Fix typo/bug from 18cecf7)
+* :ghpull:`15296`: Fix typo/bug from 18cecf7
+* :ghpull:`15278`: Backport PR #15271 on branch v3.1.x (Fix font weight validation)
+* :ghpull:`15271`: Fix font weight validation
+* :ghpull:`15218`: Backport PR #15217 on branch v3.1.x (Doc: Add ``plt.show()`` to horizontal bar chart example)
+* :ghpull:`15207`: Backport PR #15206: FIX: be more forgiving about expecting internal s…
+* :ghpull:`15198`: Backport PR #15197 on branch v3.1.x (Remove mention of now-removed basedir setup option.)
+* :ghpull:`15197`: Remove mention of now-removed basedir setup option.
+* :ghpull:`15189`: Backport PR #14979: FIX: Don't enable IPython integration if not ente…
+* :ghpull:`15190`: Backport PR #14683: For non-html output, let sphinx pick the best format
+* :ghpull:`15187`: Backport PR #15140 on branch v3.1.x
+* :ghpull:`15185`: Backport PR #15168 on branch v3.1.x (MNT: explicitly cast ``np.bool_`` -> bool to prevent deprecation warning)
+* :ghpull:`15168`: MNT: explicitly cast ``np.bool_`` -> bool to prevent deprecation warning
+* :ghpull:`15183`: Backport PR #15181 on branch v3.1.x (FIX: proper call to zero_formats)
+* :ghpull:`15181`: FIX: proper call to zero_formats
+* :ghpull:`15172`: Backport PR #15166 on branch v3.1.x
+* :ghpull:`15166`: FIX: indexed pandas bar
+* :ghpull:`15153`: Backport PR #14456 on branch v3.1.x (PyQT5 Backend Partial Redraw Fix)
+* :ghpull:`14456`: PyQT5 Backend Partial Redraw Fix
+* :ghpull:`15140`: Fix ScalarFormatter formatting of masked values
+* :ghpull:`15135`: Backport PR #15132 on branch v3.1.x (Update documenting guide on rcParams)
+* :ghpull:`15128`: Backport PR #15115 on branch v3.1.x (Doc: highlight rcparams)
+* :ghpull:`15125`: Backport PR #15110 on branch v3.1.x (Add inheritance diagram to mpl.ticker docs)
+* :ghpull:`15116`: Backport PR #15114 on branch v3.1.x (DOC: update language around NF)
+* :ghpull:`15058`: Backport PR #15055 on branch v3.1.x (Remove mention of now-removed feature in docstring.)
+* :ghpull:`15055`: Remove mention of now-removed feature in docstring.
+* :ghpull:`15047`: Backport PR #14919 on branch v3.1.x (FIX constrained_layout w/ hidden axes)
+* :ghpull:`14919`: FIX constrained_layout w/ hidden axes
+* :ghpull:`15022`: Backport PR #15020 on branch v3.1.x (Let connectionpatch be drawn on figure level)
+* :ghpull:`15020`: Let connectionpatch be drawn on figure level
+* :ghpull:`15017`: Backport PR #15007 on branch v3.1.x (FIX: support pandas 0.25)
+* :ghpull:`14979`: FIX: Don't enable IPython integration if not entering REPL.
+* :ghpull:`14987`: Merge pull request #14915 from AWhetter/fix_14585
+* :ghpull:`14985`: Backport PR #14982 on branch v3.1.x (DOC: correct table docstring)
+* :ghpull:`14982`: DOC: correct table docstring
+* :ghpull:`14975`: Backport PR #14974 on branch v3.1.x (grammar)
+* :ghpull:`14972`: Backport PR #14971 on branch v3.1.x (typo)
+* :ghpull:`14965`: Fix typo in documentation of table
+* :ghpull:`14951`: Backport PR #14934 on branch v3.1.x (DOC: update axes_demo to directly manipulate fig, ax)
+* :ghpull:`14938`: Backport PR #14905 on branch v3.1.x (Gracefully handle encoding problems when querying external executables.)
+* :ghpull:`14935`: Backport PR #14933 on branch v3.1.x (DOC: typo x2 costum -> custom)
+* :ghpull:`14936`: Backport PR #14932 on branch v3.1.x (DOC: Update invert_example to directly manipulate axis.)
+* :ghpull:`14905`: Gracefully handle encoding problems when querying external executables.
+* :ghpull:`14933`: DOC: typo x2 costum -> custom
+* :ghpull:`14910`: Backport PR #14901 on branch v3.1.x (Fix GH14900: numpy 1.17.0 breaks test_colors.)
+* :ghpull:`14864`: Backport PR #14830 on branch v3.1.x (FIX: restore special casing of shift-enter in notebook)
+* :ghpull:`14861`: Don't use pandas 0.25.0 for testing
+* :ghpull:`14855`: Backport PR #14839 on branch v3.1.x
+* :ghpull:`14839`: Improve docstring of Axes.hexbin
+* :ghpull:`14837`: Backport PR #14757 on branch v3.1.x (Remove incorrect color/cmap docstring line in contour.py)
+* :ghpull:`14836`: Backport PR #14764 on branch v3.1.x (DOC: Fixes the links in the see-also section of Axes.get_tightbbox)
+* :ghpull:`14818`: Backport PR #14510 on branch v3.1.x (Improve example for fill_between)
+* :ghpull:`14819`: Backport PR #14704 on branch v3.1.x (Small patches on Docs (Tutorials and FAQ))
+* :ghpull:`14820`: Backport PR #14765 on branch v3.1.x (DOC: Fix documentation location for patheffects)
+* :ghpull:`14821`: Backport PR #14741 on branch v3.1.x (DOC: Update description of properties of Line2D in 'plot' documentation.)
+* :ghpull:`14822`: Backport PR #14714 on branch v3.1.x (Point towards how to save output of non-interactive backends)
+* :ghpull:`14823`: Backport PR #14784 on branch v3.1.x (Tiny docs/comments cleanups.)
+* :ghpull:`14824`: Backport PR #14798 on branch v3.1.x (Cleanup dates.py module docstrings.)
+* :ghpull:`14825`: Backport PR #14802 on branch v3.1.x (Fix some broken refs in the docs.)
+* :ghpull:`14826`: Backport PR #14806 on branch v3.1.x (Remove unnecessary uses of transFigure from examples.)
+* :ghpull:`14827`: Backport PR #14525 on branch v3.1.x (improve documentation of OffsetBox)
+* :ghpull:`14828`: Backport PR #14548: Link to matplotlibrc of used version
+* :ghpull:`14817`: Backport PR #14697 on branch v3.1.x (Fix NavigationToolbar2QT height)
+* :ghpull:`14692`: Backport PR #14688 on branch v3.1.x (Revise the misleading title for subplots demo)
+* :ghpull:`14816`: Backport PR #14677 on branch v3.1.x (Don't misclip axis when calling set_ticks on inverted axes.)
+* :ghpull:`14815`: Backport PR #14658 on branch v3.1.x (Fix numpydoc formatting)
+* :ghpull:`14813`: Backport PR #14488 on branch v3.1.x (Make sure EventCollection doesn't modify input in-place)
+* :ghpull:`14806`: Remove unnecessary uses of transFigure from examples.
+* :ghpull:`14802`: Fix some broken refs in the docs.
+* :ghpull:`14798`: Cleanup dates.py module docstrings.
+* :ghpull:`14784`: Tiny docs/comments cleanups.
+* :ghpull:`14764`: DOC: Fixes the links in the see-also section of Axes.get_tightbbox
+* :ghpull:`14777`: Backport PR #14775 on branch v3.1.x (DOC: Fix CircleCI builds)
+* :ghpull:`14769`: Backport PR #14759 on branch v3.1.x (DOC: note about having to rebuild after switching to local freetype)
+* :ghpull:`14714`: Point towards how to save output of non-interactive backends
+* :ghpull:`14741`: DOC: Update description of properties of Line2D in 'plot' documentation.
+* :ghpull:`14771`: Backport PR #14760 on branch v3.1.x (DOC: minor CoC wording change)
+* :ghpull:`14765`: DOC: Fix documentation location for patheffects
+* :ghpull:`14735`: Backport PR #14734 on branch v3.1.x (Add geoplot to third-party example libraries page.)
+* :ghpull:`14711`: Backport PR #14706 on branch v3.1.x (Mention gr backend in docs.)
+* :ghpull:`14704`: Small patches on Docs (Tutorials and FAQ)
+* :ghpull:`14700`: Backport PR #14698 on branch v3.1.x (Make property name be consistent with rc parameter.)
+* :ghpull:`14510`: Improve example for fill_between
+* :ghpull:`14683`: For non-html output, let sphinx pick the best format.
+* :ghpull:`14697`: Fix NavigationToolbar2QT height
+* :ghpull:`14677`: Don't misclip axis when calling set_ticks on inverted axes.
+* :ghpull:`14658`: Fix numpydoc formatting
+* :ghpull:`14488`: Make sure EventCollection doesn't modify input in-place
+* :ghpull:`14570`: Remove print statements
+* :ghpull:`14525`: improve documentation of OffsetBox
+* :ghpull:`14548`: Link to matplotlibrc of used version
+* :ghpull:`14395`: MAINT: work around non-zero exit status of "pdftops -v" command.
-Issues (30):
+Issues (28):
-* :ghissue:`14620`: Plotting on a log/logit scale overwrites axis inverting
-* :ghissue:`14615`: Inverting an axis using its limits does not work for log scale
-* :ghissue:`14577`: Calling invert_yaxis() on a 3D plot has either no effect or removes ticks
-* :ghissue:`14602`: NavigationToolbar2Tk save_figure function bug
-* :ghissue:`1219`: Show fails on figures created with the object-oriented system
-* :ghissue:`10167`: Segmentation fault with tricontour
-* :ghissue:`13723`: RuntimeError when saving PDFs via parallel processes (not threads!)
-* :ghissue:`14315`: Improvement: Better error message if kiwisolver fails to import
-* :ghissue:`14356`: matplotlib.units.ConversionError on scatter of dates with a NaN in the first position
-* :ghissue:`14467`: Docs for plt.ginput() have the wrong default value for show_clicks keyword argument.
-* :ghissue:`14225`: Matplotlib crashes on windows while maximizing plot window when using Multicursor
-* :ghissue:`14458`: DOC: small inconsistency in errobar docstring
-* :ghissue:`14372`: Document that view_init() arguments should be in degrees
-* :ghissue:`12201`: issues clearing rubberband on nbagg at non-default browser zoom
-* :ghissue:`13576`: pcolorfast misbehaves when changing axis limits
-* :ghissue:`14303`: Unable to import matplotlib on Windows 10 v1903
-* :ghissue:`14283`: RendererSVG CSS 'white-space' property conflicts with default HTML CSS
-* :ghissue:`14293`: imshow() producing "inverted" colors since 3.0.3
-* :ghissue:`14322`: Cannot import matplotlib with Python 3.7.x on Win10Pro
-* :ghissue:`14137`: Qt5 test auto-skip is not working correctly
-* :ghissue:`14301`: scatter() fails on nan-containing input when providing edgecolor
-* :ghissue:`14318`: Don't try to set missing history buttons.
-* :ghissue:`14265`: symlog looses some points since 3.1.0 (example given)
-* :ghissue:`14274`: BUG: plotting with Numpy array subclasses is slow with Matplotlib 3.1.0 (regression)
-* :ghissue:`14263`: import pyplot issue -
-* :ghissue:`14227`: Update "working with Mpl on OSX" docs
-* :ghissue:`13448`: boxplot doesn't normalize properties before applying them
-* :ghissue:`14226`: Modify matplotlib TextBox value without triggering callback
-* :ghissue:`14232`: LinearSegmentedColormap with N=1 gives confusing error message
-* :ghissue:`10365`: Scatter plot with non-sequence ´c´ color should give a better Error message.
+* :ghissue:`15295`: Can't install matplotlib with pip for Python 3.8b4
+* :ghissue:`15714`: Publish 3.8 wheels
+* :ghissue:`15706`: Python 3.8 - Installation error: TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
+* :ghissue:`15690`: Should xlim support single-entry arrays?
+* :ghissue:`15608`: imshow rendering changed from 3.1.0 to 3.1.1
+* :ghissue:`14903`: 'MPLBACKEND=webagg' is overwritten by agg when $DISPLAY is not set on Linux
+* :ghissue:`15351`: Bar width expands between subsequent bars
+* :ghissue:`15240`: Can't specify integer ``font.weight`` in custom style sheet any more
+* :ghissue:`15255`: ``imshow`` in ``v3.1.1``: y-axis chopped-off
+* :ghissue:`15186`: 3D quiver plot fails when pivot = "middle"
+* :ghissue:`14160`: PySide2/PyQt5: Graphics issues in QScrollArea for OSX
+* :ghissue:`15178`: mdates.ConciseDateFormatter() doesn't work with zero_formats parameter
+* :ghissue:`15179`: Patch 3.1.1 broke imshow() heatmaps: Tiles cut off on y-axis
+* :ghissue:`15162`: axes.bar fails when x is int-indexed pandas.Series
+* :ghissue:`15103`: Colorbar for imshow messes interactive cursor with masked data
+* :ghissue:`8744`: ConnectionPatch hidden by plots
+* :ghissue:`14950`: plt.ioff() not supressing figure generation
+* :ghissue:`14959`: Typo in Docs
+* :ghissue:`14902`: from matplotlib import animation UnicodeDecodeError
+* :ghissue:`14897`: New yticks behavior in 3.1.1 vs 3.1.0
+* :ghissue:`14811`: How to save hexbin binned data in a text file.
+* :ghissue:`14551`: Non functional API links break docs builds downstream
+* :ghissue:`14720`: Line2D properties should state units
+* :ghissue:`10891`: Toolbar icons too large in PyQt5 (Qt5Agg backend)
+* :ghissue:`14675`: Heatmaps are being truncated when using with seaborn
+* :ghissue:`14487`: eventplot sorts np.array positions, but not list positions
+* :ghissue:`14547`: Changing mplstyle: axes.titlelocation causes Bad Key error
+* :ghissue:`10410`: eventplot alters data in some cases
diff --git a/doc/users/prev_whats_new/github_stats_3.1.3.rst b/doc/users/prev_whats_new/github_stats_3.1.3.rst
new file mode 100644
index 000000000000..b4706569df02
--- /dev/null
+++ b/doc/users/prev_whats_new/github_stats_3.1.3.rst
@@ -0,0 +1,87 @@
+.. _github-stats-3-1-3:
+
+GitHub statistics for 3.1.3 (Feb 03, 2020)
+==========================================
+
+GitHub statistics for 2019/11/05 (tag: v3.1.2) - 2020/02/03
+
+These lists are automatically generated, and may be incomplete or contain duplicates.
+
+We closed 7 issues and merged 45 pull requests.
+The full list can be seen `on GitHub `__
+
+The following 13 authors contributed 125 commits.
+
+* Antony Lee
+* David Stansby
+* Elliott Sales de Andrade
+* hannah
+* Jody Klymak
+* MeeseeksMachine
+* Nelle Varoquaux
+* Nikita Kniazev
+* Paul Ivanov
+* SamSchott
+* Steven G. Johnson
+* Thomas A Caswell
+* Tim Hoffmann
+
+GitHub issues and pull requests:
+
+Pull Requests (45):
+
+* :ghpull:`16382`: Backport PR #16379 on branch v3.1.x (FIX: catch on message content, not module)
+* :ghpull:`16362`: Backport PR #16347: FIX: catch warnings from pandas in cbook._check_1d
+* :ghpull:`16356`: Backport PR #16330 on branch v3.1.x (Clearer signal handling)
+* :ghpull:`16330`: Clearer signal handling
+* :ghpull:`16348`: Backport PR #16255 on branch v3.1.x (Move version info to sidebar)
+* :ghpull:`16345`: Backport PR #16298 on branch v3.1.x (Don't recursively call draw_idle when updating artists at draw time.)
+* :ghpull:`16298`: Don't recursively call draw_idle when updating artists at draw time.
+* :ghpull:`16322`: Backport PR #16250: Fix zerolen intersect
+* :ghpull:`16320`: Backport PR #16311 on branch v3.1.x (don't override non-Python signal handlers)
+* :ghpull:`16311`: don't override non-Python signal handlers
+* :ghpull:`16250`: Fix zerolen intersect
+* :ghpull:`16237`: Backport PR #16235 on branch v3.1.x (FIX: AttributeError in TimerBase.start)
+* :ghpull:`16235`: FIX: AttributeError in TimerBase.start
+* :ghpull:`16208`: Backport PR #15556 on branch v3.1.x (Fix test suite compat with ghostscript 9.50.)
+* :ghpull:`16213`: Backport PR #15763 on branch v3.1.x (Skip webagg test if tornado is not available.)
+* :ghpull:`16167`: Backport PR #16166 on branch v3.1.x (Add badge for citing 3.1.2)
+* :ghpull:`16166`: Add badge for citing 3.1.2
+* :ghpull:`16144`: Backport PR #16053 on branch v3.1.x (Fix v_interval setter)
+* :ghpull:`16053`: Fix v_interval setter
+* :ghpull:`16136`: Backport PR #16112 on branch v3.1.x (CI: Fail when failed to install dependencies)
+* :ghpull:`16131`: Backport PR #16126 on branch v3.1.x (TST: test_fork: Missing join)
+* :ghpull:`16126`: TST: test_fork: Missing join
+* :ghpull:`16091`: Backport PR #16086 on branch v3.1.x (FIX: use supported attribute to check pillow version)
+* :ghpull:`16040`: Backport PR #16031 on branch v3.1.x (Fix docstring of hillshade().)
+* :ghpull:`16032`: Backport PR #16028 on branch v3.1.x (Prevent FigureCanvasQT_draw_idle recursively calling itself.)
+* :ghpull:`16028`: Prevent FigureCanvasQT_draw_idle recursively calling itself.
+* :ghpull:`16020`: Backport PR #16007 on branch v3.1.x (Fix search on nested pages)
+* :ghpull:`16018`: Backport PR #15735 on branch v3.1.x (Cleanup some mplot3d docstrings.)
+* :ghpull:`16007`: Fix search on nested pages
+* :ghpull:`15957`: Backport PR #15953 on branch v3.1.x (Update donation link)
+* :ghpull:`15763`: Skip webagg test if tornado is not available.
+* :ghpull:`15881`: Backport PR #15859 on branch v3.1.x (Doc: Move search field into nav bar)
+* :ghpull:`15863`: Backport PR #15244 on branch v3.1.x: Change documentation format of rcParams defaults
+* :ghpull:`15859`: Doc: Move search field into nav bar
+* :ghpull:`15860`: Backport PR #15851 on branch v3.1.x (ffmpeg is available on default ubuntu packages now)
+* :ghpull:`15851`: ffmpeg is available on default ubuntu packages now.
+* :ghpull:`15843`: Backport PR #15737 on branch v3.1.x (Fix env override in WebAgg backend test.)
+* :ghpull:`15760`: Backport PR #15752 on branch v3.1.x (Update boxplot/violinplot faq.)
+* :ghpull:`15757`: Backport PR #15751 on branch v3.1.x (Modernize FAQ entry for plt.show().)
+* :ghpull:`15735`: Cleanup some mplot3d docstrings.
+* :ghpull:`15753`: Backport PR #15661 on branch v3.1.x (Document scope of 3D scatter depthshading.)
+* :ghpull:`15741`: Backport PR #15729 on branch v3.1.x (Catch correct parse errror type for dateutil >= 2.8.1)
+* :ghpull:`15729`: Catch correct parse errror type for dateutil >= 2.8.1
+* :ghpull:`15737`: Fix env override in WebAgg backend test.
+* :ghpull:`15244`: Change documentation format of rcParams defaults
+
+Issues (7):
+
+* :ghissue:`16294`: BUG: Interactive mode slow
+* :ghissue:`15842`: Path.intersects_path returns True when it shouldn't
+* :ghissue:`16163`: libpng error: Read Error when using matplotlib after setting usetex=True
+* :ghissue:`15960`: v3.1.2 - test suite "frozen" after it finishes
+* :ghissue:`16083`: Pillow 7.0.0 Support
+* :ghissue:`15481`: Recursion error
+* :ghissue:`15717`: Move search field into nav bar
diff --git a/doc/users/prev_whats_new/github_stats_3.2.0.rst b/doc/users/prev_whats_new/github_stats_3.2.0.rst
index f5cee3ad245c..5fd75f7c57d0 100644
--- a/doc/users/prev_whats_new/github_stats_3.2.0.rst
+++ b/doc/users/prev_whats_new/github_stats_3.2.0.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-2-0:
-GitHub Stats for Matplotlib 3.2.0
-=================================
+GitHub statistics for 3.2.0 (Mar 04, 2020)
+==========================================
-GitHub stats for 2019/05/18 - 2020/03/03 (tag: v3.1.0)
+GitHub statistics for 2019/05/18 (tag: v3.1.0) - 2020/03/04
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.2.1.rst b/doc/users/prev_whats_new/github_stats_3.2.1.rst
index ec95cf4a7887..4f865dbb5429 100644
--- a/doc/users/prev_whats_new/github_stats_3.2.1.rst
+++ b/doc/users/prev_whats_new/github_stats_3.2.1.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-2-1:
-GitHub Stats for Matplotlib 3.2.1
-=================================
+GitHub statistics for 3.2.1 (Mar 18, 2020)
+==========================================
-GitHub stats for 2020/03/03 - 2020/03/17 (tag: v3.2.0)
+GitHub statistics for 2020/03/03 (tag: v3.2.0) - 2020/03/18
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.2.2.rst b/doc/users/prev_whats_new/github_stats_3.2.2.rst
index 8cd4e4eef1d7..9026d518ce4d 100644
--- a/doc/users/prev_whats_new/github_stats_3.2.2.rst
+++ b/doc/users/prev_whats_new/github_stats_3.2.2.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-2-2:
-GitHub Stats for Matplotlib 3.2.2
-=================================
+GitHub statistics for 3.2.2 (Jun 17, 2020)
+==========================================
-GitHub stats for 2020/03/18 - 2020/06/17 (tag: v3.2.1)
+GitHub statistics for 2020/03/18 (tag: v3.2.1) - 2020/06/17
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.3.0.rst b/doc/users/prev_whats_new/github_stats_3.3.0.rst
index c57d4cda8cba..c2e6cd132c2d 100644
--- a/doc/users/prev_whats_new/github_stats_3.3.0.rst
+++ b/doc/users/prev_whats_new/github_stats_3.3.0.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-3-0:
-GitHub Stats for Matplotlib 3.3.0
-=================================
+GitHub statistics for 3.3.0 (Jul 16, 2020)
+==========================================
-GitHub stats for 2020/03/03 - 2020/07/16 (tag: v3.2.0)
+GitHub statistics for 2020/03/03 (tag: v3.2.0) - 2020/07/16
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.3.1.rst b/doc/users/prev_whats_new/github_stats_3.3.1.rst
index ed6638638959..49212587a17a 100644
--- a/doc/users/prev_whats_new/github_stats_3.3.1.rst
+++ b/doc/users/prev_whats_new/github_stats_3.3.1.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-3-1:
-GitHub Stats for Matplotlib 3.3.1
-=================================
+GitHub statistics for 3.3.1 (Aug 13, 2020)
+==========================================
-GitHub stats for 2020/07/16 - 2020/08/13 (tag: v3.3.0)
+GitHub statistics for 2020/07/16 (tag: v3.3.0) - 2020/08/13
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.3.2.rst b/doc/users/prev_whats_new/github_stats_3.3.2.rst
index 8f9bb9a6eceb..0bc03cbc83ee 100644
--- a/doc/users/prev_whats_new/github_stats_3.3.2.rst
+++ b/doc/users/prev_whats_new/github_stats_3.3.2.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-3-2:
-GitHub Stats for Matplotlib 3.3.2
-=================================
+GitHub statistics for 3.3.2 (Sep 15, 2020)
+==========================================
-GitHub stats for 2020/08/14 - 2020/09/15 (tag: v3.3.1)
+GitHub statistics for 2020/08/14 - 2020/09/15 (tag: v3.3.1)
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.3.3.rst b/doc/users/prev_whats_new/github_stats_3.3.3.rst
index d7ba592d7339..5475a5209eed 100644
--- a/doc/users/prev_whats_new/github_stats_3.3.3.rst
+++ b/doc/users/prev_whats_new/github_stats_3.3.3.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-3-3:
-GitHub Stats for Matplotlib 3.3.3
-=================================
+GitHub statistics for 3.3.3 (Nov 11, 2020)
+==========================================
-GitHub stats for 2020/09/15 - 2020/11/11 (tag: v3.3.2)
+GitHub statistics for 2020/09/15 (tag: v3.3.2) - 2020/11/11
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.3.4.rst b/doc/users/prev_whats_new/github_stats_3.3.4.rst
index e61309836034..afff8b384b8e 100644
--- a/doc/users/prev_whats_new/github_stats_3.3.4.rst
+++ b/doc/users/prev_whats_new/github_stats_3.3.4.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-3-4:
-GitHub Stats for Matplotlib 3.3.4
-=================================
+GitHub statistics for 3.3.4 (Jan 28, 2021)
+==========================================
-GitHub stats for 2020/11/12 - 2021/01/28 (tag: v3.3.3)
+GitHub statistics for 2020/11/12 (tag: v3.3.3) - 2021/01/28
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.4.0.rst b/doc/users/prev_whats_new/github_stats_3.4.0.rst
index eeb53d647957..fe49e673a660 100644
--- a/doc/users/prev_whats_new/github_stats_3.4.0.rst
+++ b/doc/users/prev_whats_new/github_stats_3.4.0.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-4-0:
-GitHub Stats for Matplotlib 3.4.0
-=================================
+GitHub statistics for 3.4.0 (Mar 26, 2021)
+==========================================
-GitHub stats for 2020/07/16 - 2021/03/25 (tag: v3.3.0)
+GitHub statistics for 2020/07/16 (tag: v3.3.0) - 2021/03/26
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.4.1.rst b/doc/users/prev_whats_new/github_stats_3.4.1.rst
index 220ed67a489a..0819a6850a3e 100644
--- a/doc/users/prev_whats_new/github_stats_3.4.1.rst
+++ b/doc/users/prev_whats_new/github_stats_3.4.1.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-4-1:
-GitHub Stats for Matplotlib 3.4.1
-=================================
+GitHub statistics for 3.4.1 (Mar 31, 2021)
+==========================================
-GitHub stats for 2021/03/26 - 2021/03/31 (tag: v3.4.0)
+GitHub statistics for 2021/03/26 (tag: v3.4.0) - 2021/03/31
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/github_stats_3.4.2.rst b/doc/users/prev_whats_new/github_stats_3.4.2.rst
index badd0a589785..22b4797c2fc2 100644
--- a/doc/users/prev_whats_new/github_stats_3.4.2.rst
+++ b/doc/users/prev_whats_new/github_stats_3.4.2.rst
@@ -1,9 +1,9 @@
.. _github-stats-3-4-2:
-GitHub Stats for Matplotlib 3.4.2
-=================================
+GitHub statistics for 3.4.2 (May 08, 2021)
+==========================================
-GitHub stats for 2021/03/31 - 2021/05/07 (tag: v3.4.1)
+GitHub statistics for 2021/03/31 (tag: v3.4.1) - 2021/05/08
These lists are automatically generated, and may be incomplete or contain duplicates.
diff --git a/doc/users/prev_whats_new/whats_new_0.98.4.rst b/doc/users/prev_whats_new/whats_new_0.98.4.rst
index 8e4635c175dd..88d376cf79bf 100644
--- a/doc/users/prev_whats_new/whats_new_0.98.4.rst
+++ b/doc/users/prev_whats_new/whats_new_0.98.4.rst
@@ -1,7 +1,7 @@
.. _whats-new-0-98-4:
-New in matplotlib 0.98.4
-========================
+What's new in Matplotlib 0.98.4
+===============================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_0.99.rst b/doc/users/prev_whats_new/whats_new_0.99.rst
index fc8b581f605a..c2d761a25031 100644
--- a/doc/users/prev_whats_new/whats_new_0.99.rst
+++ b/doc/users/prev_whats_new/whats_new_0.99.rst
@@ -1,7 +1,7 @@
.. _whats-new-0-99:
-New in matplotlib 0.99
-======================
+What's new in Matplotlib 0.99 (Aug 29, 2009)
+============================================
.. contents:: Table of Contents
:depth: 2
@@ -112,7 +112,7 @@ that denote the data limits -- in various arbitrary locations. No
longer are your axis lines constrained to be a simple rectangle around
the figure -- you can turn on or off left, bottom, right and top, as
well as "detach" the spine to offset it away from the data. See
-:doc:`/gallery/ticks_and_spines/spine_placement_demo` and
+:doc:`/gallery/spines/spine_placement_demo` and
:class:`matplotlib.spines.Spine`.
.. plot::
diff --git a/doc/users/prev_whats_new/whats_new_1.0.rst b/doc/users/prev_whats_new/whats_new_1.0.rst
index ac54539c6da9..f80b5ce27972 100644
--- a/doc/users/prev_whats_new/whats_new_1.0.rst
+++ b/doc/users/prev_whats_new/whats_new_1.0.rst
@@ -1,7 +1,7 @@
.. _whats-new-1-0:
-New in matplotlib 1.0
-=====================
+What's new in Matplotlib 1.0 (Jul 06, 2010)
+===========================================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_1.1.rst b/doc/users/prev_whats_new/whats_new_1.1.rst
index 0ff0d46b0843..9b19872a6031 100644
--- a/doc/users/prev_whats_new/whats_new_1.1.rst
+++ b/doc/users/prev_whats_new/whats_new_1.1.rst
@@ -1,7 +1,7 @@
.. _whats-new-1-1:
-New in matplotlib 1.1
-=====================
+What's new in Matplotlib 1.1 (Nov 02, 2011)
+===========================================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_1.2.2.rst b/doc/users/prev_whats_new/whats_new_1.2.2.rst
index 51c43403d22c..ab81018925cd 100644
--- a/doc/users/prev_whats_new/whats_new_1.2.2.rst
+++ b/doc/users/prev_whats_new/whats_new_1.2.2.rst
@@ -1,7 +1,7 @@
.. _whats-new-1-2-2:
-New in matplotlib 1.2.2
-=======================
+What's new in Matplotlib 1.2.2
+==============================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_1.2.rst b/doc/users/prev_whats_new/whats_new_1.2.rst
index c6483584c83c..4169e47bd766 100644
--- a/doc/users/prev_whats_new/whats_new_1.2.rst
+++ b/doc/users/prev_whats_new/whats_new_1.2.rst
@@ -1,8 +1,8 @@
.. _whats-new-1-2:
-New in matplotlib 1.2
-=====================
+What's new in Matplotlib 1.2 (Nov 9, 2012)
+==========================================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_1.3.rst b/doc/users/prev_whats_new/whats_new_1.3.rst
index 0107bc7efb65..d10fc738e118 100644
--- a/doc/users/prev_whats_new/whats_new_1.3.rst
+++ b/doc/users/prev_whats_new/whats_new_1.3.rst
@@ -1,7 +1,7 @@
.. _whats-new-1-3:
-New in matplotlib 1.3
-=====================
+What's new in Matplotlib 1.3 (Aug 01, 2013)
+===========================================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_1.4.rst b/doc/users/prev_whats_new/whats_new_1.4.rst
index 2d14709b8185..a58f3348ff68 100644
--- a/doc/users/prev_whats_new/whats_new_1.4.rst
+++ b/doc/users/prev_whats_new/whats_new_1.4.rst
@@ -1,8 +1,8 @@
.. _whats-new-1-4:
-New in matplotlib 1.4
-=====================
+What's new in Matplotlib 1.4 (Aug 25, 2014)
+===========================================
Thomas A. Caswell served as the release manager for the 1.4 release.
diff --git a/doc/users/prev_whats_new/whats_new_1.5.rst b/doc/users/prev_whats_new/whats_new_1.5.rst
index 125e87c512d0..3eb017851168 100644
--- a/doc/users/prev_whats_new/whats_new_1.5.rst
+++ b/doc/users/prev_whats_new/whats_new_1.5.rst
@@ -1,7 +1,7 @@
.. _whats-new-1-5:
-New in matplotlib 1.5
-=====================
+What's new in Matplotlib 1.5 (Oct 29, 2015)
+===========================================
.. contents:: Table of Contents
:depth: 2
diff --git a/doc/users/prev_whats_new/whats_new_2.0.0.rst b/doc/users/prev_whats_new/whats_new_2.0.0.rst
index 8d9e7e72c125..94da59cd1b88 100644
--- a/doc/users/prev_whats_new/whats_new_2.0.0.rst
+++ b/doc/users/prev_whats_new/whats_new_2.0.0.rst
@@ -1,11 +1,11 @@
.. _whats-new-2-0-0:
-New in matplotlib 2.0
-=====================
+What's new in Matplotlib 2.0 (Jan 17, 2017)
+===========================================
.. note::
- matplotlib 2.0 supports Python 2.7, and 3.4+
+ Matplotlib 2.0 supports Python 2.7, and 3.4+
diff --git a/doc/users/prev_whats_new/whats_new_2.1.0.rst b/doc/users/prev_whats_new/whats_new_2.1.0.rst
index 83d6091efe6d..a66e2e10f3a2 100644
--- a/doc/users/prev_whats_new/whats_new_2.1.0.rst
+++ b/doc/users/prev_whats_new/whats_new_2.1.0.rst
@@ -1,7 +1,7 @@
.. _whats-new-2-1-0:
-New in Matplotlib 2.1.0
-=======================
+What's new in Matplotlib 2.1.0 (Oct 7, 2017)
+============================================
Documentation
+++++++++++++
diff --git a/doc/users/prev_whats_new/whats_new_2.2.rst b/doc/users/prev_whats_new/whats_new_2.2.rst
index 05affccc7a6f..3dbe6482fd87 100644
--- a/doc/users/prev_whats_new/whats_new_2.2.rst
+++ b/doc/users/prev_whats_new/whats_new_2.2.rst
@@ -1,7 +1,7 @@
.. _whats-new-2-2-0:
-New in Matplotlib 2.2
-=====================
+What's new in Matplotlib 2.2 (Mar 06, 2018)
+===========================================
Constrained Layout Manager
--------------------------
diff --git a/doc/users/prev_whats_new/whats_new_3.0.rst b/doc/users/prev_whats_new/whats_new_3.0.rst
index 8aaf4a2d1770..99de2caf9309 100644
--- a/doc/users/prev_whats_new/whats_new_3.0.rst
+++ b/doc/users/prev_whats_new/whats_new_3.0.rst
@@ -1,7 +1,7 @@
.. _whats-new-3-0-0:
-New in Matplotlib 3.0
-=====================
+What's new in Matplotlib 3.0 (Sep 18, 2018)
+===========================================
Improved default backend selection
----------------------------------
diff --git a/doc/users/prev_whats_new/whats_new_3.1.0.rst b/doc/users/prev_whats_new/whats_new_3.1.0.rst
index 9152a0dadd98..8821f8e59257 100644
--- a/doc/users/prev_whats_new/whats_new_3.1.0.rst
+++ b/doc/users/prev_whats_new/whats_new_3.1.0.rst
@@ -1,6 +1,7 @@
+.. _whats-new-3-1-0:
-What's new in Matplotlib 3.1
-============================
+What's new in Matplotlib 3.1 (May 18, 2019)
+===========================================
For a list of all of the issues and pull requests since the last
revision, see the :ref:`github-stats`.
diff --git a/doc/users/prev_whats_new/whats_new_3.2.0.rst b/doc/users/prev_whats_new/whats_new_3.2.0.rst
index efa099d01a23..12d7fab3af90 100644
--- a/doc/users/prev_whats_new/whats_new_3.2.0.rst
+++ b/doc/users/prev_whats_new/whats_new_3.2.0.rst
@@ -1,6 +1,7 @@
+.. _whats-new-3-2-0:
-What's new in Matplotlib 3.2
-============================
+What's new in Matplotlib 3.2 (Mar 04, 2020)
+===========================================
For a list of all of the issues and pull requests since the last
revision, see the :ref:`github-stats`.
diff --git a/doc/users/prev_whats_new/whats_new_3.3.0.rst b/doc/users/prev_whats_new/whats_new_3.3.0.rst
index 18c22e2cb3cb..f9c9fdcd3713 100644
--- a/doc/users/prev_whats_new/whats_new_3.3.0.rst
+++ b/doc/users/prev_whats_new/whats_new_3.3.0.rst
@@ -1,6 +1,8 @@
-==============================
-What's new in Matplotlib 3.3.0
-==============================
+.. _whats-new-3-3-0:
+
+=============================================
+What's new in Matplotlib 3.3.0 (Jul 16, 2020)
+=============================================
For a list of all of the issues and pull requests since the last
revision, see the :ref:`github-stats`.
diff --git a/doc/users/prev_whats_new/whats_new_3.4.0.rst b/doc/users/prev_whats_new/whats_new_3.4.0.rst
index cb8220bb5f0b..3c11359868dc 100644
--- a/doc/users/prev_whats_new/whats_new_3.4.0.rst
+++ b/doc/users/prev_whats_new/whats_new_3.4.0.rst
@@ -1,6 +1,8 @@
-==============================
-What's new in Matplotlib 3.4.0
-==============================
+.. _whats-new-3-4-0:
+
+=============================================
+What's new in Matplotlib 3.4.0 (Mar 26, 2021)
+=============================================
For a list of all of the issues and pull requests since the last revision, see
the :ref:`github-stats`.
diff --git a/doc/users/release_notes.rst b/doc/users/release_notes.rst
index 440beab397b7..d8458e5ba1c2 100644
--- a/doc/users/release_notes.rst
+++ b/doc/users/release_notes.rst
@@ -9,8 +9,8 @@ Release notes
.. include from another document so that it's easy to exclude this for releases
.. include:: release_notes_next.rst
-3.4
-===
+Version 3.4
+===========
.. toctree::
:maxdepth: 1
@@ -20,8 +20,8 @@ Release notes
prev_whats_new/github_stats_3.4.1.rst
prev_whats_new/github_stats_3.4.0.rst
-3.3
-===
+Version 3.3
+===========
.. toctree::
:maxdepth: 1
@@ -34,8 +34,8 @@ Release notes
prev_whats_new/github_stats_3.3.1.rst
prev_whats_new/github_stats_3.3.0.rst
-3.2
-===
+Version 3.2
+===========
.. toctree::
:maxdepth: 1
@@ -45,38 +45,42 @@ Release notes
prev_whats_new/github_stats_3.2.1.rst
prev_whats_new/github_stats_3.2.0.rst
-3.1
-===
+Version 3.1
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_3.1.0.rst
../api/prev_api_changes/api_changes_3.1.1.rst
../api/prev_api_changes/api_changes_3.1.0.rst
+ prev_whats_new/github_stats_3.1.3.rst
prev_whats_new/github_stats_3.1.2.rst
prev_whats_new/github_stats_3.1.1.rst
prev_whats_new/github_stats_3.1.0.rst
-3.0
-===
+Version 3.0
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_3.0.rst
../api/prev_api_changes/api_changes_3.0.1.rst
../api/prev_api_changes/api_changes_3.0.0.rst
+ prev_whats_new/github_stats_3.0.3.rst
prev_whats_new/github_stats_3.0.2.rst
+ prev_whats_new/github_stats_3.0.1.rst
+ prev_whats_new/github_stats_3.0.0.rst
-2.2
-===
+Version 2.2
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_2.2.rst
../api/prev_api_changes/api_changes_2.2.0.rst
-2.1
-===
+Version 2.1
+===========
.. toctree::
:maxdepth: 1
@@ -85,8 +89,8 @@ Release notes
../api/prev_api_changes/api_changes_2.1.1.rst
../api/prev_api_changes/api_changes_2.1.0.rst
-2.0
-===
+Version 2.0
+===========
.. toctree::
:maxdepth: 1
@@ -94,34 +98,34 @@ Release notes
../api/prev_api_changes/api_changes_2.0.1.rst
../api/prev_api_changes/api_changes_2.0.0.rst
-1.5
-===
+Version 1.5
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_1.5.rst
../api/prev_api_changes/api_changes_1.5.3.rst
../api/prev_api_changes/api_changes_1.5.2.rst
+ ../api/prev_api_changes/api_changes_1.5.0.rst
-1.4
-===
+Version 1.4
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_1.4.rst
../api/prev_api_changes/api_changes_1.4.x.rst
- ../api/prev_api_changes/api_changes_1.5.0.rst
-1.3
-===
+Version 1.3
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_1.3.rst
../api/prev_api_changes/api_changes_1.3.x.rst
-1.2
-===
+Version 1.2
+===========
.. toctree::
:maxdepth: 1
@@ -129,23 +133,23 @@ Release notes
prev_whats_new/whats_new_1.2.rst
../api/prev_api_changes/api_changes_1.2.x.rst
-1.1
-===
+Version 1.1
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_1.1.rst
../api/prev_api_changes/api_changes_1.1.x.rst
-1.0
-===
+Version 1.0
+===========
.. toctree::
:maxdepth: 1
prev_whats_new/whats_new_1.0.rst
-0.x
-===
+Version 0.x
+===========
.. toctree::
:maxdepth: 1
diff --git a/doc/users/release_notes_next.rst b/doc/users/release_notes_next.rst
index f4122aaf96c7..b5f36efeb1ad 100644
--- a/doc/users/release_notes_next.rst
+++ b/doc/users/release_notes_next.rst
@@ -1,5 +1,5 @@
-Next
-====
+Next Version
+============
.. toctree::
:maxdepth: 1
diff --git a/examples/axes_grid1/inset_locator_demo.py b/examples/axes_grid1/inset_locator_demo.py
index 16e3cab5f964..974783c04309 100644
--- a/examples/axes_grid1/inset_locator_demo.py
+++ b/examples/axes_grid1/inset_locator_demo.py
@@ -69,7 +69,7 @@
bbox_transform=ax.transAxes, loc=3)
# For visualization purposes we mark the bounding box by a rectangle
-ax.add_patch(plt.Rectangle((.2, .4), .6, .5, ls="--", ec="c", fc="None",
+ax.add_patch(plt.Rectangle((.2, .4), .6, .5, ls="--", ec="c", fc="none",
transform=ax.transAxes))
# We set the axis limits to something other than the default, in order to not
@@ -89,9 +89,9 @@
bbox_transform=ax3.transAxes)
# For visualization purposes we mark the bounding box by a rectangle
-ax2.add_patch(plt.Rectangle((0, 0), 1, 1, ls="--", lw=2, ec="c", fc="None"))
+ax2.add_patch(plt.Rectangle((0, 0), 1, 1, ls="--", lw=2, ec="c", fc="none"))
ax3.add_patch(plt.Rectangle((.7, .5), .3, .5, ls="--", lw=2,
- ec="c", fc="None"))
+ ec="c", fc="none"))
# Turn ticklabels off
for axi in [axins2, axins3, ax2, ax3]:
diff --git a/examples/axisartist/demo_axisline_style.py b/examples/axisartist/demo_axisline_style.py
index 1427a90952a1..c7270941dadf 100644
--- a/examples/axisartist/demo_axisline_style.py
+++ b/examples/axisartist/demo_axisline_style.py
@@ -7,8 +7,8 @@
Note: The `mpl_toolkits.axisartist` axes classes may be confusing for new
users. If the only aim is to obtain arrow heads at the ends of the axes,
-rather check out the
-:doc:`/gallery/ticks_and_spines/centered_spines_with_arrows` example.
+rather check out the :doc:`/gallery/spines/centered_spines_with_arrows`
+example.
"""
from mpl_toolkits.axisartist.axislines import AxesZero
diff --git a/examples/axisartist/demo_parasite_axes.py b/examples/axisartist/demo_parasite_axes.py
index ef7d5ca5268d..0b7858f645f3 100644
--- a/examples/axisartist/demo_parasite_axes.py
+++ b/examples/axisartist/demo_parasite_axes.py
@@ -10,7 +10,7 @@
`mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes`.
An alternative approach using standard Matplotlib subplots is shown in the
-:doc:`/gallery/ticks_and_spines/multiple_yaxis_with_spines` example.
+:doc:`/gallery/spines/multiple_yaxis_with_spines` example.
An alternative approach using :mod:`mpl_toolkits.axes_grid1`
and :mod:`mpl_toolkits.axisartist` is found in the
diff --git a/examples/axisartist/demo_parasite_axes2.py b/examples/axisartist/demo_parasite_axes2.py
index 3c23e37b7ae7..651cdd032ae5 100644
--- a/examples/axisartist/demo_parasite_axes2.py
+++ b/examples/axisartist/demo_parasite_axes2.py
@@ -19,7 +19,7 @@
`~.mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes` is the
:doc:`/gallery/axisartist/demo_parasite_axes` example.
An alternative approach using the usual Matplotlib subplots is shown in
-the :doc:`/gallery/ticks_and_spines/multiple_yaxis_with_spines` example.
+the :doc:`/gallery/spines/multiple_yaxis_with_spines` example.
"""
from mpl_toolkits.axes_grid1 import host_subplot
diff --git a/examples/axisartist/simple_axisartist1.py b/examples/axisartist/simple_axisartist1.py
index dacbfd0721f8..95d710cbe0b1 100644
--- a/examples/axisartist/simple_axisartist1.py
+++ b/examples/axisartist/simple_axisartist1.py
@@ -6,9 +6,9 @@
This example showcases the use of :mod:`.axisartist` to draw spines at custom
positions (here, at ``y = 0``).
-Note, however, that it is simpler to achieve this effect
-using standard `.Spine` methods, as demonstrated in
-:doc:`/gallery/ticks_and_spines/centered_spines_with_arrows`.
+Note, however, that it is simpler to achieve this effect using standard
+`.Spine` methods, as demonstrated in
+:doc:`/gallery/spines/centered_spines_with_arrows`.
.. redirect-from:: /gallery/axisartist/simple_axisline2
"""
diff --git a/examples/lines_bars_and_markers/marker_reference.py b/examples/lines_bars_and_markers/marker_reference.py
index 450906637c01..98af2519124c 100644
--- a/examples/lines_bars_and_markers/marker_reference.py
+++ b/examples/lines_bars_and_markers/marker_reference.py
@@ -117,7 +117,7 @@ def split_list(a_list):
fig.suptitle('Mathtext markers', fontsize=14)
fig.subplots_adjust(left=0.4)
-marker_style.update(markeredgecolor="None", markersize=15)
+marker_style.update(markeredgecolor="none", markersize=15)
markers = ["$1$", r"$\frac{1}{2}$", "$f$", "$\u266B$", r"$\mathcal{A}$"]
for y, marker in enumerate(markers):
diff --git a/examples/shapes_and_collections/compound_path.py b/examples/shapes_and_collections/compound_path.py
index 76a11703ab9b..d721eaf1c392 100644
--- a/examples/shapes_and_collections/compound_path.py
+++ b/examples/shapes_and_collections/compound_path.py
@@ -23,7 +23,7 @@
path = Path(vertices, codes)
-pathpatch = PathPatch(path, facecolor='None', edgecolor='green')
+pathpatch = PathPatch(path, facecolor='none', edgecolor='green')
fig, ax = plt.subplots()
ax.add_patch(pathpatch)
diff --git a/examples/spines/README.txt b/examples/spines/README.txt
new file mode 100644
index 000000000000..40bc3952eacd
--- /dev/null
+++ b/examples/spines/README.txt
@@ -0,0 +1,4 @@
+.. _spines_examples:
+
+Spines
+======
diff --git a/examples/ticks_and_spines/centered_spines_with_arrows.py b/examples/spines/centered_spines_with_arrows.py
similarity index 100%
rename from examples/ticks_and_spines/centered_spines_with_arrows.py
rename to examples/spines/centered_spines_with_arrows.py
diff --git a/examples/ticks_and_spines/multiple_yaxis_with_spines.py b/examples/spines/multiple_yaxis_with_spines.py
similarity index 100%
rename from examples/ticks_and_spines/multiple_yaxis_with_spines.py
rename to examples/spines/multiple_yaxis_with_spines.py
diff --git a/examples/ticks_and_spines/spine_placement_demo.py b/examples/spines/spine_placement_demo.py
similarity index 97%
rename from examples/ticks_and_spines/spine_placement_demo.py
rename to examples/spines/spine_placement_demo.py
index e567d8160d9c..d433236657f9 100644
--- a/examples/ticks_and_spines/spine_placement_demo.py
+++ b/examples/spines/spine_placement_demo.py
@@ -6,7 +6,7 @@
Adjusting the location and appearance of axis spines.
Note: If you want to obtain arrow heads at the ends of the axes, also check
-out the :doc:`/gallery/ticks_and_spines/centered_spines_with_arrows` example.
+out the :doc:`/gallery/spines/centered_spines_with_arrows` example.
"""
import numpy as np
import matplotlib.pyplot as plt
diff --git a/examples/ticks_and_spines/spines.py b/examples/spines/spines.py
similarity index 100%
rename from examples/ticks_and_spines/spines.py
rename to examples/spines/spines.py
diff --git a/examples/ticks_and_spines/spines_bounds.py b/examples/spines/spines_bounds.py
similarity index 100%
rename from examples/ticks_and_spines/spines_bounds.py
rename to examples/spines/spines_bounds.py
diff --git a/examples/ticks_and_spines/spines_dropped.py b/examples/spines/spines_dropped.py
similarity index 100%
rename from examples/ticks_and_spines/spines_dropped.py
rename to examples/spines/spines_dropped.py
diff --git a/examples/statistics/errorbars_and_boxes.py b/examples/statistics/errorbars_and_boxes.py
index ac0d7cb6cd66..a8bdd7a46384 100644
--- a/examples/statistics/errorbars_and_boxes.py
+++ b/examples/statistics/errorbars_and_boxes.py
@@ -40,7 +40,7 @@
def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
- edgecolor='None', alpha=0.5):
+ edgecolor='none', alpha=0.5):
# Loop over data points; create box from errors at each point
errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
@@ -55,7 +55,7 @@ def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
# Plot errorbars
artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
- fmt='None', ecolor='k')
+ fmt='none', ecolor='k')
return artists
diff --git a/examples/text_labels_and_annotations/date.py b/examples/text_labels_and_annotations/date.py
index c37a5fb61e31..f1701ad9bc3b 100644
--- a/examples/text_labels_and_annotations/date.py
+++ b/examples/text_labels_and_annotations/date.py
@@ -16,11 +16,10 @@
An alternative formatter is the `~.dates.ConciseDateFormatter`,
used in the second ``Axes`` below (see
-:doc:`/gallery/ticks_and_spines/date_concise_formatter`), which often
-removes the need to rotate the tick labels. The last ``Axes``
-formats the dates manually, using `~.dates.DateFormatter` to
-format the dates using the format strings documented at
-`datetime.date.strftime`.
+:doc:`/gallery/ticks/date_concise_formatter`), which often removes the need to
+rotate the tick labels. The last ``Axes`` formats the dates manually, using
+`~.dates.DateFormatter` to format the dates using the format strings documented
+at `datetime.date.strftime`.
"""
import matplotlib.pyplot as plt
diff --git a/examples/ticks/README.txt b/examples/ticks/README.txt
new file mode 100644
index 000000000000..82441a0d9ee7
--- /dev/null
+++ b/examples/ticks/README.txt
@@ -0,0 +1,4 @@
+.. _ticks_examples:
+
+Ticks
+=====
diff --git a/examples/ticks_and_spines/auto_ticks.py b/examples/ticks/auto_ticks.py
similarity index 100%
rename from examples/ticks_and_spines/auto_ticks.py
rename to examples/ticks/auto_ticks.py
diff --git a/examples/ticks_and_spines/centered_ticklabels.py b/examples/ticks/centered_ticklabels.py
similarity index 100%
rename from examples/ticks_and_spines/centered_ticklabels.py
rename to examples/ticks/centered_ticklabels.py
diff --git a/examples/ticks_and_spines/colorbar_tick_labelling_demo.py b/examples/ticks/colorbar_tick_labelling_demo.py
similarity index 100%
rename from examples/ticks_and_spines/colorbar_tick_labelling_demo.py
rename to examples/ticks/colorbar_tick_labelling_demo.py
diff --git a/examples/ticks_and_spines/custom_ticker1.py b/examples/ticks/custom_ticker1.py
similarity index 56%
rename from examples/ticks_and_spines/custom_ticker1.py
rename to examples/ticks/custom_ticker1.py
index ee088fa4d5af..f3e0ec4ef3bf 100644
--- a/examples/ticks_and_spines/custom_ticker1.py
+++ b/examples/ticks/custom_ticker1.py
@@ -1,28 +1,27 @@
"""
-==============
-Custom Ticker1
-==============
+=============
+Custom Ticker
+=============
-The new ticker code was designed to explicitly support user customized
-ticking. The documentation of :mod:`matplotlib.ticker` details this
-process. That code defines a lot of preset tickers but was primarily
-designed to be user extensible.
+The :mod:`matplotlib.ticker` module defines many preset tickers, but was
+primarily designed for extensibility, i.e., to support user customized ticking.
-In this example a user defined function is used to format the ticks in
+In this example, a user defined function is used to format the ticks in
millions of dollars on the y axis.
"""
-import matplotlib.pyplot as plt
-money = [1.5e5, 2.5e6, 5.5e6, 2.0e7]
+import matplotlib.pyplot as plt
def millions(x, pos):
"""The two arguments are the value and tick position."""
return '${:1.1f}M'.format(x*1e-6)
+
fig, ax = plt.subplots()
-# Use automatic FuncFormatter creation
+# set_major_formatter internally creates a FuncFormatter from the callable.
ax.yaxis.set_major_formatter(millions)
+money = [1.5e5, 2.5e6, 5.5e6, 2.0e7]
ax.bar(['Bill', 'Fred', 'Mary', 'Sue'], money)
plt.show()
@@ -33,6 +32,4 @@ def millions(x, pos):
# The use of the following functions, methods, classes and modules is shown
# in this example:
#
-# - `matplotlib.pyplot.subplots`
# - `matplotlib.axis.Axis.set_major_formatter`
-# - `matplotlib.ticker.FuncFormatter`
diff --git a/examples/ticks_and_spines/date_concise_formatter.py b/examples/ticks/date_concise_formatter.py
similarity index 100%
rename from examples/ticks_and_spines/date_concise_formatter.py
rename to examples/ticks/date_concise_formatter.py
diff --git a/examples/ticks_and_spines/date_demo_convert.py b/examples/ticks/date_demo_convert.py
similarity index 100%
rename from examples/ticks_and_spines/date_demo_convert.py
rename to examples/ticks/date_demo_convert.py
diff --git a/examples/ticks_and_spines/date_demo_rrule.py b/examples/ticks/date_demo_rrule.py
similarity index 100%
rename from examples/ticks_and_spines/date_demo_rrule.py
rename to examples/ticks/date_demo_rrule.py
diff --git a/examples/ticks_and_spines/date_index_formatter2.py b/examples/ticks/date_index_formatter2.py
similarity index 100%
rename from examples/ticks_and_spines/date_index_formatter2.py
rename to examples/ticks/date_index_formatter2.py
diff --git a/examples/ticks_and_spines/date_precision_and_epochs.py b/examples/ticks/date_precision_and_epochs.py
similarity index 100%
rename from examples/ticks_and_spines/date_precision_and_epochs.py
rename to examples/ticks/date_precision_and_epochs.py
diff --git a/examples/ticks_and_spines/major_minor_demo.py b/examples/ticks/major_minor_demo.py
similarity index 100%
rename from examples/ticks_and_spines/major_minor_demo.py
rename to examples/ticks/major_minor_demo.py
diff --git a/examples/ticks_and_spines/scalarformatter.py b/examples/ticks/scalarformatter.py
similarity index 100%
rename from examples/ticks_and_spines/scalarformatter.py
rename to examples/ticks/scalarformatter.py
diff --git a/examples/ticks_and_spines/tick-formatters.py b/examples/ticks/tick-formatters.py
similarity index 100%
rename from examples/ticks_and_spines/tick-formatters.py
rename to examples/ticks/tick-formatters.py
diff --git a/examples/ticks_and_spines/tick-locators.py b/examples/ticks/tick-locators.py
similarity index 100%
rename from examples/ticks_and_spines/tick-locators.py
rename to examples/ticks/tick-locators.py
diff --git a/examples/ticks_and_spines/tick_label_right.py b/examples/ticks/tick_label_right.py
similarity index 100%
rename from examples/ticks_and_spines/tick_label_right.py
rename to examples/ticks/tick_label_right.py
diff --git a/examples/ticks_and_spines/tick_labels_from_values.py b/examples/ticks/tick_labels_from_values.py
similarity index 100%
rename from examples/ticks_and_spines/tick_labels_from_values.py
rename to examples/ticks/tick_labels_from_values.py
diff --git a/examples/ticks_and_spines/tick_xlabel_top.py b/examples/ticks/tick_xlabel_top.py
similarity index 100%
rename from examples/ticks_and_spines/tick_xlabel_top.py
rename to examples/ticks/tick_xlabel_top.py
diff --git a/examples/ticks_and_spines/ticklabels_rotation.py b/examples/ticks/ticklabels_rotation.py
similarity index 100%
rename from examples/ticks_and_spines/ticklabels_rotation.py
rename to examples/ticks/ticklabels_rotation.py
diff --git a/examples/ticks_and_spines/README.txt b/examples/ticks_and_spines/README.txt
deleted file mode 100644
index e7869c5a08d1..000000000000
--- a/examples/ticks_and_spines/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-.. _ticks_and_spines_examples:
-
-Ticks and spines
-================
diff --git a/examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py b/examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py
index 2f0833f09511..95d8df21a3a2 100644
--- a/examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py
+++ b/examples/user_interfaces/embedding_in_gtk3_panzoom_sgskip.py
@@ -20,7 +20,7 @@
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_default_size(400, 300)
-win.set_title("Embedding in GTK")
+win.set_title("Embedding in GTK3")
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot(1, 1, 1)
diff --git a/examples/user_interfaces/embedding_in_gtk3_sgskip.py b/examples/user_interfaces/embedding_in_gtk3_sgskip.py
index f5872304964d..b672ba8d9ff0 100644
--- a/examples/user_interfaces/embedding_in_gtk3_sgskip.py
+++ b/examples/user_interfaces/embedding_in_gtk3_sgskip.py
@@ -19,7 +19,7 @@
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_default_size(400, 300)
-win.set_title("Embedding in GTK")
+win.set_title("Embedding in GTK3")
fig = Figure(figsize=(5, 4), dpi=100)
ax = fig.add_subplot()
diff --git a/examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py b/examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py
new file mode 100644
index 000000000000..685a278fc7ad
--- /dev/null
+++ b/examples/user_interfaces/embedding_in_gtk4_panzoom_sgskip.py
@@ -0,0 +1,51 @@
+"""
+===========================================
+Embedding in GTK4 with a navigation toolbar
+===========================================
+
+Demonstrate NavigationToolbar with GTK4 accessed via pygobject.
+"""
+
+import gi
+gi.require_version('Gtk', '4.0')
+from gi.repository import Gtk
+
+from matplotlib.backends.backend_gtk4 import (
+ NavigationToolbar2GTK4 as NavigationToolbar)
+from matplotlib.backends.backend_gtk4agg import (
+ FigureCanvasGTK4Agg as FigureCanvas)
+from matplotlib.figure import Figure
+import numpy as np
+
+
+def on_activate(app):
+ win = Gtk.ApplicationWindow(application=app)
+ win.set_default_size(400, 300)
+ win.set_title("Embedding in GTK4")
+
+ fig = Figure(figsize=(5, 4), dpi=100)
+ ax = fig.add_subplot(1, 1, 1)
+ t = np.arange(0.0, 3.0, 0.01)
+ s = np.sin(2*np.pi*t)
+ ax.plot(t, s)
+
+ vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
+ win.set_child(vbox)
+
+ # Add canvas to vbox
+ canvas = FigureCanvas(fig) # a Gtk.DrawingArea
+ canvas.set_hexpand(True)
+ canvas.set_vexpand(True)
+ vbox.append(canvas)
+
+ # Create toolbar
+ toolbar = NavigationToolbar(canvas, win)
+ vbox.append(toolbar)
+
+ win.show()
+
+
+app = Gtk.Application(
+ application_id='org.matplotlib.examples.EmbeddingInGTK4PanZoom')
+app.connect('activate', on_activate)
+app.run(None)
diff --git a/examples/user_interfaces/embedding_in_gtk4_sgskip.py b/examples/user_interfaces/embedding_in_gtk4_sgskip.py
new file mode 100644
index 000000000000..c92e139de25f
--- /dev/null
+++ b/examples/user_interfaces/embedding_in_gtk4_sgskip.py
@@ -0,0 +1,45 @@
+"""
+=================
+Embedding in GTK4
+=================
+
+Demonstrate adding a FigureCanvasGTK4Agg widget to a Gtk.ScrolledWindow using
+GTK4 accessed via pygobject.
+"""
+
+import gi
+gi.require_version('Gtk', '4.0')
+from gi.repository import Gtk
+
+from matplotlib.backends.backend_gtk4agg import (
+ FigureCanvasGTK4Agg as FigureCanvas)
+from matplotlib.figure import Figure
+import numpy as np
+
+
+def on_activate(app):
+ win = Gtk.ApplicationWindow(application=app)
+ win.set_default_size(400, 300)
+ win.set_title("Embedding in GTK4")
+
+ fig = Figure(figsize=(5, 4), dpi=100)
+ ax = fig.add_subplot()
+ t = np.arange(0.0, 3.0, 0.01)
+ s = np.sin(2*np.pi*t)
+ ax.plot(t, s)
+
+ # A scrolled margin goes outside the scrollbars and viewport.
+ sw = Gtk.ScrolledWindow(margin_top=10, margin_bottom=10,
+ margin_start=10, margin_end=10)
+ win.set_child(sw)
+
+ canvas = FigureCanvas(fig) # a Gtk.DrawingArea
+ canvas.set_size_request(800, 600)
+ sw.set_child(canvas)
+
+ win.show()
+
+
+app = Gtk.Application(application_id='org.matplotlib.examples.EmbeddingInGTK4')
+app.connect('activate', on_activate)
+app.run(None)
diff --git a/examples/user_interfaces/gtk_spreadsheet_sgskip.py b/examples/user_interfaces/gtk3_spreadsheet_sgskip.py
similarity index 97%
rename from examples/user_interfaces/gtk_spreadsheet_sgskip.py
rename to examples/user_interfaces/gtk3_spreadsheet_sgskip.py
index 1f0f6e702240..925ea33faa48 100644
--- a/examples/user_interfaces/gtk_spreadsheet_sgskip.py
+++ b/examples/user_interfaces/gtk3_spreadsheet_sgskip.py
@@ -1,7 +1,7 @@
"""
-===============
-GTK Spreadsheet
-===============
+================
+GTK3 Spreadsheet
+================
Example of embedding Matplotlib in an application and interacting with a
treeview to store data. Double click on an entry to update plot data.
diff --git a/examples/user_interfaces/gtk4_spreadsheet_sgskip.py b/examples/user_interfaces/gtk4_spreadsheet_sgskip.py
new file mode 100644
index 000000000000..047ae4cf974e
--- /dev/null
+++ b/examples/user_interfaces/gtk4_spreadsheet_sgskip.py
@@ -0,0 +1,91 @@
+"""
+================
+GTK4 Spreadsheet
+================
+
+Example of embedding Matplotlib in an application and interacting with a
+treeview to store data. Double click on an entry to update plot data.
+"""
+
+import gi
+gi.require_version('Gtk', '4.0')
+gi.require_version('Gdk', '4.0')
+from gi.repository import Gtk
+
+from matplotlib.backends.backend_gtk4agg import FigureCanvas # or gtk4cairo.
+
+from numpy.random import random
+from matplotlib.figure import Figure
+
+
+class DataManager(Gtk.ApplicationWindow):
+ num_rows, num_cols = 20, 10
+
+ data = random((num_rows, num_cols))
+
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.set_default_size(600, 600)
+
+ self.set_title('GtkListStore demo')
+
+ vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, homogeneous=False,
+ spacing=8)
+ self.set_child(vbox)
+
+ label = Gtk.Label(label='Double click a row to plot the data')
+ vbox.append(label)
+
+ sw = Gtk.ScrolledWindow()
+ sw.set_has_frame(True)
+ sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ sw.set_hexpand(True)
+ sw.set_vexpand(True)
+ vbox.append(sw)
+
+ model = self.create_model()
+ self.treeview = Gtk.TreeView(model=model)
+ self.treeview.connect('row-activated', self.plot_row)
+ sw.set_child(self.treeview)
+
+ # Matplotlib stuff
+ fig = Figure(figsize=(6, 4), constrained_layout=True)
+
+ self.canvas = FigureCanvas(fig) # a Gtk.DrawingArea
+ self.canvas.set_hexpand(True)
+ self.canvas.set_vexpand(True)
+ vbox.append(self.canvas)
+ ax = fig.add_subplot()
+ self.line, = ax.plot(self.data[0, :], 'go') # plot the first row
+
+ self.add_columns()
+
+ def plot_row(self, treeview, path, view_column):
+ ind, = path # get the index into data
+ points = self.data[ind, :]
+ self.line.set_ydata(points)
+ self.canvas.draw()
+
+ def add_columns(self):
+ for i in range(self.num_cols):
+ column = Gtk.TreeViewColumn(str(i), Gtk.CellRendererText(), text=i)
+ self.treeview.append_column(column)
+
+ def create_model(self):
+ types = [float] * self.num_cols
+ store = Gtk.ListStore(*types)
+ for row in self.data:
+ # Gtk.ListStore.append is broken in PyGObject, so insert manually.
+ it = store.insert(-1)
+ store.set(it, {i: val for i, val in enumerate(row)})
+ return store
+
+
+def on_activate(app):
+ manager = DataManager(application=app)
+ manager.show()
+
+
+app = Gtk.Application(application_id='org.matplotlib.examples.GTK4Spreadsheet')
+app.connect('activate', on_activate)
+app.run()
diff --git a/examples/user_interfaces/pylab_with_gtk_sgskip.py b/examples/user_interfaces/pylab_with_gtk3_sgskip.py
similarity index 96%
rename from examples/user_interfaces/pylab_with_gtk_sgskip.py
rename to examples/user_interfaces/pylab_with_gtk3_sgskip.py
index 277f7de2a9eb..4d943032df5a 100644
--- a/examples/user_interfaces/pylab_with_gtk_sgskip.py
+++ b/examples/user_interfaces/pylab_with_gtk3_sgskip.py
@@ -1,7 +1,7 @@
"""
-===============
-pyplot with GTK
-===============
+================
+pyplot with GTK3
+================
An example of how to use pyplot to manage your figure windows, but modify the
GUI by accessing the underlying GTK widgets.
diff --git a/examples/user_interfaces/pylab_with_gtk4_sgskip.py b/examples/user_interfaces/pylab_with_gtk4_sgskip.py
new file mode 100644
index 000000000000..6e0cebcce23c
--- /dev/null
+++ b/examples/user_interfaces/pylab_with_gtk4_sgskip.py
@@ -0,0 +1,51 @@
+"""
+================
+pyplot with GTK4
+================
+
+An example of how to use pyplot to manage your figure windows, but modify the
+GUI by accessing the underlying GTK widgets.
+"""
+
+import matplotlib
+matplotlib.use('GTK4Agg') # or 'GTK4Cairo'
+import matplotlib.pyplot as plt
+
+import gi
+gi.require_version('Gtk', '4.0')
+from gi.repository import Gtk
+
+
+fig, ax = plt.subplots()
+ax.plot([1, 2, 3], 'ro-', label='easy as 1 2 3')
+ax.plot([1, 4, 9], 'gs--', label='easy as 1 2 3 squared')
+ax.legend()
+
+manager = fig.canvas.manager
+# you can access the window or vbox attributes this way
+toolbar = manager.toolbar
+vbox = manager.vbox
+
+# now let's add a button to the toolbar
+button = Gtk.Button(label='Click me')
+button.connect('clicked', lambda button: print('hi mom'))
+button.set_tooltip_text('Click me for fun and profit')
+toolbar.append(button)
+
+# now let's add a widget to the vbox
+label = Gtk.Label()
+label.set_markup('Drag mouse over axes for position')
+vbox.insert_child_after(label, fig.canvas)
+
+
+def update(event):
+ if event.xdata is None:
+ label.set_markup('Drag mouse over axes for position')
+ else:
+ label.set_markup(
+ f'x,y=({event.xdata}, {event.ydata})')
+
+
+fig.canvas.mpl_connect('motion_notify_event', update)
+
+plt.show()
diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py
index 0361a37aed48..8a6f9f62c378 100644
--- a/lib/matplotlib/__init__.py
+++ b/lib/matplotlib/__init__.py
@@ -575,24 +575,13 @@ def gen_candidates():
# rcParams deprecated and automatically mapped to another key.
# Values are tuples of (version, new_name, f_old2new, f_new2old).
_deprecated_map = {}
-
# rcParams deprecated; some can manually be mapped to another key.
# Values are tuples of (version, new_name_or_None).
-_deprecated_ignore_map = {
- 'mpl_toolkits.legacy_colorbar': ('3.4', None),
-}
-
+_deprecated_ignore_map = {}
# rcParams deprecated; can use None to suppress warnings; remain actually
-# listed in the rcParams (not included in _all_deprecated).
+# listed in the rcParams.
# Values are tuples of (version,)
-_deprecated_remain_as_none = {
- 'animation.avconv_path': ('3.3',),
- 'animation.avconv_args': ('3.3',),
- 'animation.html_args': ('3.3',),
-}
-
-
-_all_deprecated = {*_deprecated_map, *_deprecated_ignore_map}
+_deprecated_remain_as_none = {}
@docstring.Substitution(
@@ -1098,8 +1087,8 @@ def use(backend, *, force=True):
backend names, which are case-insensitive:
- interactive backends:
- GTK3Agg, GTK3Cairo, MacOSX, nbAgg, QtAgg, QtCairo,
- TkAgg, TkCairo, WebAgg, WX, WXAgg, WXCairo, Qt5Agg, Qt5Cairo
+ GTK3Agg, GTK3Cairo, GTK4Agg, GTK4Cairo, MacOSX, nbAgg, QtAgg,
+ QtCairo, TkAgg, TkCairo, WebAgg, WX, WXAgg, WXCairo, Qt5Agg, Qt5Cairo
- non-interactive backends:
agg, cairo, pdf, pgf, ps, svg, template
diff --git a/lib/matplotlib/_api/__init__.py b/lib/matplotlib/_api/__init__.py
index 43b25908832e..dfd3f6820f1c 100644
--- a/lib/matplotlib/_api/__init__.py
+++ b/lib/matplotlib/_api/__init__.py
@@ -277,6 +277,13 @@ def my_func(*args, **kwargs):
raise
+def recursive_subclasses(cls):
+ """Yield *cls* and direct and indirect subclasses of *cls*."""
+ yield cls
+ for subcls in cls.__subclasses__():
+ yield from recursive_subclasses(subcls)
+
+
def warn_external(message, category=None):
"""
`warnings.warn` wrapper that sets *stacklevel* to "outside Matplotlib".
diff --git a/lib/matplotlib/_constrained_layout.py b/lib/matplotlib/_constrained_layout.py
index d360eb66164e..457e0fbf2935 100644
--- a/lib/matplotlib/_constrained_layout.py
+++ b/lib/matplotlib/_constrained_layout.py
@@ -17,7 +17,7 @@
import numpy as np
-from matplotlib import _api
+from matplotlib import _api, artist as martist
import matplotlib.transforms as mtransforms
import matplotlib._layoutgrid as mlayoutgrid
@@ -534,17 +534,12 @@ def get_pos_and_bbox(ax, renderer):
Position in figure coordinates.
bbox : Bbox
Tight bounding box in figure coordinates.
-
"""
fig = ax.figure
pos = ax.get_position(original=True)
# pos is in panel co-ords, but we need in figure for the layout
pos = pos.transformed(fig.transSubfigure - fig.transFigure)
- try:
- tightbbox = ax.get_tightbbox(renderer=renderer, for_layout_only=True)
- except TypeError:
- tightbbox = ax.get_tightbbox(renderer=renderer)
-
+ tightbbox = martist._get_tightbbox_for_layout_only(ax, renderer)
if tightbbox is None:
bbox = pos
else:
diff --git a/lib/matplotlib/_mathtext.py b/lib/matplotlib/_mathtext.py
index bbb247ec02fe..73e6163944e1 100644
--- a/lib/matplotlib/_mathtext.py
+++ b/lib/matplotlib/_mathtext.py
@@ -264,7 +264,7 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi, math=True):
if bunch is not None:
return bunch
- font, num, symbol_name, fontsize, slanted = \
+ font, num, glyph_name, fontsize, slanted = \
self._get_glyph(fontname, font_class, sym, fontsize, math)
font.set_size(fontsize, dpi)
@@ -292,7 +292,8 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi, math=True):
fontsize = fontsize,
postscript_name = font.postscript_name,
metrics = metrics,
- symbol_name = symbol_name,
+ glyph_name = glyph_name,
+ symbol_name = glyph_name, # Backcompat alias.
num = num,
glyph = glyph,
offset = offset
@@ -358,7 +359,7 @@ def __init__(self, *args, **kwargs):
_slanted_symbols = set(r"\int \oint".split())
def _get_glyph(self, fontname, font_class, sym, fontsize, math=True):
- symbol_name = None
+ glyph_name = None
font = None
if fontname in self.fontmap and sym in latex_to_bakoma:
basename, num = latex_to_bakoma[sym]
@@ -373,13 +374,13 @@ def _get_glyph(self, fontname, font_class, sym, fontsize, math=True):
if font is not None:
gid = font.get_char_index(num)
if gid != 0:
- symbol_name = font.get_glyph_name(gid)
+ glyph_name = font.get_glyph_name(gid)
- if symbol_name is None:
+ if glyph_name is None:
return self._stix_fallback._get_glyph(
fontname, font_class, sym, fontsize, math)
- return font, num, symbol_name, fontsize, slanted
+ return font, num, glyph_name, fontsize, slanted
# The Bakoma fonts contain many pre-sized alternatives for the
# delimiters. The AutoSizedChar class will use these alternatives
@@ -556,8 +557,8 @@ def _get_glyph(self, fontname, font_class, sym, fontsize, math=True):
glyphindex = font.get_char_index(uniindex)
slanted = False
- symbol_name = font.get_glyph_name(glyphindex)
- return font, uniindex, symbol_name, fontsize, slanted
+ glyph_name = font.get_glyph_name(glyphindex)
+ return font, uniindex, glyph_name, fontsize, slanted
def get_sized_alternatives_for_symbol(self, fontname, sym):
if self.cm_fallback:
@@ -854,7 +855,7 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi, math=True):
if found_symbol:
try:
- symbol_name = font.get_name_char(glyph)
+ glyph_name = font.get_name_char(glyph)
except KeyError:
_log.warning(
"No glyph in standard Postscript font {!r} for {!r}"
@@ -864,7 +865,7 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi, math=True):
if not found_symbol:
glyph = '?'
num = ord(glyph)
- symbol_name = font.get_name_char(glyph)
+ glyph_name = font.get_name_char(glyph)
offset = 0
@@ -890,7 +891,8 @@ def _get_info(self, fontname, font_class, sym, fontsize, dpi, math=True):
fontsize = fontsize,
postscript_name = font.get_fontname(),
metrics = metrics,
- symbol_name = symbol_name,
+ glyph_name = glyph_name,
+ symbol_name = glyph_name, # Backcompat alias.
num = num,
glyph = glyph,
offset = offset
diff --git a/lib/matplotlib/animation.py b/lib/matplotlib/animation.py
index 985181a574c6..f93f6f1559d0 100644
--- a/lib/matplotlib/animation.py
+++ b/lib/matplotlib/animation.py
@@ -888,9 +888,11 @@ def __del__(self):
if not getattr(self, '_draw_was_started', True):
warnings.warn(
'Animation was deleted without rendering anything. This is '
- 'most likely unintended. To prevent deletion, assign the '
- 'Animation to a variable that exists for as long as you need '
- 'the Animation.')
+ 'most likely not intended. To prevent deletion, assign the '
+ 'Animation to a variable, e.g. `anim`, that exists until you '
+ 'have outputted the Animation using `plt.show()` or '
+ '`anim.save()`.'
+ )
def _start(self, *args):
"""
diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py
index 152c0ea33ff5..b84e3871d7e6 100644
--- a/lib/matplotlib/artist.py
+++ b/lib/matplotlib/artist.py
@@ -12,6 +12,7 @@
import matplotlib as mpl
from . import _api, cbook
+from .cm import ScalarMappable
from .path import Path
from .transforms import (Bbox, IdentityTransform, Transform, TransformedBbox,
TransformedPatchPath, TransformedPath)
@@ -690,6 +691,9 @@ def set_sketch_params(self, scale=None, length=None, randomness=None):
The scale factor by which the length is shrunken or
expanded (default 16.0)
+ The PGF backend uses this argument as an RNG seed and not as
+ described above. Using the same seed yields the same random shape.
+
.. ACCEPTS: (scale: float, length: float, randomness: float)
"""
if scale is None:
@@ -1258,17 +1262,18 @@ def format_cursor_data(self, data):
--------
get_cursor_data
"""
- if np.ndim(data) == 0 and getattr(self, "colorbar", None):
+ if np.ndim(data) == 0 and isinstance(self, ScalarMappable):
# This block logically belongs to ScalarMappable, but can't be
# implemented in it because most ScalarMappable subclasses inherit
# from Artist first and from ScalarMappable second, so
# Artist.format_cursor_data would always have precedence over
# ScalarMappable.format_cursor_data.
- return (
- "["
- + cbook.strip_math(
- self.colorbar.formatter.format_data_short(data)).strip()
- + "]")
+ n = self.cmap.N
+ # Midpoints of neighboring color intervals.
+ neighbors = self.norm.inverse(
+ (int(self.norm(data) * n) + np.array([0, 1])) / n)
+ delta = abs(neighbors - data).max()
+ return "[{:-#.{}g}]".format(data, cbook._g_sig_digits(data, delta))
else:
try:
data[0]
@@ -1301,6 +1306,18 @@ def mouseover(self, val):
ax._mouseover_set.discard(self)
+def _get_tightbbox_for_layout_only(obj, *args, **kwargs):
+ """
+ Matplotlib's `.Axes.get_tightbbox` and `.Axis.get_tightbbox` support a
+ *for_layout_only* kwarg; this helper tries to uses the kwarg but skips it
+ when encountering third-party subclasses that do not support it.
+ """
+ try:
+ return obj.get_tightbbox(*args, **{**kwargs, "for_layout_only": True})
+ except TypeError:
+ return obj.get_tightbbox(*args, **kwargs)
+
+
class ArtistInspector:
"""
A helper class to inspect an `~matplotlib.artist.Artist` and return
diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py
index 257ae2fe4839..cef0f8c3c88d 100644
--- a/lib/matplotlib/axes/_axes.py
+++ b/lib/matplotlib/axes/_axes.py
@@ -3317,8 +3317,7 @@ def errorbar(self, x, y, yerr=None, xerr=None,
%(Line2D:kwdoc)s
"""
kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D)
- # anything that comes in as 'None', drop so the default thing
- # happens down stream
+ # Drop anything that comes in as None to use the default instead.
kwargs = {k: v for k, v in kwargs.items() if v is not None}
kwargs.setdefault('zorder', 2)
diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py
index 802fd3c9971c..a46613aabeb2 100644
--- a/lib/matplotlib/axes/_base.py
+++ b/lib/matplotlib/axes/_base.py
@@ -96,7 +96,7 @@ def wrapper(self, *args, **kwargs):
class _TransformedBoundsLocator:
"""
- Axes locator for `.Axes.inset_axes` and similarly positioned axes.
+ Axes locator for `.Axes.inset_axes` and similarly positioned Axes.
The locator is a callable object used in `.Axes.set_aspect` to compute the
axes location depending on the renderer.
@@ -105,7 +105,7 @@ class _TransformedBoundsLocator:
def __init__(self, bounds, transform):
"""
*bounds* (a ``[l, b, w, h]`` rectangle) and *transform* together
- specify the position of the inset axes.
+ specify the position of the inset Axes.
"""
self._bounds = bounds
self._transform = transform
@@ -563,15 +563,15 @@ def __init__(self, fig, rect,
**kwargs
):
"""
- Build an axes in a figure.
+ Build an Axes in a figure.
Parameters
----------
fig : `~matplotlib.figure.Figure`
- The axes is build in the `.Figure` *fig*.
+ The Axes is built in the `.Figure` *fig*.
rect : [left, bottom, width, height]
- The axes is build in the rectangle *rect*. *rect* is in
+ The Axes is built in the rectangle *rect*. *rect* is in
`.Figure` coordinates.
sharex, sharey : `~.axes.Axes`, optional
@@ -579,10 +579,10 @@ def __init__(self, fig, rect,
y axis in the input `~.axes.Axes`.
frameon : bool, default: True
- Whether the axes frame is visible.
+ Whether the Axes frame is visible.
box_aspect : float, optional
- Set a fixed aspect for the axes box, i.e. the ratio of height to
+ Set a fixed aspect for the Axes box, i.e. the ratio of height to
width. See `~.axes.Axes.set_box_aspect` for details.
**kwargs
@@ -615,7 +615,7 @@ def __init__(self, fig, rect,
self.set_figure(fig)
self.set_box_aspect(box_aspect)
self._axes_locator = None # Optionally set via update(kwargs).
- # placeholder for any colorbars added that use this axes.
+ # placeholder for any colorbars added that use this Axes.
# (see colorbar.py):
self._colorbars = []
self.spines = mspines.Spines.from_dict(self._gen_axes_spines())
@@ -723,7 +723,7 @@ def __repr__(self):
def get_window_extent(self, *args, **kwargs):
"""
- Return the axes bounding box in display space; *args* and *kwargs*
+ Return the Axes bounding box in display space; *args* and *kwargs*
are empty.
This bounding box does not include the spines, ticks, ticklables,
@@ -809,7 +809,7 @@ def _set_lim_and_transforms(self):
This method is primarily used by rectilinear projections of the
`~matplotlib.axes.Axes` class, and is meant to be overridden by
- new kinds of projection axes that need different transformations
+ new kinds of projection Axes that need different transformations
and limits. (See `~matplotlib.projections.polar.PolarAxes` for an
example.)
"""
@@ -866,7 +866,7 @@ def get_xaxis_text1_transform(self, pad_points):
-------
transform : Transform
The transform used for drawing x-axis labels, which will add
- *pad_points* of padding (in points) between the axes and the label.
+ *pad_points* of padding (in points) between the axis and the label.
The x-direction is in data coordinates and the y-direction is in
axis coordinates
valign : {'center', 'top', 'bottom', 'baseline', 'center_baseline'}
@@ -892,7 +892,7 @@ def get_xaxis_text2_transform(self, pad_points):
-------
transform : Transform
The transform used for drawing secondary x-axis labels, which will
- add *pad_points* of padding (in points) between the axes and the
+ add *pad_points* of padding (in points) between the axis and the
label. The x-direction is in data coordinates and the y-direction
is in axis coordinates
valign : {'center', 'top', 'bottom', 'baseline', 'center_baseline'}
@@ -942,7 +942,7 @@ def get_yaxis_text1_transform(self, pad_points):
-------
transform : Transform
The transform used for drawing y-axis labels, which will add
- *pad_points* of padding (in points) between the axes and the label.
+ *pad_points* of padding (in points) between the axis and the label.
The x-direction is in axis coordinates and the y-direction is in
data coordinates
valign : {'center', 'top', 'bottom', 'baseline', 'center_baseline'}
@@ -968,7 +968,7 @@ def get_yaxis_text2_transform(self, pad_points):
-------
transform : Transform
The transform used for drawing secondart y-axis labels, which will
- add *pad_points* of padding (in points) between the axes and the
+ add *pad_points* of padding (in points) between the axis and the
label. The x-direction is in axis coordinates and the y-direction
is in data coordinates
valign : {'center', 'top', 'bottom', 'baseline', 'center_baseline'}
@@ -1002,7 +1002,7 @@ def _update_transScale(self):
def get_position(self, original=False):
"""
- Get a copy of the axes rectangle as a `.Bbox`.
+ Return the position of the Axes within the figure as a `.Bbox`.
Parameters
----------
@@ -1026,7 +1026,7 @@ def get_position(self, original=False):
def set_position(self, pos, which='both'):
"""
- Set the axes position.
+ Set the Axes position.
Axes have two position attributes. The 'original' position is the
position allocated for the Axes. The 'active' position is the
@@ -1081,7 +1081,7 @@ def reset_position(self):
def set_axes_locator(self, locator):
"""
- Set the axes locator.
+ Set the Axes locator.
Parameters
----------
@@ -1097,7 +1097,7 @@ def get_axes_locator(self):
return self._axes_locator
def _set_artist_props(self, a):
- """Set the boilerplate props for artists added to axes."""
+ """Set the boilerplate props for artists added to Axes."""
a.set_figure(self.figure)
if not a.is_transform_set():
a.set_transform(self.transData)
@@ -1111,8 +1111,8 @@ def _gen_axes_patch(self):
Returns
-------
Patch
- The patch used to draw the background of the axes. It is also used
- as the clipping path for any data elements on the axes.
+ The patch used to draw the background of the Axes. It is also used
+ as the clipping path for any data elements on the Axes.
In the standard axes, this is a rectangle, but in other projections
it may not be.
@@ -1129,9 +1129,9 @@ def _gen_axes_spines(self, locations=None, offset=0.0, units='inches'):
-------
dict
Mapping of spine names to `.Line2D` or `.Patch` instances that are
- used to draw axes spines.
+ used to draw Axes spines.
- In the standard axes, spines are single line segments, but in other
+ In the standard Axes, spines are single line segments, but in other
projections they may not be.
Notes
@@ -1147,7 +1147,7 @@ def sharex(self, other):
This is equivalent to passing ``sharex=other`` when constructing the
axes, and cannot be used if the x-axis is already being shared with
- another axes.
+ another Axes.
"""
_api.check_isinstance(_AxesBase, other=other)
if self._sharex is not None and other is not self._sharex:
@@ -1166,7 +1166,7 @@ def sharey(self, other):
This is equivalent to passing ``sharey=other`` when constructing the
axes, and cannot be used if the y-axis is already being shared with
- another axes.
+ another Axes.
"""
_api.check_isinstance(_AxesBase, other=other)
if self._sharey is not None and other is not self._sharey:
@@ -1180,7 +1180,7 @@ def sharey(self, other):
self.yaxis._scale = other.yaxis._scale
def cla(self):
- """Clear the axes."""
+ """Clear the Axes."""
# Note: this is called by Axes.__init__()
# stash the current visibility state
@@ -1285,13 +1285,13 @@ def cla(self):
for _title in (self.title, self._left_title, self._right_title):
self._set_artist_props(_title)
- # The patch draws the background of the axes. We want this to be below
+ # The patch draws the background of the Axes. We want this to be below
# the other artists. We use the frame to draw the edges so we are
# setting the edgecolor to None.
self.patch = self._gen_axes_patch()
self.patch.set_figure(self.figure)
self.patch.set_facecolor(self._facecolor)
- self.patch.set_edgecolor('None')
+ self.patch.set_edgecolor('none')
self.patch.set_linewidth(0)
self.patch.set_transform(self.transAxes)
@@ -1471,7 +1471,7 @@ def texts(self):
valid_types=mtext.Text)
def clear(self):
- """Clear the axes."""
+ """Clear the Axes."""
self.cla()
def get_facecolor(self):
@@ -1520,13 +1520,13 @@ def set_prop_cycle(self, *args, **kwargs):
Form 2 creates a `~cycler.Cycler` which cycles over one or more
properties simultaneously and set it as the property cycle of the
- axes. If multiple properties are given, their value lists must have
+ Axes. If multiple properties are given, their value lists must have
the same length. This is just a shortcut for explicitly creating a
cycler and passing it to the function, i.e. it's short for
``set_prop_cycle(cycler(label=values label2=values2, ...))``.
Form 3 creates a `~cycler.Cycler` for a single property and set it
- as the property cycle of the axes. This form exists for compatibility
+ as the property cycle of the Axes. This form exists for compatibility
with the original `cycler.cycler` interface. Its use is discouraged
in favor of the kwarg form, i.e. ``set_prop_cycle(label=values)``.
@@ -1710,7 +1710,7 @@ def set_adjustable(self, adjustable, share=False):
for ax in axs)):
# Limits adjustment by apply_aspect assumes that the axes' aspect
# ratio can be computed from the data limits and scales.
- raise ValueError("Cannot set axes adjustable to 'datalim' for "
+ raise ValueError("Cannot set Axes adjustable to 'datalim' for "
"Axes which override 'get_data_ratio'")
for ax in axs:
ax._adjustable = adjustable
@@ -1718,7 +1718,7 @@ def set_adjustable(self, adjustable, share=False):
def get_box_aspect(self):
"""
- Return the axes box aspect, i.e. the ratio of height to width.
+ Return the Axes box aspect, i.e. the ratio of height to width.
The box aspect is ``None`` (i.e. chosen depending on the available
figure space) unless explicitly specified.
@@ -1734,21 +1734,21 @@ def get_box_aspect(self):
def set_box_aspect(self, aspect=None):
"""
- Set the axes box aspect, i.e. the ratio of height to width.
+ Set the Axes box aspect, i.e. the ratio of height to width.
- This defines the aspect of the axes in figure space and is not to be
+ This defines the aspect of the Axes in figure space and is not to be
confused with the data aspect (see `~.Axes.set_aspect`).
Parameters
----------
aspect : float or None
Changes the physical dimensions of the Axes, such that the ratio
- of the axes height to the axes width in physical units is equal to
+ of the Axes height to the Axes width in physical units is equal to
*aspect*. Defining a box aspect will change the *adjustable*
property to 'datalim' (see `~.Axes.set_adjustable`).
*None* will disable a fixed box aspect so that height and width
- of the axes are chosen independently.
+ of the Axes are chosen independently.
See Also
--------
@@ -2138,7 +2138,7 @@ def _sci(self, im):
This image will be the target of colormap functions like
`~.pyplot.viridis`, and other functions such as `~.pyplot.clim`. The
- current image is an attribute of the current axes.
+ current image is an attribute of the current Axes.
"""
_api.check_isinstance(
(mpl.contour.ContourSet, mcoll.Collection, mimage.AxesImage),
@@ -2157,7 +2157,7 @@ def _gci(self):
def has_data(self):
"""
- Return whether any artists have been added to the axes.
+ Return whether any artists have been added to the Axes.
This should not be used to determine whether the *dataLim*
need to be updated, and may not actually be useful for
@@ -2204,12 +2204,12 @@ def add_artist(self, a):
def add_child_axes(self, ax):
"""
- Add an `.AxesBase` to the axes' children; return the child axes.
+ Add an `.AxesBase` to the Axes' children; return the child Axes.
This is the lowlevel version. See `.axes.Axes.inset_axes`.
"""
- # normally axes have themselves as the axes, but these need to have
+ # normally Axes have themselves as the Axes, but these need to have
# their parent...
# Need to bypass the getter...
ax._axes = self
@@ -2612,7 +2612,7 @@ def use_sticky_edges(self):
@use_sticky_edges.setter
def use_sticky_edges(self, b):
self._use_sticky_edges = bool(b)
- # No effect until next autoscaling, which will mark the axes as stale.
+ # No effect until next autoscaling, which will mark the Axes as stale.
def set_xmargin(self, m):
"""
@@ -2664,7 +2664,7 @@ def margins(self, *margins, x=None, y=None, tight=True):
"""
Set or retrieve autoscaling margins.
- The padding added to each limit of the axes is the *margin*
+ The padding added to each limit of the Axes is the *margin*
times the data interval. All input parameters must be floats
within the range [0, 1]. Passing both positional and keyword
arguments is invalid and will raise a TypeError. If no
@@ -2766,7 +2766,7 @@ def autoscale(self, enable=True, axis='both', tight=None):
Convenience method for simple axis view autoscaling.
It turns autoscaling on or off, and then,
if autoscaling for either axis is on, it performs
- the autoscaling on the specified axis or axes.
+ the autoscaling on the specified axis or Axes.
Parameters
----------
@@ -2833,7 +2833,7 @@ def autoscale_view(self, tight=None, scalex=True, scaley=True):
case, use :meth:`matplotlib.axes.Axes.relim` prior to calling
autoscale_view.
- If the views of the axes are fixed, e.g. via `set_xlim`, they will
+ If the views of the Axes are fixed, e.g. via `set_xlim`, they will
not be changed by autoscale_view().
See :meth:`matplotlib.axes.Axes.autoscale` for an alternative.
"""
@@ -2842,9 +2842,9 @@ def autoscale_view(self, tight=None, scalex=True, scaley=True):
x_stickies = y_stickies = np.array([])
if self.use_sticky_edges:
- # Only iterate over axes and artists if needed. The check for
+ # Only iterate over Axes and artists if needed. The check for
# ``hasattr(ax, "_children")`` is necessary because this can be
- # called very early in the axes init process (e.g., for twin axes)
+ # called very early in the Axes init process (e.g., for twin axes)
# when these attributes don't even exist yet, in which case
# `get_children` would raise an AttributeError.
if self._xmargin and scalex and self._autoscaleXon:
@@ -2948,7 +2948,7 @@ def _get_axis_map(self):
and the r-axis is still named "y" (for back-compatibility).
In practice, this means that the entries are typically "x" and "y", and
- additionally "z" for 3D axes.
+ additionally "z" for 3D Axes.
"""
return dict(zip(self._axis_names, self._get_axis_list()))
@@ -2989,9 +2989,9 @@ def _update_title_position(self, renderer):
if bb is not None:
top = max(top, bb.ymax)
if top < 0:
- # the top of axes is not even on the figure, so don't try and
+ # the top of Axes is not even on the figure, so don't try and
# automatically place it.
- _log.debug('top of axes not in the figure, so title not moved')
+ _log.debug('top of Axes not in the figure, so title not moved')
return
if title.get_window_extent(renderer).ymin < top:
_, y = self.transAxes.inverted().transform((0, top))
@@ -3024,7 +3024,7 @@ def draw(self, renderer):
# prevent triggering call backs during the draw process
self._stale = True
- # loop over self and child axes...
+ # loop over self and child Axes...
locator = self.get_axes_locator()
if locator:
pos = locator(self, renderer)
@@ -3035,7 +3035,7 @@ def draw(self, renderer):
artists = self.get_children()
artists.remove(self.patch)
- # the frame draws the edges around the axes patch -- we
+ # the frame draws the edges around the Axes patch -- we
# decouple these so the patch can be in the background and the
# frame in the foreground. Do this before drawing the axis
# objects so that the spine has the opportunity to update them.
@@ -3119,12 +3119,12 @@ def get_renderer_cache(self):
# Axes rectangle characteristics
def get_frame_on(self):
- """Get whether the axes rectangle patch is drawn."""
+ """Get whether the Axes rectangle patch is drawn."""
return self._frameon
def set_frame_on(self, b):
"""
- Set whether the axes rectangle patch is drawn.
+ Set whether the Axes rectangle patch is drawn.
Parameters
----------
@@ -3238,7 +3238,7 @@ def ticklabel_format(self, *, axis='both', style='', scilimits=None,
Parameters
----------
axis : {'x', 'y', 'both'}, default: 'both'
- The axes to configure. Only major ticks are affected.
+ The axis to configure. Only major ticks are affected.
style : {'sci', 'scientific', 'plain'}
Whether to use scientific notation.
@@ -3463,7 +3463,7 @@ def set_xlabel(self, xlabel, fontdict=None, labelpad=None, *,
The label text.
labelpad : float, default: :rc:`axes.labelpad`
- Spacing in points from the axes bounding box including ticks
+ Spacing in points from the Axes bounding box including ticks
and tick labels. If None, the previous value is left as is.
loc : {'left', 'center', 'right'}, default: :rc:`xaxis.labellocation`
@@ -3533,7 +3533,7 @@ def set_xbound(self, lower=None, upper=None):
"""
Set the lower and upper numerical bounds of the x-axis.
- This method will honor axes inversion regardless of parameter order.
+ This method will honor axis inversion regardless of parameter order.
It will not change the autoscaling setting (`.get_autoscalex_on()`).
Parameters
@@ -3807,7 +3807,7 @@ def set_ylabel(self, ylabel, fontdict=None, labelpad=None, *,
The label text.
labelpad : float, default: :rc:`axes.labelpad`
- Spacing in points from the axes bounding box including ticks
+ Spacing in points from the Axes bounding box including ticks
and tick labels. If None, the previous value is left as is.
loc : {'bottom', 'center', 'top'}, default: :rc:`yaxis.labellocation`
@@ -3877,7 +3877,7 @@ def set_ybound(self, lower=None, upper=None):
"""
Set the lower and upper numerical bounds of the y-axis.
- This method will honor axes inversion regardless of parameter order.
+ This method will honor axis inversion regardless of parameter order.
It will not change the autoscaling setting (`.get_autoscaley_on()`).
Parameters
@@ -4153,7 +4153,7 @@ def format_coord(self, x, y):
def minorticks_on(self):
"""
- Display minor ticks on the axes.
+ Display minor ticks on the Axes.
Displaying minor ticks may reduce performance; you may turn them off
using `minorticks_off()` if drawing speed is a problem.
@@ -4171,7 +4171,7 @@ def minorticks_on(self):
ax.set_minor_locator(mticker.AutoMinorLocator())
def minorticks_off(self):
- """Remove minor ticks from the axes."""
+ """Remove minor ticks from the Axes."""
self.xaxis.set_minor_locator(mticker.NullLocator())
self.yaxis.set_minor_locator(mticker.NullLocator())
@@ -4179,25 +4179,25 @@ def minorticks_off(self):
def can_zoom(self):
"""
- Return whether this axes supports the zoom box button functionality.
+ Return whether this Axes supports the zoom box button functionality.
"""
return True
def can_pan(self):
"""
- Return whether this axes supports any pan/zoom button functionality.
+ Return whether this Axes supports any pan/zoom button functionality.
"""
return True
def get_navigate(self):
"""
- Get whether the axes responds to navigation commands
+ Get whether the Axes responds to navigation commands.
"""
return self._navigate
def set_navigate(self, b):
"""
- Set whether the axes responds to navigation toolbar commands
+ Set whether the Axes responds to navigation toolbar commands.
Parameters
----------
@@ -4207,13 +4207,13 @@ def set_navigate(self, b):
def get_navigate_mode(self):
"""
- Get the navigation toolbar button status: 'PAN', 'ZOOM', or None
+ Get the navigation toolbar button status: 'PAN', 'ZOOM', or None.
"""
return self._navigate_mode
def set_navigate_mode(self, b):
"""
- Set the navigation toolbar button status;
+ Set the navigation toolbar button status.
.. warning ::
this is not a user-API function.
@@ -4346,7 +4346,7 @@ def _set_view_from_bbox(self, bbox, direction='in',
[xmin0, xmax0, xmin, xmax]) # To screen space.
factor = (sxmax0 - sxmin0) / (sxmax - sxmin) # Unzoom factor.
# Move original bounds away by
- # (factor) x (distance between unzoom box and axes bbox).
+ # (factor) x (distance between unzoom box and Axes bbox).
sxmin1 = sxmin0 - factor * (sxmin - sxmin0)
sxmax1 = sxmax0 + factor * (sxmax0 - sxmax)
# And back to data space.
@@ -4542,7 +4542,7 @@ def get_tightbbox(self, renderer, call_axes_locator=True,
bbox_extra_artists : list of `.Artist` or ``None``
List of artists to include in the tight bounding box. If
- ``None`` (default), then all artist children of the axes are
+ ``None`` (default), then all artist children of the Axes are
included in the tight bounding box.
call_axes_locator : bool, default: True
@@ -4550,7 +4550,7 @@ def get_tightbbox(self, renderer, call_axes_locator=True,
``_axes_locator`` attribute, which is necessary to get the correct
bounding box. ``call_axes_locator=False`` can be used if the
caller is only interested in the relative size of the tightbbox
- compared to the axes bbox.
+ compared to the Axes bbox.
for_layout_only : default: False
The bounding box will *not* include the x-extent of the title and
@@ -4582,21 +4582,13 @@ def get_tightbbox(self, renderer, call_axes_locator=True,
if self.axison:
if self.xaxis.get_visible():
- try:
- bb_xaxis = self.xaxis.get_tightbbox(
- renderer, for_layout_only=for_layout_only)
- except TypeError:
- # in case downstream library has redefined axis:
- bb_xaxis = self.xaxis.get_tightbbox(renderer)
+ bb_xaxis = martist._get_tightbbox_for_layout_only(
+ self.xaxis, renderer)
if bb_xaxis:
bb.append(bb_xaxis)
if self.yaxis.get_visible():
- try:
- bb_yaxis = self.yaxis.get_tightbbox(
- renderer, for_layout_only=for_layout_only)
- except TypeError:
- # in case downstream library has redefined axis:
- bb_yaxis = self.yaxis.get_tightbbox(renderer)
+ bb_yaxis = martist._get_tightbbox_for_layout_only(
+ self.yaxis, renderer)
if bb_yaxis:
bb.append(bb_yaxis)
self._update_title_position(renderer)
@@ -4620,14 +4612,14 @@ def get_tightbbox(self, renderer, call_axes_locator=True,
for a in bbox_artists:
# Extra check here to quickly see if clipping is on and
- # contained in the axes. If it is, don't get the tightbbox for
+ # contained in the Axes. If it is, don't get the tightbbox for
# this artist because this can be expensive:
clip_extent = a._get_clipping_extent_bbox()
if clip_extent is not None:
clip_extent = mtransforms.Bbox.intersection(
clip_extent, axbbox)
if np.all(clip_extent.extents == axbbox.extents):
- # clip extent is inside the axes bbox so don't check
+ # clip extent is inside the Axes bbox so don't check
# this artist
continue
bbox = a.get_tightbbox(renderer)
@@ -4639,7 +4631,7 @@ def get_tightbbox(self, renderer, call_axes_locator=True,
[b for b in bb if b.width != 0 or b.height != 0])
def _make_twin_axes(self, *args, **kwargs):
- """Make a twinx axes of self. This is used for twinx and twiny."""
+ """Make a twinx Axes of self. This is used for twinx and twiny."""
# Typically, SubplotBase._make_twin_axes is called instead of this.
if 'sharex' in kwargs and 'sharey' in kwargs:
raise ValueError("Twinned Axes may share only one axis")
@@ -4670,7 +4662,7 @@ def twinx(self):
Notes
-----
For those who are 'picking' artists while using twinx, pick
- events are only called for the artists in the top-most axes.
+ events are only called for the artists in the top-most Axes.
"""
ax2 = self._make_twin_axes(sharex=self)
ax2.yaxis.tick_right()
@@ -4700,7 +4692,7 @@ def twiny(self):
Notes
-----
For those who are 'picking' artists while using twiny, pick
- events are only called for the artists in the top-most axes.
+ events are only called for the artists in the top-most Axes.
"""
ax2 = self._make_twin_axes(sharey=self)
ax2.xaxis.tick_top()
diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py
index 21ff162062d0..cf352af563da 100644
--- a/lib/matplotlib/backend_bases.py
+++ b/lib/matplotlib/backend_bases.py
@@ -101,6 +101,7 @@ def _safe_pyplot_import():
backend_mapping = {
'qt': 'qtagg',
'gtk3': 'gtk3agg',
+ 'gtk4': 'gtk4agg',
'wx': 'wxagg',
'tk': 'tkagg',
'macosx': 'macosx',
@@ -913,15 +914,13 @@ def set_dashes(self, dash_offset, dash_list):
Parameters
----------
- dash_offset : float or None
+ dash_offset : float
The offset (usually 0).
dash_list : array-like or None
- The on-off sequence as points.
+ The on-off sequence as points. None specifies a solid line.
Notes
-----
- ``(None, None)`` specifies a solid line.
-
See p. 107 of to PostScript `blue book`_ for more info.
.. _blue book: https://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF
@@ -1211,9 +1210,10 @@ def _on_timer(self):
class Event:
"""
- A Matplotlib event. Attach additional attributes as defined in
- :meth:`FigureCanvasBase.mpl_connect`. The following attributes
- are defined and shown with their default values
+ A Matplotlib event.
+
+ The following attributes are defined and shown with their default values.
+ Subclasses may define additional attributes.
Attributes
----------
@@ -1232,20 +1232,20 @@ def __init__(self, name, canvas, guiEvent=None):
class DrawEvent(Event):
"""
- An event triggered by a draw operation on the canvas
+ An event triggered by a draw operation on the canvas.
- In most backends callbacks subscribed to this callback will be
- fired after the rendering is complete but before the screen is
- updated. Any extra artists drawn to the canvas's renderer will
- be reflected without an explicit call to ``blit``.
+ In most backends, callbacks subscribed to this event will be fired after
+ the rendering is complete but before the screen is updated. Any extra
+ artists drawn to the canvas's renderer will be reflected without an
+ explicit call to ``blit``.
.. warning::
Calling ``canvas.draw`` and ``canvas.blit`` in these callbacks may
not be safe with all backends and may cause infinite recursion.
- In addition to the `Event` attributes, the following event
- attributes are defined:
+ A DrawEvent has a number of special attributes in addition to those defined
+ by the parent `Event` class.
Attributes
----------
@@ -1259,10 +1259,10 @@ def __init__(self, name, canvas, renderer):
class ResizeEvent(Event):
"""
- An event triggered by a canvas resize
+ An event triggered by a canvas resize.
- In addition to the `Event` attributes, the following event
- attributes are defined:
+ A ResizeEvent has a number of special attributes in addition to those
+ defined by the parent `Event` class.
Attributes
----------
@@ -1284,32 +1284,23 @@ class LocationEvent(Event):
"""
An event that has a screen location.
- The following additional attributes are defined and shown with
- their default values.
-
- In addition to the `Event` attributes, the following
- event attributes are defined:
+ A LocationEvent has a number of special attributes in addition to those
+ defined by the parent `Event` class.
Attributes
----------
- x : int
- x position - pixels from left of canvas.
- y : int
- y position - pixels from bottom of canvas.
+ x, y : int or None
+ Event location in pixels from bottom left of canvas.
inaxes : `~.axes.Axes` or None
The `~.axes.Axes` instance over which the mouse is, if any.
- xdata : float or None
- x data coordinate of the mouse.
- ydata : float or None
- y data coordinate of the mouse.
+ xdata, ydata : float or None
+ Data coordinates of the mouse within *inaxes*, or *None* if the mouse
+ is not over an Axes.
"""
lastevent = None # the last event that was triggered before this one
def __init__(self, name, canvas, x, y, guiEvent=None):
- """
- (*x*, *y*) in figure coords ((0, 0) = bottom left).
- """
super().__init__(name, canvas, guiEvent=guiEvent)
# x position - pixels from left of canvas
self.x = int(x) if x is not None else x
@@ -1378,13 +1369,11 @@ class MouseButton(IntEnum):
class MouseEvent(LocationEvent):
"""
- A mouse event ('button_press_event',
- 'button_release_event',
- 'scroll_event',
- 'motion_notify_event').
+ A mouse event ('button_press_event', 'button_release_event', \
+'scroll_event', 'motion_notify_event').
- In addition to the `Event` and `LocationEvent`
- attributes, the following attributes are defined:
+ A MouseEvent has a number of special attributes in addition to those
+ defined by the parent `Event` and `LocationEvent` classes.
Attributes
----------
@@ -1426,10 +1415,6 @@ def on_press(event):
def __init__(self, name, canvas, x, y, button=None, key=None,
step=0, dblclick=False, guiEvent=None):
- """
- (*x*, *y*) in figure coords ((0, 0) = bottom left)
- button pressed None, 1, 2, 3, 'up', 'down'
- """
if button in MouseButton.__members__.values():
button = MouseButton(button)
self.button = button
@@ -1450,11 +1435,14 @@ def __str__(self):
class PickEvent(Event):
"""
- A pick event, fired when the user picks a location on the canvas
+ A pick event.
+
+ This event is fired when the user picks a location on the canvas
sufficiently close to an artist that has been made pickable with
`.Artist.set_picker`.
- Attrs: all the `Event` attributes plus
+ A PickEvent has a number of special attributes in addition to those defined
+ by the parent `Event` class.
Attributes
----------
@@ -1495,19 +1483,16 @@ class KeyEvent(LocationEvent):
"""
A key event (key press, key release).
- Attach additional attributes as defined in
- :meth:`FigureCanvasBase.mpl_connect`.
-
- In addition to the `Event` and `LocationEvent`
- attributes, the following attributes are defined:
+ A KeyEvent has a number of special attributes in addition to those defined
+ by the parent `Event` and `LocationEvent` classes.
Attributes
----------
key : None or str
- the key(s) pressed. Could be **None**, a single case sensitive ascii
- character ("g", "G", "#", etc.), a special key
- ("control", "shift", "f1", "up", etc.) or a
- combination of the above (e.g., "ctrl+alt+g", "ctrl+alt+G").
+ The key(s) pressed. Could be *None*, a single case sensitive Unicode
+ character ("g", "G", "#", etc.), a special key ("control", "shift",
+ "f1", "up", etc.) or a combination of the above (e.g., "ctrl+alt+g",
+ "ctrl+alt+G").
Notes
-----
@@ -1570,7 +1555,7 @@ def _draw(renderer): raise Done(renderer)
def _no_output_draw(figure):
# _no_output_draw was promoted to the figure level, but
# keep this here in case someone was calling it...
- figure.draw_no_output()
+ figure.draw_without_rendering()
def _is_non_interactive_terminal_ipython(ip):
@@ -1670,7 +1655,7 @@ class FigureCanvasBase:
A high-level figure instance.
"""
- # Set to one of {"qt", "gtk3", "wx", "tk", "macosx"} if an
+ # Set to one of {"qt", "gtk3", "gtk4", "wx", "tk", "macosx"} if an
# interactive framework is required, or None otherwise.
required_interactive_framework = None
@@ -1746,7 +1731,7 @@ def _fix_ipython_backend2gui(cls):
# don't break on our side.
return
rif = getattr(cls, "required_interactive_framework", None)
- backend2gui_rif = {"qt": "qt", "gtk3": "gtk3",
+ backend2gui_rif = {"qt": "qt", "gtk3": "gtk3", "gtk4": "gtk4",
"wx": "wx", "macosx": "osx"}.get(rif)
if backend2gui_rif:
if _is_non_interactive_terminal_ipython(ip):
@@ -2272,6 +2257,7 @@ def print_figure(
# Remove the figure manager, if any, to avoid resizing the GUI widget.
with cbook._setattr_cm(self, manager=None), \
cbook._setattr_cm(self.figure, dpi=dpi), \
+ cbook._setattr_cm(canvas, _device_pixel_ratio=1), \
cbook._setattr_cm(canvas, _is_saving=True), \
ExitStack() as stack:
diff --git a/lib/matplotlib/backend_managers.py b/lib/matplotlib/backend_managers.py
index 6d2d9595545d..24f5eb83c4d3 100644
--- a/lib/matplotlib/backend_managers.py
+++ b/lib/matplotlib/backend_managers.py
@@ -1,5 +1,4 @@
-from matplotlib import _api, cbook, widgets
-import matplotlib.backend_tools as tools
+from matplotlib import _api, backend_tools, cbook, widgets
class ToolEvent:
@@ -233,8 +232,9 @@ def add_tool(self, name, tool, *args, **kwargs):
----------
name : str
Name of the tool, treated as the ID, has to be unique.
- tool : class_like, i.e. str or type
- Reference to find the class of the Tool to added.
+ tool : type
+ Class of the tool to be added. A subclass will be used
+ instead if one was registered for the current canvas class.
Notes
-----
@@ -245,7 +245,7 @@ def add_tool(self, name, tool, *args, **kwargs):
matplotlib.backend_tools.ToolBase : The base class for tools.
"""
- tool_cls = self._get_cls_to_instantiate(tool)
+ tool_cls = backend_tools._find_tool_class(type(self.canvas), tool)
if not tool_cls:
raise ValueError('Impossible to find class for %s' % str(tool))
@@ -254,7 +254,7 @@ def add_tool(self, name, tool, *args, **kwargs):
'exists, not added')
return self._tools[name]
- if name == 'cursor' and tool_cls != tools.SetCursorBase:
+ if name == 'cursor' and tool_cls != backend_tools.SetCursorBase:
_api.warn_deprecated("3.5",
message="Overriding ToolSetCursor with "
f"{tool_cls.__qualname__} was only "
@@ -271,7 +271,7 @@ def add_tool(self, name, tool, *args, **kwargs):
self.update_keymap(name, tool_cls.default_keymap)
# For toggle tools init the radio_group in self._toggled
- if isinstance(tool_obj, tools.ToolToggleBase):
+ if isinstance(tool_obj, backend_tools.ToolToggleBase):
# None group is not mutually exclusive, a set is used to keep track
# of all toggled tools in this group
if tool_obj.radio_group is None:
@@ -337,23 +337,6 @@ def _handle_toggle(self, tool, sender, canvasevent, data):
# Keep track of the toggled tool in the radio_group
self._toggled[radio_group] = toggled
- def _get_cls_to_instantiate(self, callback_class):
- # Find the class that corresponds to the tool
- if isinstance(callback_class, str):
- # FIXME: make more complete searching structure
- if callback_class in globals():
- callback_class = globals()[callback_class]
- else:
- mod = 'backend_tools'
- current_module = __import__(mod,
- globals(), locals(), [mod], 1)
-
- callback_class = getattr(current_module, callback_class, False)
- if callable(callback_class):
- return callback_class
- else:
- return None
-
def trigger_tool(self, name, sender=None, canvasevent=None, data=None):
"""
Trigger a tool and emit the ``tool_trigger_{name}`` event.
@@ -376,23 +359,15 @@ def trigger_tool(self, name, sender=None, canvasevent=None, data=None):
if sender is None:
sender = self
- self._trigger_tool(name, sender, canvasevent, data)
+ if isinstance(tool, backend_tools.ToolToggleBase):
+ self._handle_toggle(tool, sender, canvasevent, data)
+
+ tool.trigger(sender, canvasevent, data) # Actually trigger Tool.
s = 'tool_trigger_%s' % name
event = ToolTriggerEvent(s, sender, tool, canvasevent, data)
self._callbacks.process(s, event)
- def _trigger_tool(self, name, sender=None, canvasevent=None, data=None):
- """Actually trigger a tool."""
- tool = self.get_tool(name)
-
- if isinstance(tool, tools.ToolToggleBase):
- self._handle_toggle(tool, sender, canvasevent, data)
-
- # Important!!!
- # This is where the Tool object gets triggered
- tool.trigger(sender, canvasevent, data)
-
def _key_press(self, event):
if event.key is None or self.keypresslock.locked():
return
@@ -426,7 +401,8 @@ def get_tool(self, name, warn=True):
`.ToolBase` or None
The tool or None if no tool with the given name exists.
"""
- if isinstance(name, tools.ToolBase) and name.name in self._tools:
+ if (isinstance(name, backend_tools.ToolBase)
+ and name.name in self._tools):
return name
if name not in self._tools:
if warn:
diff --git a/lib/matplotlib/backend_tools.py b/lib/matplotlib/backend_tools.py
index cc81b1f9269b..0c25ad554b26 100644
--- a/lib/matplotlib/backend_tools.py
+++ b/lib/matplotlib/backend_tools.py
@@ -12,6 +12,7 @@
"""
import enum
+import functools
import re
import time
from types import SimpleNamespace
@@ -36,6 +37,35 @@ class Cursors(enum.IntEnum): # Must subclass int for the macOS backend.
RESIZE_VERTICAL = enum.auto()
cursors = Cursors # Backcompat.
+
+# _tool_registry, _register_tool_class, and _find_tool_class implement a
+# mechanism through which ToolManager.add_tool can determine whether a subclass
+# of the requested tool class has been registered (either for the current
+# canvas class or for a parent class), in which case that tool subclass will be
+# instantiated instead. This is the mechanism used e.g. to allow different
+# GUI backends to implement different specializations for ConfigureSubplots.
+
+
+_tool_registry = set()
+
+
+def _register_tool_class(canvas_cls, tool_cls=None):
+ """Decorator registering *tool_cls* as a tool class for *canvas_cls*."""
+ if tool_cls is None:
+ return functools.partial(_register_tool_class, canvas_cls)
+ _tool_registry.add((canvas_cls, tool_cls))
+ return tool_cls
+
+
+def _find_tool_class(canvas_cls, tool_cls):
+ """Find a subclass of *tool_cls* registered for *canvas_cls*."""
+ for canvas_parent in canvas_cls.__mro__:
+ for tool_child in _api.recursive_subclasses(tool_cls):
+ if (canvas_parent, tool_child) in _tool_registry:
+ return tool_child
+ return tool_cls
+
+
# Views positions tool
_views_positions = 'viewpos'
@@ -900,7 +930,7 @@ class ToolHelpBase(ToolBase):
@staticmethod
def format_shortcut(key_sequence):
"""
- Converts a shortcut string from the notation used in rc config to the
+ Convert a shortcut string from the notation used in rc config to the
standard notation for displaying shortcuts, e.g. 'ctrl+a' -> 'Ctrl+A'.
"""
return (key_sequence if len(key_sequence) == 1 else
@@ -943,8 +973,8 @@ def trigger(self, *args, **kwargs):
default_tools = {'home': ToolHome, 'back': ToolBack, 'forward': ToolForward,
'zoom': ToolZoom, 'pan': ToolPan,
- 'subplots': 'ToolConfigureSubplots',
- 'save': 'ToolSaveFigure',
+ 'subplots': ConfigureSubplotsBase,
+ 'save': SaveFigureBase,
'grid': ToolGrid,
'grid_minor': ToolMinorGrid,
'fullscreen': ToolFullScreen,
@@ -954,10 +984,10 @@ def trigger(self, *args, **kwargs):
'yscale': ToolYScale,
'position': ToolCursorPosition,
_views_positions: ToolViewsPositions,
- 'cursor': 'ToolSetCursor',
- 'rubberband': 'ToolRubberband',
- 'help': 'ToolHelp',
- 'copy': 'ToolCopyToClipboard',
+ 'cursor': SetCursorBase,
+ 'rubberband': RubberbandBase,
+ 'help': ToolHelpBase,
+ 'copy': ToolCopyToClipboardBase,
}
"""Default tools"""
diff --git a/lib/matplotlib/backends/_backend_gtk.py b/lib/matplotlib/backends/_backend_gtk.py
new file mode 100644
index 000000000000..f652815f5120
--- /dev/null
+++ b/lib/matplotlib/backends/_backend_gtk.py
@@ -0,0 +1,174 @@
+"""
+Common code for GTK3 and GTK4 backends.
+"""
+
+import logging
+
+import matplotlib as mpl
+from matplotlib import backend_tools, cbook
+from matplotlib.backend_bases import (
+ _Backend, NavigationToolbar2, TimerBase,
+)
+
+# The GTK3/GTK4 backends will have already called `gi.require_version` to set
+# the desired GTK.
+from gi.repository import Gio, GLib, Gtk
+
+
+_log = logging.getLogger(__name__)
+
+backend_version = "%s.%s.%s" % (
+ Gtk.get_major_version(), Gtk.get_minor_version(), Gtk.get_micro_version())
+
+# Placeholder
+_application = None
+
+
+def _shutdown_application(app):
+ # The application might prematurely shut down if Ctrl-C'd out of IPython,
+ # so close all windows.
+ for win in app.get_windows():
+ win.close()
+ # The PyGObject wrapper incorrectly thinks that None is not allowed, or we
+ # would call this:
+ # Gio.Application.set_default(None)
+ # Instead, we set this property and ignore default applications with it:
+ app._created_by_matplotlib = True
+ global _application
+ _application = None
+
+
+def _create_application():
+ global _application
+
+ if _application is None:
+ app = Gio.Application.get_default()
+ if app is None or getattr(app, '_created_by_matplotlib'):
+ # display_is_valid returns False only if on Linux and neither X11
+ # nor Wayland display can be opened.
+ if not mpl._c_internal_utils.display_is_valid():
+ raise RuntimeError('Invalid DISPLAY variable')
+ _application = Gtk.Application.new('org.matplotlib.Matplotlib3',
+ Gio.ApplicationFlags.NON_UNIQUE)
+ # The activate signal must be connected, but we don't care for
+ # handling it, since we don't do any remote processing.
+ _application.connect('activate', lambda *args, **kwargs: None)
+ _application.connect('shutdown', _shutdown_application)
+ _application.register()
+ cbook._setup_new_guiapp()
+ else:
+ _application = app
+
+ return _application
+
+
+class TimerGTK(TimerBase):
+ """Subclass of `.TimerBase` using GTK timer events."""
+
+ def __init__(self, *args, **kwargs):
+ self._timer = None
+ super().__init__(*args, **kwargs)
+
+ def _timer_start(self):
+ # Need to stop it, otherwise we potentially leak a timer id that will
+ # never be stopped.
+ self._timer_stop()
+ self._timer = GLib.timeout_add(self._interval, self._on_timer)
+
+ def _timer_stop(self):
+ if self._timer is not None:
+ GLib.source_remove(self._timer)
+ self._timer = None
+
+ def _timer_set_interval(self):
+ # Only stop and restart it if the timer has already been started.
+ if self._timer is not None:
+ self._timer_stop()
+ self._timer_start()
+
+ def _on_timer(self):
+ super()._on_timer()
+
+ # Gtk timeout_add() requires that the callback returns True if it
+ # is to be called again.
+ if self.callbacks and not self._single:
+ return True
+ else:
+ self._timer = None
+ return False
+
+
+class _NavigationToolbar2GTK(NavigationToolbar2):
+ # Must be implemented in GTK3/GTK4 backends:
+ # * __init__
+ # * save_figure
+
+ def set_message(self, s):
+ escaped = GLib.markup_escape_text(s)
+ self.message.set_markup(f'{escaped}')
+
+ def draw_rubberband(self, event, x0, y0, x1, y1):
+ height = self.canvas.figure.bbox.height
+ y1 = height - y1
+ y0 = height - y0
+ rect = [int(val) for val in (x0, y0, x1 - x0, y1 - y0)]
+ self.canvas._draw_rubberband(rect)
+
+ def remove_rubberband(self):
+ self.canvas._draw_rubberband(None)
+
+ def _update_buttons_checked(self):
+ for name, active in [("Pan", "PAN"), ("Zoom", "ZOOM")]:
+ button = self._gtk_ids.get(name)
+ if button:
+ with button.handler_block(button._signal_handler):
+ button.set_active(self.mode.name == active)
+
+ def pan(self, *args):
+ super().pan(*args)
+ self._update_buttons_checked()
+
+ def zoom(self, *args):
+ super().zoom(*args)
+ self._update_buttons_checked()
+
+ def set_history_buttons(self):
+ can_backward = self._nav_stack._pos > 0
+ can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
+ if 'Back' in self._gtk_ids:
+ self._gtk_ids['Back'].set_sensitive(can_backward)
+ if 'Forward' in self._gtk_ids:
+ self._gtk_ids['Forward'].set_sensitive(can_forward)
+
+
+class RubberbandGTK(backend_tools.RubberbandBase):
+ def draw_rubberband(self, x0, y0, x1, y1):
+ _NavigationToolbar2GTK.draw_rubberband(
+ self._make_classic_style_pseudo_toolbar(), None, x0, y0, x1, y1)
+
+ def remove_rubberband(self):
+ _NavigationToolbar2GTK.remove_rubberband(
+ self._make_classic_style_pseudo_toolbar())
+
+
+class ConfigureSubplotsGTK(backend_tools.ConfigureSubplotsBase, Gtk.Window):
+ def _get_canvas(self, fig):
+ return self.canvas.__class__(fig)
+
+ def trigger(self, *args):
+ _NavigationToolbar2GTK.configure_subplots(
+ self._make_classic_style_pseudo_toolbar(), None)
+
+
+class _BackendGTK(_Backend):
+ @staticmethod
+ def mainloop():
+ global _application
+ if _application is None:
+ return
+
+ try:
+ _application.run() # Quits when all added windows close.
+ finally:
+ # Running after quit is undefined, so create a new one next time.
+ _application = None
diff --git a/lib/matplotlib/backends/_backend_tk.py b/lib/matplotlib/backends/_backend_tk.py
index e07c089676b4..eb34c6b569e9 100644
--- a/lib/matplotlib/backends/_backend_tk.py
+++ b/lib/matplotlib/backends/_backend_tk.py
@@ -774,6 +774,7 @@ def hidetip(self):
tw.destroy()
+@backend_tools._register_tool_class(FigureCanvasTk)
class RubberbandTk(backend_tools.RubberbandBase):
def draw_rubberband(self, x0, y0, x1, y1):
self.remove_rubberband()
@@ -859,12 +860,14 @@ def set_message(self, s):
self._message.set(s)
+@backend_tools._register_tool_class(FigureCanvasTk)
class SaveFigureTk(backend_tools.SaveFigureBase):
def trigger(self, *args):
NavigationToolbar2Tk.save_figure(
self._make_classic_style_pseudo_toolbar())
+@backend_tools._register_tool_class(FigureCanvasTk)
class ConfigureSubplotsTk(backend_tools.ConfigureSubplotsBase):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -894,6 +897,7 @@ def destroy(self, *args, **kwargs):
self.window = None
+@backend_tools._register_tool_class(FigureCanvasTk)
class HelpTk(backend_tools.ToolHelpBase):
def trigger(self, *args):
dialog = SimpleDialog(
@@ -901,11 +905,6 @@ def trigger(self, *args):
dialog.done = lambda num: dialog.frame.master.withdraw()
-backend_tools.ToolSaveFigure = SaveFigureTk
-backend_tools.ToolConfigureSubplots = ConfigureSubplotsTk
-backend_tools.ToolRubberband = RubberbandTk
-backend_tools.ToolHelp = HelpTk
-backend_tools.ToolCopyToClipboard = backend_tools.ToolCopyToClipboardBase
Toolbar = ToolbarTk
diff --git a/lib/matplotlib/backends/backend_cairo.py b/lib/matplotlib/backends/backend_cairo.py
index 61cd66ce2e31..05a760542f4f 100644
--- a/lib/matplotlib/backends/backend_cairo.py
+++ b/lib/matplotlib/backends/backend_cairo.py
@@ -245,7 +245,7 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
ctx.save()
ctx.select_font_face(*_cairo_font_args_from_font_prop(prop))
- ctx.set_font_size(prop.get_size_in_points() * self.dpi / 72)
+ ctx.set_font_size(self.points_to_pixels(prop.get_size_in_points()))
opts = cairo.FontOptions()
opts.set_antialias(
cairo.ANTIALIAS_DEFAULT if mpl.rcParams["text.antialiased"]
@@ -271,7 +271,7 @@ def _draw_mathtext(self, gc, x, y, s, prop, angle):
ctx.move_to(ox, -oy)
ctx.select_font_face(
*_cairo_font_args_from_font_prop(ttfFontProperty(font)))
- ctx.set_font_size(fontsize * self.dpi / 72)
+ ctx.set_font_size(self.points_to_pixels(fontsize))
ctx.show_text(chr(idx))
for ox, oy, w, h in rects:
@@ -303,9 +303,7 @@ def get_text_width_height_descent(self, s, prop, ismath):
# save/restore prevents the problem
ctx.save()
ctx.select_font_face(*_cairo_font_args_from_font_prop(prop))
- # Cairo (says it) uses 1/96 inch user space units, ref: cairo_gstate.c
- # but if /96.0 is used the font is too small
- ctx.set_font_size(prop.get_size_in_points() * self.dpi / 72)
+ ctx.set_font_size(self.points_to_pixels(prop.get_size_in_points()))
y_bearing, w, h = ctx.text_extents(s)[1:4]
ctx.restore()
diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py
index 46b48c2200aa..a0efcc934ea5 100644
--- a/lib/matplotlib/backends/backend_gtk3.py
+++ b/lib/matplotlib/backends/backend_gtk3.py
@@ -29,13 +29,16 @@
raise ImportError from e
from gi.repository import Gio, GLib, GObject, Gtk, Gdk
+from . import _backend_gtk
+from ._backend_gtk import (
+ _create_application, _shutdown_application,
+ backend_version, _BackendGTK, _NavigationToolbar2GTK,
+ TimerGTK as TimerGTK3,
+)
_log = logging.getLogger(__name__)
-backend_version = "%s.%s.%s" % (
- Gtk.get_major_version(), Gtk.get_minor_version(), Gtk.get_micro_version())
-
@_api.caching_module_getattr # module-level deprecations
class __getattr__:
@@ -55,45 +58,12 @@ def cursord(self):
except TypeError as exc:
return {}
-
-# Placeholder
-_application = None
-
-
-def _shutdown_application(app):
- # The application might prematurely shut down if Ctrl-C'd out of IPython,
- # so close all windows.
- for win in app.get_windows():
- win.destroy()
- # The PyGObject wrapper incorrectly thinks that None is not allowed, or we
- # would call this:
- # Gio.Application.set_default(None)
- # Instead, we set this property and ignore default applications with it:
- app._created_by_matplotlib = True
- global _application
- _application = None
-
-
-def _create_application():
- global _application
-
- if _application is None:
- app = Gio.Application.get_default()
- if app is None or getattr(app, '_created_by_matplotlib'):
- # display_is_valid returns False only if on Linux and neither X11
- # nor Wayland display can be opened.
- if not mpl._c_internal_utils.display_is_valid():
- raise RuntimeError('Invalid DISPLAY variable')
- _application = Gtk.Application.new('org.matplotlib.Matplotlib3',
- Gio.ApplicationFlags.NON_UNIQUE)
- # The activate signal must be connected, but we don't care for
- # handling it, since we don't do any remote processing.
- _application.connect('activate', lambda *args, **kwargs: None)
- _application.connect('shutdown', _shutdown_application)
- _application.register()
- cbook._setup_new_guiapp()
- else:
- _application = app
+ icon_filename = _api.deprecated("3.6", obj_type="")(property(
+ lambda self:
+ "matplotlib.png" if sys.platform == "win32" else "matplotlib.svg"))
+ window_icon = _api.deprecated("3.6", obj_type="")(property(
+ lambda self:
+ str(cbook._get_data_path("images", __getattr__("icon_filename")))))
@functools.lru_cache()
@@ -110,42 +80,6 @@ def _mpl_to_gtk_cursor(mpl_cursor):
return Gdk.Cursor.new_from_name(Gdk.Display.get_default(), name)
-class TimerGTK3(TimerBase):
- """Subclass of `.TimerBase` using GTK3 timer events."""
-
- def __init__(self, *args, **kwargs):
- self._timer = None
- super().__init__(*args, **kwargs)
-
- def _timer_start(self):
- # Need to stop it, otherwise we potentially leak a timer id that will
- # never be stopped.
- self._timer_stop()
- self._timer = GLib.timeout_add(self._interval, self._on_timer)
-
- def _timer_stop(self):
- if self._timer is not None:
- GLib.source_remove(self._timer)
- self._timer = None
-
- def _timer_set_interval(self):
- # Only stop and restart it if the timer has already been started
- if self._timer is not None:
- self._timer_stop()
- self._timer_start()
-
- def _on_timer(self):
- super()._on_timer()
-
- # Gtk timeout_add() requires that the callback returns True if it
- # is to be called again.
- if self.callbacks and not self._single:
- return True
- else:
- self._timer = None
- return False
-
-
class FigureCanvasGTK3(Gtk.DrawingArea, FigureCanvasBase):
required_interactive_framework = "gtk3"
_timer_cls = TimerGTK3
@@ -365,7 +299,7 @@ class FigureManagerGTK3(FigureManagerBase):
num : int or str
The Figure number
toolbar : Gtk.Toolbar
- The Gtk.Toolbar
+ The toolbar
vbox : Gtk.VBox
The Gtk.VBox containing the canvas and toolbar
window : Gtk.Window
@@ -373,19 +307,15 @@ class FigureManagerGTK3(FigureManagerBase):
"""
def __init__(self, canvas, num):
- _create_application()
+ app = _create_application()
self.window = Gtk.Window()
- _application.add_window(self.window)
+ app.add_window(self.window)
super().__init__(canvas, num)
self.window.set_wmclass("matplotlib", "Matplotlib")
- try:
- self.window.set_icon_from_file(window_icon)
- except Exception:
- # Some versions of gtk throw a glib.GError but not all, so I am not
- # sure how to catch it. I am unhappy doing a blanket catch here,
- # but am not sure what a better way is - JDH
- _log.info('Could not load matplotlib icon: %s', sys.exc_info()[1])
+ icon_ext = "png" if sys.platform == "win32" else "svg"
+ self.window.set_icon_from_file(
+ str(cbook._get_data_path(f"images/matplotlib.{icon_ext}")))
self.vbox = Gtk.Box()
self.vbox.set_property("orientation", Gtk.Orientation.VERTICAL)
@@ -492,7 +422,7 @@ def resize(self, width, height):
self.window.resize(width, height)
-class NavigationToolbar2GTK3(NavigationToolbar2, Gtk.Toolbar):
+class NavigationToolbar2GTK3(_NavigationToolbar2GTK, Gtk.Toolbar):
def __init__(self, canvas, window):
self.win = window
GObject.GObject.__init__(self)
@@ -509,21 +439,16 @@ def __init__(self, canvas, window):
str(cbook._get_data_path('images',
f'{image_file}-symbolic.svg'))),
Gtk.IconSize.LARGE_TOOLBAR)
- self._gtk_ids[text] = tbutton = (
+ self._gtk_ids[text] = button = (
Gtk.ToggleToolButton() if callback in ['zoom', 'pan'] else
Gtk.ToolButton())
- tbutton.set_label(text)
- tbutton.set_icon_widget(image)
- self.insert(tbutton, -1)
+ button.set_label(text)
+ button.set_icon_widget(image)
# Save the handler id, so that we can block it as needed.
- tbutton._signal_handler = tbutton.connect(
+ button._signal_handler = button.connect(
'clicked', getattr(self, callback))
- tbutton.set_tooltip_text(tooltip_text)
-
- toolitem = Gtk.SeparatorToolItem()
- self.insert(toolitem, -1)
- toolitem.set_draw(False)
- toolitem.set_expand(True)
+ button.set_tooltip_text(tooltip_text)
+ self.insert(button, -1)
# This filler item ensures the toolbar is always at least two text
# lines high. Otherwise the canvas gets redrawn as the mouse hovers
@@ -534,6 +459,7 @@ def __init__(self, canvas, window):
label = Gtk.Label()
label.set_markup(
'\N{NO-BREAK SPACE}\n\N{NO-BREAK SPACE}')
+ toolitem.set_expand(True) # Push real message to the right.
toolitem.add(label)
toolitem = Gtk.ToolItem()
@@ -545,35 +471,6 @@ def __init__(self, canvas, window):
NavigationToolbar2.__init__(self, canvas)
- def set_message(self, s):
- escaped = GLib.markup_escape_text(s)
- self.message.set_markup(f'{escaped}')
-
- def draw_rubberband(self, event, x0, y0, x1, y1):
- height = self.canvas.figure.bbox.height
- y1 = height - y1
- y0 = height - y0
- rect = [int(val) for val in (x0, y0, x1 - x0, y1 - y0)]
- self.canvas._draw_rubberband(rect)
-
- def remove_rubberband(self):
- self.canvas._draw_rubberband(None)
-
- def _update_buttons_checked(self):
- for name, active in [("Pan", "PAN"), ("Zoom", "ZOOM")]:
- button = self._gtk_ids.get(name)
- if button:
- with button.handler_block(button._signal_handler):
- button.set_active(self.mode.name == active)
-
- def pan(self, *args):
- super().pan(*args)
- self._update_buttons_checked()
-
- def zoom(self, *args):
- super().zoom(*args)
- self._update_buttons_checked()
-
def save_figure(self, *args):
dialog = Gtk.FileChooserDialog(
title="Save the figure",
@@ -618,14 +515,6 @@ def on_notify_filter(*args):
except Exception as e:
error_msg_gtk(str(e), parent=self)
- def set_history_buttons(self):
- can_backward = self._nav_stack._pos > 0
- can_forward = self._nav_stack._pos < len(self._nav_stack._elements) - 1
- if 'Back' in self._gtk_ids:
- self._gtk_ids['Back'].set_sensitive(can_backward)
- if 'Forward' in self._gtk_ids:
- self._gtk_ids['Forward'].set_sensitive(can_forward)
-
class ToolbarGTK3(ToolContainerBase, Gtk.Box):
_icon_extension = '-symbolic.svg'
@@ -643,26 +532,26 @@ def __init__(self, toolmanager):
def add_toolitem(self, name, group, position, image_file, description,
toggle):
if toggle:
- tbutton = Gtk.ToggleToolButton()
+ button = Gtk.ToggleToolButton()
else:
- tbutton = Gtk.ToolButton()
- tbutton.set_label(name)
+ button = Gtk.ToolButton()
+ button.set_label(name)
if image_file is not None:
image = Gtk.Image.new_from_gicon(
Gio.Icon.new_for_string(image_file),
Gtk.IconSize.LARGE_TOOLBAR)
- tbutton.set_icon_widget(image)
+ button.set_icon_widget(image)
if position is None:
position = -1
- self._add_button(tbutton, group, position)
- signal = tbutton.connect('clicked', self._call_tool, name)
- tbutton.set_tooltip_text(description)
- tbutton.show_all()
+ self._add_button(button, group, position)
+ signal = button.connect('clicked', self._call_tool, name)
+ button.set_tooltip_text(description)
+ button.show_all()
self._toolitems.setdefault(name, [])
- self._toolitems[name].append((tbutton, signal))
+ self._toolitems[name].append((button, signal))
def _add_button(self, button, group, position):
if group not in self._groups:
@@ -707,16 +596,7 @@ def set_message(self, s):
self._message.set_label(s)
-class RubberbandGTK3(backend_tools.RubberbandBase):
- def draw_rubberband(self, x0, y0, x1, y1):
- NavigationToolbar2GTK3.draw_rubberband(
- self._make_classic_style_pseudo_toolbar(), None, x0, y0, x1, y1)
-
- def remove_rubberband(self):
- NavigationToolbar2GTK3.remove_rubberband(
- self._make_classic_style_pseudo_toolbar())
-
-
+@backend_tools._register_tool_class(FigureCanvasGTK3)
class SaveFigureGTK3(backend_tools.SaveFigureBase):
def trigger(self, *args, **kwargs):
@@ -733,15 +613,7 @@ def set_cursor(self, cursor):
self._make_classic_style_pseudo_toolbar(), cursor)
-class ConfigureSubplotsGTK3(backend_tools.ConfigureSubplotsBase, Gtk.Window):
- def _get_canvas(self, fig):
- return self.canvas.__class__(fig)
-
- def trigger(self, *args):
- NavigationToolbar2GTK3.configure_subplots(
- self._make_classic_style_pseudo_toolbar(), None)
-
-
+@backend_tools._register_tool_class(FigureCanvasGTK3)
class HelpGTK3(backend_tools.ToolHelpBase):
def _normalize_shortcut(self, key):
"""
@@ -827,6 +699,7 @@ def trigger(self, *args):
self._show_shortcuts_dialog()
+@backend_tools._register_tool_class(FigureCanvasGTK3)
class ToolCopyToClipboardGTK3(backend_tools.ToolCopyToClipboardBase):
def trigger(self, *args, **kwargs):
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
@@ -836,14 +709,6 @@ def trigger(self, *args, **kwargs):
clipboard.set_image(pb)
-# Define the file to use as the GTk icon
-if sys.platform == 'win32':
- icon_filename = 'matplotlib.png'
-else:
- icon_filename = 'matplotlib.svg'
-window_icon = str(cbook._get_data_path('images', icon_filename))
-
-
def error_msg_gtk(msg, parent=None):
if parent is not None: # find the toplevel Gtk.Window
parent = parent.get_toplevel()
@@ -858,28 +723,14 @@ def error_msg_gtk(msg, parent=None):
dialog.destroy()
-backend_tools.ToolSaveFigure = SaveFigureGTK3
-backend_tools.ToolConfigureSubplots = ConfigureSubplotsGTK3
-backend_tools.ToolRubberband = RubberbandGTK3
-backend_tools.ToolHelp = HelpGTK3
-backend_tools.ToolCopyToClipboard = ToolCopyToClipboardGTK3
-
Toolbar = ToolbarGTK3
+backend_tools._register_tool_class(
+ FigureCanvasGTK3, _backend_gtk.ConfigureSubplotsGTK)
+backend_tools._register_tool_class(
+ FigureCanvasGTK3, _backend_gtk.RubberbandGTK)
@_Backend.export
-class _BackendGTK3(_Backend):
+class _BackendGTK3(_BackendGTK):
FigureCanvas = FigureCanvasGTK3
FigureManager = FigureManagerGTK3
-
- @staticmethod
- def mainloop():
- global _application
- if _application is None:
- return
-
- try:
- _application.run() # Quits when all added windows close.
- finally:
- # Running after quit is undefined, so create a new one next time.
- _application = None
diff --git a/lib/matplotlib/backends/backend_gtk3cairo.py b/lib/matplotlib/backends/backend_gtk3cairo.py
index af290902d8a6..9759e15adac8 100644
--- a/lib/matplotlib/backends/backend_gtk3cairo.py
+++ b/lib/matplotlib/backends/backend_gtk3cairo.py
@@ -28,6 +28,7 @@ def on_draw_event(self, widget, ctx):
allocation.width, allocation.height)
self._renderer.set_width_height(
allocation.width, allocation.height)
+ self._renderer.dpi = self.figure.dpi
self.figure.draw(self._renderer)
diff --git a/lib/matplotlib/backends/backend_gtk4.py b/lib/matplotlib/backends/backend_gtk4.py
new file mode 100644
index 000000000000..4dde8f627444
--- /dev/null
+++ b/lib/matplotlib/backends/backend_gtk4.py
@@ -0,0 +1,673 @@
+import functools
+import io
+import os
+from pathlib import Path
+import sys
+
+import matplotlib as mpl
+from matplotlib import _api, backend_tools, cbook
+from matplotlib._pylab_helpers import Gcf
+from matplotlib.backend_bases import (
+ _Backend, FigureCanvasBase, FigureManagerBase, NavigationToolbar2,
+ TimerBase, ToolContainerBase)
+from matplotlib.backend_tools import Cursors
+from matplotlib.figure import Figure
+from matplotlib.widgets import SubplotTool
+
+try:
+ import gi
+except ImportError as err:
+ raise ImportError("The GTK4 backends require PyGObject") from err
+
+try:
+ # :raises ValueError: If module/version is already loaded, already
+ # required, or unavailable.
+ gi.require_version("Gtk", "4.0")
+except ValueError as e:
+ # in this case we want to re-raise as ImportError so the
+ # auto-backend selection logic correctly skips.
+ raise ImportError from e
+
+from gi.repository import Gio, GLib, GObject, Gtk, Gdk, GdkPixbuf
+from . import _backend_gtk
+from ._backend_gtk import (
+ _create_application, _shutdown_application,
+ backend_version, _BackendGTK, _NavigationToolbar2GTK,
+ TimerGTK as TimerGTK4,
+)
+
+
+def _mpl_to_gtk_cursor(mpl_cursor):
+ return _api.check_getitem({
+ Cursors.MOVE: "move",
+ Cursors.HAND: "pointer",
+ Cursors.POINTER: "default",
+ Cursors.SELECT_REGION: "crosshair",
+ Cursors.WAIT: "wait",
+ Cursors.RESIZE_HORIZONTAL: "ew-resize",
+ Cursors.RESIZE_VERTICAL: "ns-resize",
+ }, cursor=mpl_cursor)
+
+
+class FigureCanvasGTK4(Gtk.DrawingArea, FigureCanvasBase):
+ required_interactive_framework = "gtk4"
+ _timer_cls = TimerGTK4
+
+ def __init__(self, figure=None):
+ FigureCanvasBase.__init__(self, figure)
+ GObject.GObject.__init__(self)
+ self.set_hexpand(True)
+ self.set_vexpand(True)
+
+ self._idle_draw_id = 0
+ self._lastCursor = None
+ self._rubberband_rect = None
+
+ self.set_draw_func(self._draw_func)
+ self.connect('resize', self.resize_event)
+
+ click = Gtk.GestureClick()
+ click.set_button(0) # All buttons.
+ click.connect('pressed', self.button_press_event)
+ click.connect('released', self.button_release_event)
+ self.add_controller(click)
+
+ key = Gtk.EventControllerKey()
+ key.connect('key-pressed', self.key_press_event)
+ key.connect('key-released', self.key_release_event)
+ self.add_controller(key)
+
+ motion = Gtk.EventControllerMotion()
+ motion.connect('motion', self.motion_notify_event)
+ motion.connect('enter', self.enter_notify_event)
+ motion.connect('leave', self.leave_notify_event)
+ self.add_controller(motion)
+
+ scroll = Gtk.EventControllerScroll.new(
+ Gtk.EventControllerScrollFlags.VERTICAL)
+ scroll.connect('scroll', self.scroll_event)
+ self.add_controller(scroll)
+
+ self.set_focusable(True)
+
+ css = Gtk.CssProvider()
+ css.load_from_data(b".matplotlib-canvas { background-color: white; }")
+ style_ctx = self.get_style_context()
+ style_ctx.add_provider(css, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
+ style_ctx.add_class("matplotlib-canvas")
+
+ def pick(self, mouseevent):
+ # GtkWidget defines pick in GTK4, so we need to override here to work
+ # with the base implementation we want.
+ FigureCanvasBase.pick(self, mouseevent)
+
+ def destroy(self):
+ self.close_event()
+
+ def set_cursor(self, cursor):
+ # docstring inherited
+ self.set_cursor_from_name(_mpl_to_gtk_cursor(cursor))
+
+ def scroll_event(self, controller, dx, dy):
+ FigureCanvasBase.scroll_event(self, 0, 0, dy)
+ return True
+
+ def button_press_event(self, controller, n_press, x, y):
+ # flipy so y=0 is bottom of canvas
+ y = self.get_allocation().height - y
+ FigureCanvasBase.button_press_event(self, x, y,
+ controller.get_current_button())
+ self.grab_focus()
+
+ def button_release_event(self, controller, n_press, x, y):
+ # flipy so y=0 is bottom of canvas
+ y = self.get_allocation().height - y
+ FigureCanvasBase.button_release_event(self, x, y,
+ controller.get_current_button())
+
+ def key_press_event(self, controller, keyval, keycode, state):
+ key = self._get_key(keyval, keycode, state)
+ FigureCanvasBase.key_press_event(self, key)
+ return True
+
+ def key_release_event(self, controller, keyval, keycode, state):
+ key = self._get_key(keyval, keycode, state)
+ FigureCanvasBase.key_release_event(self, key)
+ return True
+
+ def motion_notify_event(self, controller, x, y):
+ # flipy so y=0 is bottom of canvas
+ y = self.get_allocation().height - y
+ FigureCanvasBase.motion_notify_event(self, x, y)
+
+ def leave_notify_event(self, controller):
+ FigureCanvasBase.leave_notify_event(self)
+
+ def enter_notify_event(self, controller, x, y):
+ # flipy so y=0 is bottom of canvas
+ y = self.get_allocation().height - y
+ FigureCanvasBase.enter_notify_event(self, xy=(x, y))
+
+ def resize_event(self, area, width, height):
+ dpi = self.figure.dpi
+ self.figure.set_size_inches(width / dpi, height / dpi, forward=False)
+ FigureCanvasBase.resize_event(self)
+ self.draw_idle()
+
+ def _get_key(self, keyval, keycode, state):
+ unikey = chr(Gdk.keyval_to_unicode(keyval))
+ key = cbook._unikey_or_keysym_to_mplkey(
+ unikey,
+ Gdk.keyval_name(keyval))
+ modifiers = [
+ (Gdk.ModifierType.CONTROL_MASK, 'ctrl'),
+ (Gdk.ModifierType.ALT_MASK, 'alt'),
+ (Gdk.ModifierType.SHIFT_MASK, 'shift'),
+ (Gdk.ModifierType.SUPER_MASK, 'super'),
+ ]
+ for key_mask, prefix in modifiers:
+ if state & key_mask:
+ if not (prefix == 'shift' and unikey.isprintable()):
+ key = f'{prefix}+{key}'
+ return key
+
+ def _draw_rubberband(self, rect):
+ self._rubberband_rect = rect
+ # TODO: Only update the rubberband area.
+ self.queue_draw()
+
+ def _draw_func(self, drawing_area, ctx, width, height):
+ self.on_draw_event(self, ctx)
+ self._post_draw(self, ctx)
+
+ def _post_draw(self, widget, ctx):
+ if self._rubberband_rect is None:
+ return
+
+ x0, y0, w, h = self._rubberband_rect
+ x1 = x0 + w
+ y1 = y0 + h
+
+ # Draw the lines from x0, y0 towards x1, y1 so that the
+ # dashes don't "jump" when moving the zoom box.
+ ctx.move_to(x0, y0)
+ ctx.line_to(x0, y1)
+ ctx.move_to(x0, y0)
+ ctx.line_to(x1, y0)
+ ctx.move_to(x0, y1)
+ ctx.line_to(x1, y1)
+ ctx.move_to(x1, y0)
+ ctx.line_to(x1, y1)
+
+ ctx.set_antialias(1)
+ ctx.set_line_width(1)
+ ctx.set_dash((3, 3), 0)
+ ctx.set_source_rgb(0, 0, 0)
+ ctx.stroke_preserve()
+
+ ctx.set_dash((3, 3), 3)
+ ctx.set_source_rgb(1, 1, 1)
+ ctx.stroke()
+
+ def on_draw_event(self, widget, ctx):
+ # to be overwritten by GTK4Agg or GTK4Cairo
+ pass
+
+ def draw(self):
+ # docstring inherited
+ if self.is_drawable():
+ self.queue_draw()
+
+ def draw_idle(self):
+ # docstring inherited
+ if self._idle_draw_id != 0:
+ return
+ def idle_draw(*args):
+ try:
+ self.draw()
+ finally:
+ self._idle_draw_id = 0
+ return False
+ self._idle_draw_id = GLib.idle_add(idle_draw)
+
+ def flush_events(self):
+ # docstring inherited
+ context = GLib.MainContext.default()
+ while context.pending():
+ context.iteration(True)
+
+
+class FigureManagerGTK4(FigureManagerBase):
+ """
+ Attributes
+ ----------
+ canvas : `FigureCanvas`
+ The FigureCanvas instance
+ num : int or str
+ The Figure number
+ toolbar : Gtk.Box
+ The toolbar
+ vbox : Gtk.VBox
+ The Gtk.VBox containing the canvas and toolbar
+ window : Gtk.Window
+ The Gtk.Window
+
+ """
+ def __init__(self, canvas, num):
+ app = _create_application()
+ self.window = Gtk.Window()
+ app.add_window(self.window)
+ super().__init__(canvas, num)
+
+ self.vbox = Gtk.Box()
+ self.vbox.set_property("orientation", Gtk.Orientation.VERTICAL)
+ self.window.set_child(self.vbox)
+
+ self.vbox.prepend(self.canvas)
+ # calculate size for window
+ w = int(self.canvas.figure.bbox.width)
+ h = int(self.canvas.figure.bbox.height)
+
+ self.toolbar = self._get_toolbar()
+
+ if self.toolmanager:
+ backend_tools.add_tools_to_manager(self.toolmanager)
+ if self.toolbar:
+ backend_tools.add_tools_to_container(self.toolbar)
+
+ if self.toolbar is not None:
+ sw = Gtk.ScrolledWindow(vscrollbar_policy=Gtk.PolicyType.NEVER)
+ sw.set_child(self.toolbar)
+ self.vbox.append(sw)
+ min_size, nat_size = self.toolbar.get_preferred_size()
+ h += nat_size.height
+
+ self.window.set_default_size(w, h)
+
+ self._destroying = False
+ self.window.connect("destroy", lambda *args: Gcf.destroy(self))
+ self.window.connect("close-request", lambda *args: Gcf.destroy(self))
+ if mpl.is_interactive():
+ self.window.show()
+ self.canvas.draw_idle()
+
+ self.canvas.grab_focus()
+
+ def destroy(self, *args):
+ if self._destroying:
+ # Otherwise, this can be called twice when the user presses 'q',
+ # which calls Gcf.destroy(self), then this destroy(), then triggers
+ # Gcf.destroy(self) once again via
+ # `connect("destroy", lambda *args: Gcf.destroy(self))`.
+ return
+ self._destroying = True
+ self.window.destroy()
+ self.canvas.destroy()
+
+ def show(self):
+ # show the figure window
+ self.window.show()
+ self.canvas.draw()
+ if mpl.rcParams['figure.raise_window']:
+ if self.window.get_surface():
+ self.window.present()
+ else:
+ # If this is called by a callback early during init,
+ # self.window (a GtkWindow) may not have an associated
+ # low-level GdkSurface (self.window.get_surface()) yet, and
+ # present() would crash.
+ _api.warn_external("Cannot raise window yet to be setup")
+
+ def full_screen_toggle(self):
+ if not self.window.is_fullscreen():
+ self.window.fullscreen()
+ else:
+ self.window.unfullscreen()
+
+ def _get_toolbar(self):
+ # must be inited after the window, drawingArea and figure
+ # attrs are set
+ if mpl.rcParams['toolbar'] == 'toolbar2':
+ toolbar = NavigationToolbar2GTK4(self.canvas, self.window)
+ elif mpl.rcParams['toolbar'] == 'toolmanager':
+ toolbar = ToolbarGTK4(self.toolmanager)
+ else:
+ toolbar = None
+ return toolbar
+
+ def get_window_title(self):
+ return self.window.get_title()
+
+ def set_window_title(self, title):
+ self.window.set_title(title)
+
+ def resize(self, width, height):
+ """Set the canvas size in pixels."""
+ if self.toolbar:
+ toolbar_size = self.toolbar.size_request()
+ height += toolbar_size.height
+ canvas_size = self.canvas.get_allocation()
+ if canvas_size.width == canvas_size.height == 1:
+ # A canvas size of (1, 1) cannot exist in most cases, because
+ # window decorations would prevent such a small window. This call
+ # must be before the window has been mapped and widgets have been
+ # sized, so just change the window's starting size.
+ self.window.set_default_size(width, height)
+ else:
+ self.window.resize(width, height)
+
+
+class NavigationToolbar2GTK4(_NavigationToolbar2GTK, Gtk.Box):
+ def __init__(self, canvas, window):
+ self.win = window
+ Gtk.Box.__init__(self)
+
+ self.add_css_class('toolbar')
+
+ self._gtk_ids = {}
+ for text, tooltip_text, image_file, callback in self.toolitems:
+ if text is None:
+ self.append(Gtk.Separator())
+ continue
+ image = Gtk.Image.new_from_gicon(
+ Gio.Icon.new_for_string(
+ str(cbook._get_data_path('images',
+ f'{image_file}-symbolic.svg'))))
+ self._gtk_ids[text] = button = (
+ Gtk.ToggleButton() if callback in ['zoom', 'pan'] else
+ Gtk.Button())
+ button.set_child(image)
+ button.add_css_class('flat')
+ button.add_css_class('image-button')
+ # Save the handler id, so that we can block it as needed.
+ button._signal_handler = button.connect(
+ 'clicked', getattr(self, callback))
+ button.set_tooltip_text(tooltip_text)
+ self.append(button)
+
+ # This filler item ensures the toolbar is always at least two text
+ # lines high. Otherwise the canvas gets redrawn as the mouse hovers
+ # over images because those use two-line messages which resize the
+ # toolbar.
+ label = Gtk.Label()
+ label.set_markup(
+ '\N{NO-BREAK SPACE}\n\N{NO-BREAK SPACE}')
+ label.set_hexpand(True) # Push real message to the right.
+ self.append(label)
+
+ self.message = Gtk.Label()
+ self.append(self.message)
+
+ NavigationToolbar2.__init__(self, canvas)
+
+ def save_figure(self, *args):
+ dialog = Gtk.FileChooserNative(
+ title='Save the figure',
+ transient_for=self.canvas.get_root(),
+ action=Gtk.FileChooserAction.SAVE,
+ modal=True)
+ self._save_dialog = dialog # Must keep a reference.
+
+ ff = Gtk.FileFilter()
+ ff.set_name('All files')
+ ff.add_pattern('*')
+ dialog.add_filter(ff)
+ dialog.set_filter(ff)
+
+ formats = []
+ default_format = None
+ for i, (name, fmts) in enumerate(
+ self.canvas.get_supported_filetypes_grouped().items()):
+ ff = Gtk.FileFilter()
+ ff.set_name(name)
+ for fmt in fmts:
+ ff.add_pattern(f'*.{fmt}')
+ dialog.add_filter(ff)
+ formats.append(name)
+ if self.canvas.get_default_filetype() in fmts:
+ default_format = i
+ # Setting the choice doesn't always work, so make sure the default
+ # format is first.
+ formats = [formats[default_format], *formats[:default_format],
+ *formats[default_format+1:]]
+ dialog.add_choice('format', 'File format', formats, formats)
+ dialog.set_choice('format', formats[default_format])
+
+ dialog.set_current_folder(Gio.File.new_for_path(
+ os.path.expanduser(mpl.rcParams['savefig.directory'])))
+ dialog.set_current_name(self.canvas.get_default_filename())
+
+ @functools.partial(dialog.connect, 'response')
+ def on_response(dialog, response):
+ file = dialog.get_file()
+ fmt = dialog.get_choice('format')
+ fmt = self.canvas.get_supported_filetypes_grouped()[fmt][0]
+ dialog.destroy()
+ self._save_dialog = None
+ if response != Gtk.ResponseType.ACCEPT:
+ return
+ # Save dir for next time, unless empty str (which means use cwd).
+ if mpl.rcParams['savefig.directory']:
+ parent = file.get_parent()
+ mpl.rcParams['savefig.directory'] = parent.get_path()
+ try:
+ self.canvas.figure.savefig(file.get_path(), format=fmt)
+ except Exception as e:
+ msg = Gtk.MessageDialog(
+ transient_for=self.canvas.get_root(),
+ message_type=Gtk.MessageType.ERROR,
+ buttons=Gtk.ButtonsType.OK, modal=True,
+ text=str(e))
+ msg.show()
+
+ dialog.show()
+
+
+class ToolbarGTK4(ToolContainerBase, Gtk.Box):
+ _icon_extension = '-symbolic.svg'
+
+ def __init__(self, toolmanager):
+ ToolContainerBase.__init__(self, toolmanager)
+ Gtk.Box.__init__(self)
+ self.set_property('orientation', Gtk.Orientation.HORIZONTAL)
+
+ # Tool items are created later, but must appear before the message.
+ self._tool_box = Gtk.Box()
+ self.append(self._tool_box)
+ self._groups = {}
+ self._toolitems = {}
+
+ # This filler item ensures the toolbar is always at least two text
+ # lines high. Otherwise the canvas gets redrawn as the mouse hovers
+ # over images because those use two-line messages which resize the
+ # toolbar.
+ label = Gtk.Label()
+ label.set_markup(
+ '\N{NO-BREAK SPACE}\n\N{NO-BREAK SPACE}')
+ label.set_hexpand(True) # Push real message to the right.
+ self.append(label)
+
+ self._message = Gtk.Label()
+ self.append(self._message)
+
+ def add_toolitem(self, name, group, position, image_file, description,
+ toggle):
+ if toggle:
+ button = Gtk.ToggleButton()
+ else:
+ button = Gtk.Button()
+ button.set_label(name)
+ button.add_css_class('flat')
+
+ if image_file is not None:
+ image = Gtk.Image.new_from_gicon(
+ Gio.Icon.new_for_string(image_file))
+ button.set_child(image)
+ button.add_css_class('image-button')
+
+ if position is None:
+ position = -1
+
+ self._add_button(button, group, position)
+ signal = button.connect('clicked', self._call_tool, name)
+ button.set_tooltip_text(description)
+ self._toolitems.setdefault(name, [])
+ self._toolitems[name].append((button, signal))
+
+ def _find_child_at_position(self, group, position):
+ children = [None]
+ child = self._groups[group].get_first_child()
+ while child is not None:
+ children.append(child)
+ child = child.get_next_sibling()
+ return children[position]
+
+ def _add_button(self, button, group, position):
+ if group not in self._groups:
+ if self._groups:
+ self._add_separator()
+ group_box = Gtk.Box()
+ self._tool_box.append(group_box)
+ self._groups[group] = group_box
+ self._groups[group].insert_child_after(
+ button, self._find_child_at_position(group, position))
+
+ def _call_tool(self, btn, name):
+ self.trigger_tool(name)
+
+ def toggle_toolitem(self, name, toggled):
+ if name not in self._toolitems:
+ return
+ for toolitem, signal in self._toolitems[name]:
+ toolitem.handler_block(signal)
+ toolitem.set_active(toggled)
+ toolitem.handler_unblock(signal)
+
+ def remove_toolitem(self, name):
+ if name not in self._toolitems:
+ self.toolmanager.message_event(f'{name} not in toolbar', self)
+ return
+
+ for group in self._groups:
+ for toolitem, _signal in self._toolitems[name]:
+ if toolitem in self._groups[group]:
+ self._groups[group].remove(toolitem)
+ del self._toolitems[name]
+
+ def _add_separator(self):
+ sep = Gtk.Separator()
+ sep.set_property("orientation", Gtk.Orientation.VERTICAL)
+ self._tool_box.append(sep)
+
+ def set_message(self, s):
+ self._message.set_label(s)
+
+
+@backend_tools._register_tool_class(FigureCanvasGTK4)
+class SaveFigureGTK4(backend_tools.SaveFigureBase):
+ def trigger(self, *args, **kwargs):
+
+ class PseudoToolbar:
+ canvas = self.figure.canvas
+
+ return NavigationToolbar2GTK4.save_figure(PseudoToolbar())
+
+
+@backend_tools._register_tool_class(FigureCanvasGTK4)
+class HelpGTK4(backend_tools.ToolHelpBase):
+ def _normalize_shortcut(self, key):
+ """
+ Convert Matplotlib key presses to GTK+ accelerator identifiers.
+
+ Related to `FigureCanvasGTK4._get_key`.
+ """
+ special = {
+ 'backspace': 'BackSpace',
+ 'pagedown': 'Page_Down',
+ 'pageup': 'Page_Up',
+ 'scroll_lock': 'Scroll_Lock',
+ }
+
+ parts = key.split('+')
+ mods = ['<' + mod + '>' for mod in parts[:-1]]
+ key = parts[-1]
+
+ if key in special:
+ key = special[key]
+ elif len(key) > 1:
+ key = key.capitalize()
+ elif key.isupper():
+ mods += ['']
+
+ return ''.join(mods) + key
+
+ def _is_valid_shortcut(self, key):
+ """
+ Check for a valid shortcut to be displayed.
+
+ - GTK will never send 'cmd+' (see `FigureCanvasGTK4._get_key`).
+ - The shortcut window only shows keyboard shortcuts, not mouse buttons.
+ """
+ return 'cmd+' not in key and not key.startswith('MouseButton.')
+
+ def trigger(self, *args):
+ section = Gtk.ShortcutsSection()
+
+ for name, tool in sorted(self.toolmanager.tools.items()):
+ if not tool.description:
+ continue
+
+ # Putting everything in a separate group allows GTK to
+ # automatically split them into separate columns/pages, which is
+ # useful because we have lots of shortcuts, some with many keys
+ # that are very wide.
+ group = Gtk.ShortcutsGroup()
+ section.append(group)
+ # A hack to remove the title since we have no group naming.
+ child = group.get_first_child()
+ while child is not None:
+ child.set_visible(False)
+ child = child.get_next_sibling()
+
+ shortcut = Gtk.ShortcutsShortcut(
+ accelerator=' '.join(
+ self._normalize_shortcut(key)
+ for key in self.toolmanager.get_tool_keymap(name)
+ if self._is_valid_shortcut(key)),
+ title=tool.name,
+ subtitle=tool.description)
+ group.append(shortcut)
+
+ window = Gtk.ShortcutsWindow(
+ title='Help',
+ modal=True,
+ transient_for=self._figure.canvas.get_root())
+ window.set_child(section)
+
+ window.show()
+
+
+@backend_tools._register_tool_class(FigureCanvasGTK4)
+class ToolCopyToClipboardGTK4(backend_tools.ToolCopyToClipboardBase):
+ def trigger(self, *args, **kwargs):
+ with io.BytesIO() as f:
+ self.canvas.print_rgba(f)
+ w, h = self.canvas.get_width_height()
+ pb = GdkPixbuf.Pixbuf.new_from_data(f.getbuffer(),
+ GdkPixbuf.Colorspace.RGB, True,
+ 8, w, h, w*4)
+ clipboard = self.canvas.get_clipboard()
+ clipboard.set(pb)
+
+
+backend_tools._register_tool_class(
+ FigureCanvasGTK4, _backend_gtk.ConfigureSubplotsGTK)
+backend_tools._register_tool_class(
+ FigureCanvasGTK4, _backend_gtk.RubberbandGTK)
+Toolbar = ToolbarGTK4
+
+
+@_Backend.export
+class _BackendGTK4(_BackendGTK):
+ FigureCanvas = FigureCanvasGTK4
+ FigureManager = FigureManagerGTK4
diff --git a/lib/matplotlib/backends/backend_gtk4agg.py b/lib/matplotlib/backends/backend_gtk4agg.py
new file mode 100644
index 000000000000..b3439dc109cd
--- /dev/null
+++ b/lib/matplotlib/backends/backend_gtk4agg.py
@@ -0,0 +1,80 @@
+import numpy as np
+
+from .. import cbook
+try:
+ from . import backend_cairo
+except ImportError as e:
+ raise ImportError('backend Gtk4Agg requires cairo') from e
+from . import backend_agg, backend_gtk4
+from .backend_cairo import cairo
+from .backend_gtk4 import Gtk, _BackendGTK4
+from matplotlib import transforms
+
+
+class FigureCanvasGTK4Agg(backend_gtk4.FigureCanvasGTK4,
+ backend_agg.FigureCanvasAgg):
+ def __init__(self, figure):
+ backend_gtk4.FigureCanvasGTK4.__init__(self, figure)
+ self._bbox_queue = []
+
+ def on_draw_event(self, widget, ctx):
+ allocation = self.get_allocation()
+ w, h = allocation.width, allocation.height
+
+ if not len(self._bbox_queue):
+ Gtk.render_background(
+ self.get_style_context(), ctx,
+ allocation.x, allocation.y,
+ allocation.width, allocation.height)
+ bbox_queue = [transforms.Bbox([[0, 0], [w, h]])]
+ else:
+ bbox_queue = self._bbox_queue
+
+ ctx = backend_cairo._to_context(ctx)
+
+ for bbox in bbox_queue:
+ x = int(bbox.x0)
+ y = h - int(bbox.y1)
+ width = int(bbox.x1) - int(bbox.x0)
+ height = int(bbox.y1) - int(bbox.y0)
+
+ buf = cbook._unmultiplied_rgba8888_to_premultiplied_argb32(
+ np.asarray(self.copy_from_bbox(bbox)))
+ image = cairo.ImageSurface.create_for_data(
+ buf.ravel().data, cairo.FORMAT_ARGB32, width, height)
+ ctx.set_source_surface(image, x, y)
+ ctx.paint()
+
+ if len(self._bbox_queue):
+ self._bbox_queue = []
+
+ return False
+
+ def blit(self, bbox=None):
+ # If bbox is None, blit the entire canvas to gtk. Otherwise
+ # blit only the area defined by the bbox.
+ if bbox is None:
+ bbox = self.figure.bbox
+
+ allocation = self.get_allocation()
+ x = int(bbox.x0)
+ y = allocation.height - int(bbox.y1)
+ width = int(bbox.x1) - int(bbox.x0)
+ height = int(bbox.y1) - int(bbox.y0)
+
+ self._bbox_queue.append(bbox)
+ self.queue_draw_area(x, y, width, height)
+
+ def draw(self):
+ backend_agg.FigureCanvasAgg.draw(self)
+ super().draw()
+
+
+class FigureManagerGTK4Agg(backend_gtk4.FigureManagerGTK4):
+ pass
+
+
+@_BackendGTK4.export
+class _BackendGTK4Agg(_BackendGTK4):
+ FigureCanvas = FigureCanvasGTK4Agg
+ FigureManager = FigureManagerGTK4Agg
diff --git a/lib/matplotlib/backends/backend_gtk4cairo.py b/lib/matplotlib/backends/backend_gtk4cairo.py
new file mode 100644
index 000000000000..53d319392727
--- /dev/null
+++ b/lib/matplotlib/backends/backend_gtk4cairo.py
@@ -0,0 +1,36 @@
+from contextlib import nullcontext
+
+from . import backend_cairo, backend_gtk4
+from .backend_gtk4 import Gtk, _BackendGTK4
+
+
+class RendererGTK4Cairo(backend_cairo.RendererCairo):
+ def set_context(self, ctx):
+ self.gc.ctx = backend_cairo._to_context(ctx)
+
+
+class FigureCanvasGTK4Cairo(backend_gtk4.FigureCanvasGTK4,
+ backend_cairo.FigureCanvasCairo):
+
+ def __init__(self, figure):
+ super().__init__(figure)
+ self._renderer = RendererGTK4Cairo(self.figure.dpi)
+
+ def on_draw_event(self, widget, ctx):
+ with (self.toolbar._wait_cursor_for_draw_cm() if self.toolbar
+ else nullcontext()):
+ self._renderer.set_context(ctx)
+ allocation = self.get_allocation()
+ Gtk.render_background(
+ self.get_style_context(), ctx,
+ allocation.x, allocation.y,
+ allocation.width, allocation.height)
+ self._renderer.set_width_height(
+ allocation.width, allocation.height)
+ self._renderer.dpi = self.figure.dpi
+ self.figure.draw(self._renderer)
+
+
+@_BackendGTK4.export
+class _BackendGTK4Cairo(_BackendGTK4):
+ FigureCanvas = FigureCanvasGTK4Cairo
diff --git a/lib/matplotlib/backends/backend_pdf.py b/lib/matplotlib/backends/backend_pdf.py
index 9980d49af85b..bd0c370f1cba 100644
--- a/lib/matplotlib/backends/backend_pdf.py
+++ b/lib/matplotlib/backends/backend_pdf.py
@@ -1063,12 +1063,12 @@ def createType1Descriptor(self, t1font, fontfile):
return fontdescObject
- def _get_xobject_symbol_name(self, filename, symbol_name):
+ def _get_xobject_glyph_name(self, filename, glyph_name):
Fx = self.fontName(filename)
return "-".join([
Fx.name.decode(),
os.path.splitext(os.path.basename(filename))[0],
- symbol_name])
+ glyph_name])
_identityToUnicodeCMap = b"""/CIDInit /ProcSet findresource begin
12 dict begin
@@ -1204,7 +1204,7 @@ def get_char_width(charcode):
# Send the glyphs with ccode > 255 to the XObject dictionary,
# and the others to the font itself
if charname in multi_byte_chars:
- name = self._get_xobject_symbol_name(filename, charname)
+ name = self._get_xobject_glyph_name(filename, charname)
self.multi_byte_charprocs[name] = charprocObject
else:
charprocs[charname] = charprocObject
@@ -1347,7 +1347,7 @@ def embedTTFType42(font, characters, descriptor):
self.currentstream.write(stream)
self.endStream()
- name = self._get_xobject_symbol_name(filename, charname)
+ name = self._get_xobject_glyph_name(filename, charname)
self.multi_byte_charprocs[name] = charprocObject
# CIDToGIDMap stream
@@ -2417,8 +2417,8 @@ def draw_text(self, gc, x, y, s, prop, angle, ismath=False, mtext=None):
def _draw_xobject_glyph(self, font, fontsize, glyph_idx, x, y):
"""Draw a multibyte character from a Type 3 font as an XObject."""
- symbol_name = font.get_glyph_name(glyph_idx)
- name = self.file._get_xobject_symbol_name(font.fname, symbol_name)
+ glyph_name = font.get_glyph_name(glyph_idx)
+ name = self.file._get_xobject_glyph_name(font.fname, glyph_name)
self.file.output(
Op.gsave,
0.001 * fontsize, 0, 0, 0.001 * fontsize, x, y, Op.concat_matrix,
@@ -2793,7 +2793,7 @@ def print_pdf(self, filename, *,
file.close()
def draw(self):
- self.figure.draw_no_output()
+ self.figure.draw_without_rendering()
return super().draw()
diff --git a/lib/matplotlib/backends/backend_pgf.py b/lib/matplotlib/backends/backend_pgf.py
index 3f1cb7b172eb..2fa8c3251b12 100644
--- a/lib/matplotlib/backends/backend_pgf.py
+++ b/lib/matplotlib/backends/backend_pgf.py
@@ -600,6 +600,30 @@ def _print_pgf_path(self, gc, path, transform, rgbFace=None):
r"{\pgfqpoint{%fin}{%fin}}"
% coords)
+ # apply pgf decorators
+ sketch_params = gc.get_sketch_params() if gc else None
+ if sketch_params is not None:
+ # Only "length" directly maps to "segment length" in PGF's API.
+ # PGF uses "amplitude" to pass the combined deviation in both x-
+ # and y-direction, while matplotlib only varies the length of the
+ # wiggle along the line ("randomness" and "length" parameters)
+ # and has a separate "scale" argument for the amplitude.
+ # -> Use "randomness" as PRNG seed to allow the user to force the
+ # same shape on multiple sketched lines
+ scale, length, randomness = sketch_params
+ if scale is not None:
+ # make matplotlib and PGF rendering visually similar
+ length *= 0.5
+ scale *= 2
+ # PGF guarantees that repeated loading is a no-op
+ writeln(self.fh, r"\usepgfmodule{decorations}")
+ writeln(self.fh, r"\usepgflibrary{decorations.pathmorphing}")
+ writeln(self.fh, r"\pgfkeys{/pgf/decoration/.cd, "
+ f"segment length = {(length * f):f}in, "
+ f"amplitude = {(scale * f):f}in}}")
+ writeln(self.fh, f"\\pgfmathsetseed{{{int(randomness)}}}")
+ writeln(self.fh, r"\pgfdecoratecurrentpath{random steps}")
+
def _pgf_path_draw(self, stroke=True, fill=False):
actions = []
if stroke:
@@ -883,7 +907,7 @@ def get_renderer(self):
return RendererPgf(self.figure, None)
def draw(self):
- self.figure.draw_no_output()
+ self.figure.draw_without_rendering()
return super().draw()
diff --git a/lib/matplotlib/backends/backend_ps.py b/lib/matplotlib/backends/backend_ps.py
index f13e114a815b..c44f89c638d9 100644
--- a/lib/matplotlib/backends/backend_ps.py
+++ b/lib/matplotlib/backends/backend_ps.py
@@ -701,12 +701,12 @@ def draw_mathtext(self, gc, x, y, s, prop, angle):
lastfont = font.postscript_name, fontsize
self._pswriter.write(
f"/{font.postscript_name} {fontsize} selectfont\n")
- symbol_name = (
+ glyph_name = (
font.get_name_char(chr(num)) if isinstance(font, AFM) else
font.get_glyph_name(font.get_char_index(num)))
self._pswriter.write(
f"{ox:f} {oy:f} moveto\n"
- f"/{symbol_name} glyphshow\n")
+ f"/{glyph_name} glyphshow\n")
for ox, oy, w, h in rects:
self._pswriter.write(f"{ox} {oy} {w} {h} rectfill\n")
self._pswriter.write("grestore\n")
@@ -1119,7 +1119,7 @@ def _print_figure_tex(
_move_path_to_path_or_stream(tmpfile, outfile)
def draw(self):
- self.figure.draw_no_output()
+ self.figure.draw_without_rendering()
return super().draw()
diff --git a/lib/matplotlib/backends/backend_qt.py b/lib/matplotlib/backends/backend_qt.py
index 5b74176befff..ba8eb02becf8 100644
--- a/lib/matplotlib/backends/backend_qt.py
+++ b/lib/matplotlib/backends/backend_qt.py
@@ -333,7 +333,8 @@ def keyReleaseEvent(self, event):
def resizeEvent(self, event):
frame = sys._getframe()
- if frame.f_code is frame.f_back.f_code: # Prevent PyQt6 recursion.
+ # Prevent PyQt6 recursion, but sometimes frame.f_back is None
+ if frame.f_code is getattr(frame.f_back, 'f_code', None):
return
w = event.size().width() * self.device_pixel_ratio
h = event.size().height() * self.device_pixel_ratio
@@ -951,12 +952,14 @@ def set_message(self, s):
self.widgetForAction(self._message_action).setText(s)
+@backend_tools._register_tool_class(FigureCanvasQT)
class ConfigureSubplotsQt(backend_tools.ConfigureSubplotsBase):
def trigger(self, *args):
NavigationToolbar2QT.configure_subplots(
self._make_classic_style_pseudo_toolbar())
+@backend_tools._register_tool_class(FigureCanvasQT)
class SaveFigureQt(backend_tools.SaveFigureBase):
def trigger(self, *args):
NavigationToolbar2QT.save_figure(
@@ -970,6 +973,7 @@ def set_cursor(self, cursor):
self._make_classic_style_pseudo_toolbar(), cursor)
+@backend_tools._register_tool_class(FigureCanvasQT)
class RubberbandQt(backend_tools.RubberbandBase):
def draw_rubberband(self, x0, y0, x1, y1):
NavigationToolbar2QT.draw_rubberband(
@@ -980,24 +984,19 @@ def remove_rubberband(self):
self._make_classic_style_pseudo_toolbar())
+@backend_tools._register_tool_class(FigureCanvasQT)
class HelpQt(backend_tools.ToolHelpBase):
def trigger(self, *args):
QtWidgets.QMessageBox.information(None, "Help", self._get_help_html())
+@backend_tools._register_tool_class(FigureCanvasQT)
class ToolCopyToClipboardQT(backend_tools.ToolCopyToClipboardBase):
def trigger(self, *args, **kwargs):
pixmap = self.canvas.grab()
qApp.clipboard().setPixmap(pixmap)
-backend_tools.ToolSaveFigure = SaveFigureQt
-backend_tools.ToolConfigureSubplots = ConfigureSubplotsQt
-backend_tools.ToolRubberband = RubberbandQt
-backend_tools.ToolHelp = HelpQt
-backend_tools.ToolCopyToClipboard = ToolCopyToClipboardQT
-
-
@_Backend.export
class _BackendQT(_Backend):
FigureCanvas = FigureCanvasQT
diff --git a/lib/matplotlib/backends/backend_qtcairo.py b/lib/matplotlib/backends/backend_qtcairo.py
index 6d0a90b985b4..9619f4fdb686 100644
--- a/lib/matplotlib/backends/backend_qtcairo.py
+++ b/lib/matplotlib/backends/backend_qtcairo.py
@@ -13,6 +13,7 @@ def __init__(self, figure=None):
def draw(self):
if hasattr(self._renderer.gc, "ctx"):
+ self._renderer.dpi = self.figure.dpi
self.figure.draw(self._renderer)
super().draw()
@@ -23,6 +24,7 @@ def paintEvent(self, event):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
self._renderer.set_ctx_from_surface(surface)
self._renderer.set_width_height(width, height)
+ self._renderer.dpi = self.figure.dpi
self.figure.draw(self._renderer)
buf = self._renderer.gc.ctx.get_target().get_data()
if QT_API == "PyQt6":
diff --git a/lib/matplotlib/backends/backend_svg.py b/lib/matplotlib/backends/backend_svg.py
index 904cca7bf313..e4de85905ca7 100644
--- a/lib/matplotlib/backends/backend_svg.py
+++ b/lib/matplotlib/backends/backend_svg.py
@@ -1343,7 +1343,7 @@ def get_default_filetype(self):
return 'svg'
def draw(self):
- self.figure.draw_no_output()
+ self.figure.draw_without_rendering()
return super().draw()
diff --git a/lib/matplotlib/backends/backend_tkcairo.py b/lib/matplotlib/backends/backend_tkcairo.py
index a81fd0d92bb8..b4099db24828 100644
--- a/lib/matplotlib/backends/backend_tkcairo.py
+++ b/lib/matplotlib/backends/backend_tkcairo.py
@@ -18,6 +18,7 @@ def draw(self):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
self._renderer.set_ctx_from_surface(surface)
self._renderer.set_width_height(width, height)
+ self._renderer.dpi = self.figure.dpi
self.figure.draw(self._renderer)
buf = np.reshape(surface.get_data(), (height, width, 4))
_backend_tk.blit(
diff --git a/lib/matplotlib/backends/backend_wx.py b/lib/matplotlib/backends/backend_wx.py
index 16b152a51689..8b4ffd26e84e 100644
--- a/lib/matplotlib/backends/backend_wx.py
+++ b/lib/matplotlib/backends/backend_wx.py
@@ -515,6 +515,12 @@ def __init__(self, parent, id, figure=None):
self.Bind(wx.EVT_RIGHT_DOWN, self._onMouseButton)
self.Bind(wx.EVT_RIGHT_DCLICK, self._onMouseButton)
self.Bind(wx.EVT_RIGHT_UP, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX1_DOWN, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX1_UP, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX2_DOWN, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX2_UP, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX1_DCLICK, self._onMouseButton)
+ self.Bind(wx.EVT_MOUSE_AUX2_DCLICK, self._onMouseButton)
self.Bind(wx.EVT_MOUSEWHEEL, self._onMouseWheel)
self.Bind(wx.EVT_MOTION, self._onMotion)
self.Bind(wx.EVT_LEAVE_WINDOW, self._onLeave)
@@ -592,8 +598,8 @@ def _get_imagesave_wildcards(self):
@_api.delete_parameter("3.4", "origin")
def gui_repaint(self, drawDC=None, origin='WX'):
"""
- Performs update of the displayed image on the GUI canvas, using the
- supplied wx.PaintDC device context.
+ Update the displayed image on the GUI canvas, using the supplied
+ wx.PaintDC device context.
The 'WXAgg' backend sets origin accordingly.
"""
@@ -766,6 +772,8 @@ def _onMouseButton(self, event):
wx.MOUSE_BTN_LEFT: MouseButton.LEFT,
wx.MOUSE_BTN_MIDDLE: MouseButton.MIDDLE,
wx.MOUSE_BTN_RIGHT: MouseButton.RIGHT,
+ wx.MOUSE_BTN_AUX1: MouseButton.BACK,
+ wx.MOUSE_BTN_AUX2: MouseButton.FORWARD,
}
button = event.GetButton()
button = button_map.get(button, button)
@@ -1279,12 +1287,14 @@ def set_message(self, s):
self._label_text.SetLabel(s)
+@backend_tools._register_tool_class(_FigureCanvasWxBase)
class ConfigureSubplotsWx(backend_tools.ConfigureSubplotsBase):
def trigger(self, *args):
NavigationToolbar2Wx.configure_subplots(
self._make_classic_style_pseudo_toolbar())
+@backend_tools._register_tool_class(_FigureCanvasWxBase)
class SaveFigureWx(backend_tools.SaveFigureBase):
def trigger(self, *args):
NavigationToolbar2Wx.save_figure(
@@ -1298,6 +1308,7 @@ def set_cursor(self, cursor):
self._make_classic_style_pseudo_toolbar(), cursor)
+@backend_tools._register_tool_class(_FigureCanvasWxBase)
class RubberbandWx(backend_tools.RubberbandBase):
def draw_rubberband(self, x0, y0, x1, y1):
NavigationToolbar2Wx.draw_rubberband(
@@ -1353,12 +1364,14 @@ def show(cls, parent, help_entries):
cls._instance.Show()
+@backend_tools._register_tool_class(_FigureCanvasWxBase)
class HelpWx(backend_tools.ToolHelpBase):
def trigger(self, *args):
_HelpDialog.show(self.figure.canvas.GetTopLevelParent(),
self._get_help_entries())
+@backend_tools._register_tool_class(_FigureCanvasWxBase)
class ToolCopyToClipboardWx(backend_tools.ToolCopyToClipboardBase):
def trigger(self, *args, **kwargs):
if not self.canvas._isDrawn:
@@ -1371,13 +1384,6 @@ def trigger(self, *args, **kwargs):
wx.TheClipboard.Close()
-backend_tools.ToolSaveFigure = SaveFigureWx
-backend_tools.ToolConfigureSubplots = ConfigureSubplotsWx
-backend_tools.ToolRubberband = RubberbandWx
-backend_tools.ToolHelp = HelpWx
-backend_tools.ToolCopyToClipboard = ToolCopyToClipboardWx
-
-
@_Backend.export
class _BackendWx(_Backend):
FigureCanvas = FigureCanvasWx
diff --git a/lib/matplotlib/backends/backend_wxcairo.py b/lib/matplotlib/backends/backend_wxcairo.py
index 6cb0b9d68414..230ebcf527d1 100644
--- a/lib/matplotlib/backends/backend_wxcairo.py
+++ b/lib/matplotlib/backends/backend_wxcairo.py
@@ -35,6 +35,7 @@ def draw(self, drawDC=None):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
self._renderer.set_ctx_from_surface(surface)
self._renderer.set_width_height(width, height)
+ self._renderer.dpi = self.figure.dpi
self.figure.draw(self._renderer)
self.bitmap = wxcairo.BitmapFromImageSurface(surface)
self._isDrawn = True
diff --git a/lib/matplotlib/cbook/__init__.py b/lib/matplotlib/cbook/__init__.py
index 109b9ea69cc9..9d0fcadc431c 100644
--- a/lib/matplotlib/cbook/__init__.py
+++ b/lib/matplotlib/cbook/__init__.py
@@ -12,6 +12,7 @@
import functools
import gzip
import itertools
+import math
import operator
import os
from pathlib import Path
@@ -50,8 +51,8 @@ def _get_running_interactive_framework():
Returns
-------
Optional[str]
- One of the following values: "qt", "gtk3", "wx", "tk", "macosx",
- "headless", ``None``.
+ One of the following values: "qt", "gtk3", "gtk4", "wx", "tk",
+ "macosx", "headless", ``None``.
"""
# Use ``sys.modules.get(name)`` rather than ``name in sys.modules`` as
# entries can also have been explicitly set to None.
@@ -64,8 +65,13 @@ def _get_running_interactive_framework():
if QtWidgets and QtWidgets.QApplication.instance():
return "qt"
Gtk = sys.modules.get("gi.repository.Gtk")
- if Gtk and Gtk.main_level():
- return "gtk3"
+ if Gtk:
+ if Gtk.MAJOR_VERSION == 4:
+ from gi.repository import GLib
+ if GLib.main_depth():
+ return "gtk4"
+ if Gtk.MAJOR_VERSION == 3 and Gtk.main_level():
+ return "gtk3"
wx = sys.modules.get("wx")
if wx and wx.GetApp():
return "wx"
@@ -2201,6 +2207,23 @@ def _format_approx(number, precision):
return f'{number:.{precision}f}'.rstrip('0').rstrip('.') or '0'
+def _g_sig_digits(value, delta):
+ """
+ Return the number of significant digits to %g-format *value*, assuming that
+ it is known with an error of *delta*.
+ """
+ # If e.g. value = 45.67 and delta = 0.02, then we want to round to 2 digits
+ # after the decimal point (floor(log10(0.02)) = -2); 45.67 contributes 2
+ # digits before the decimal point (floor(log10(45.67)) + 1 = 2): the total
+ # is 4 significant digits. A value of 0 contributes 1 "digit" before the
+ # decimal point.
+ # For inf or nan, the precision doesn't matter.
+ return max(
+ 0,
+ (math.floor(math.log10(abs(value))) + 1 if value else 1)
+ - math.floor(math.log10(delta))) if math.isfinite(value) else 0
+
+
def _unikey_or_keysym_to_mplkey(unikey, keysym):
"""
Convert a Unicode key or X keysym to a Matplotlib key name.
diff --git a/lib/matplotlib/cm.py b/lib/matplotlib/cm.py
index 0af2f0f327d9..76c1c5d4f7f2 100644
--- a/lib/matplotlib/cm.py
+++ b/lib/matplotlib/cm.py
@@ -337,7 +337,7 @@ def __init__(self, norm=None, cmap=None):
The colormap used to map normalized data values to RGBA colors.
"""
self._A = None
- self.norm = None # So that the setter knows we're initializing.
+ self._norm = None # So that the setter knows we're initializing.
self.set_norm(norm) # The Normalize instance of this ScalarMappable.
self.cmap = None # So that the setter knows we're initializing.
self.set_cmap(cmap) # The Colormap instance of this ScalarMappable.
@@ -496,6 +496,8 @@ def set_clim(self, vmin=None, vmax=None):
.. ACCEPTS: (vmin: float, vmax: float)
"""
+ # If the norm's limits are updated self.changed() will be called
+ # through the callbacks attached to the norm
if vmax is None:
try:
vmin, vmax = vmin
@@ -505,7 +507,6 @@ def set_clim(self, vmin=None, vmax=None):
self.norm.vmin = colors._sanitize_extrema(vmin)
if vmax is not None:
self.norm.vmax = colors._sanitize_extrema(vmax)
- self.changed()
def get_alpha(self):
"""
@@ -531,6 +532,30 @@ def set_cmap(self, cmap):
if not in_init:
self.changed() # Things are not set up properly yet.
+ @property
+ def norm(self):
+ return self._norm
+
+ @norm.setter
+ def norm(self, norm):
+ _api.check_isinstance((colors.Normalize, None), norm=norm)
+ if norm is None:
+ norm = colors.Normalize()
+
+ if norm is self.norm:
+ # We aren't updating anything
+ return
+
+ in_init = self.norm is None
+ # Remove the current callback and connect to the new one
+ if not in_init:
+ self.norm.callbacks.disconnect(self._id_norm)
+ self._norm = norm
+ self._id_norm = self.norm.callbacks.connect('changed',
+ self.changed)
+ if not in_init:
+ self.changed()
+
def set_norm(self, norm):
"""
Set the normalization instance.
@@ -545,13 +570,7 @@ def set_norm(self, norm):
the norm of the mappable will reset the norm, locator, and formatters
on the colorbar to default.
"""
- _api.check_isinstance((colors.Normalize, None), norm=norm)
- in_init = self.norm is None
- if norm is None:
- norm = colors.Normalize()
self.norm = norm
- if not in_init:
- self.changed() # Things are not set up properly yet.
def autoscale(self):
"""
@@ -560,8 +579,9 @@ def autoscale(self):
"""
if self._A is None:
raise TypeError('You must first set_array for mappable')
+ # If the norm's limits are updated self.changed() will be called
+ # through the callbacks attached to the norm
self.norm.autoscale(self._A)
- self.changed()
def autoscale_None(self):
"""
@@ -570,8 +590,9 @@ def autoscale_None(self):
"""
if self._A is None:
raise TypeError('You must first set_array for mappable')
+ # If the norm's limits are updated self.changed() will be called
+ # through the callbacks attached to the norm
self.norm.autoscale_None(self._A)
- self.changed()
def changed(self):
"""
diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py
index 459b14f6c5a7..a5439bf8ea75 100644
--- a/lib/matplotlib/colorbar.py
+++ b/lib/matplotlib/colorbar.py
@@ -471,6 +471,7 @@ def __init__(self, ax, mappable=None, *, cmap=None,
self.ax.add_collection(self.dividers)
self.locator = None
+ self.minorlocator = None
self.formatter = None
self.__scale = None # linear, log10 for now. Hopefully more?
@@ -991,6 +992,12 @@ def remove(self):
If the colorbar was created with ``use_gridspec=True`` the previous
gridspec is restored.
"""
+ if hasattr(self.ax, '_colorbar_info'):
+ parents = self.ax._colorbar_info['parents']
+ for a in parents:
+ if self.ax in a._colorbars:
+ a._colorbars.remove(self.ax)
+
self.ax.remove()
self.mappable.callbacks.disconnect(self.mappable.colorbar_cid)
@@ -1096,7 +1103,7 @@ def _mesh(self):
# vmax of the colorbar, not the norm. This allows the situation
# where the colormap has a narrower range than the colorbar, to
# accommodate extra contours:
- norm = copy.copy(self.norm)
+ norm = copy.deepcopy(self.norm)
norm.vmin = self.vmin
norm.vmax = self.vmax
x = np.array([0.0, 1.0])
@@ -1197,8 +1204,9 @@ def _proportional_y(self):
a proportional colorbar, plus extension lengths if required:
"""
if isinstance(self.norm, colors.BoundaryNorm):
- y = (self._boundaries - self._boundaries[0])
- y = y / (self._boundaries[-1] - self._boundaries[0])
+ y = (self._boundaries - self._boundaries[self._inside][0])
+ y = y / (self._boundaries[self._inside][-1] -
+ self._boundaries[self._inside][0])
# need yscaled the same as the axes scale to get
# the extend lengths.
if self.spacing == 'uniform':
diff --git a/lib/matplotlib/colors.py b/lib/matplotlib/colors.py
index f75e069d3083..0843bd5f592c 100644
--- a/lib/matplotlib/colors.py
+++ b/lib/matplotlib/colors.py
@@ -390,8 +390,17 @@ def to_hex(c, keep_alpha=False):
"""
Convert *c* to a hex color.
- Uses the ``#rrggbb`` format if *keep_alpha* is False (the default),
- ``#rrggbbaa`` otherwise.
+ Parameters
+ ----------
+ c : :doc:`color ` or `numpy.ma.masked`
+
+ keep_alpha: bool, default: False
+ If False, use the ``#rrggbb`` format, otherwise use ``#rrggbbaa``.
+
+ Returns
+ -------
+ str
+ ``#rrggbb`` or ``#rrggbbaa`` hex color string
"""
c = to_rgba(c)
if not keep_alpha:
@@ -1123,10 +1132,50 @@ def __init__(self, vmin=None, vmax=None, clip=False):
-----
Returns 0 if ``vmin == vmax``.
"""
- self.vmin = _sanitize_extrema(vmin)
- self.vmax = _sanitize_extrema(vmax)
- self.clip = clip
- self._scale = None # will default to LinearScale for colorbar
+ self._vmin = _sanitize_extrema(vmin)
+ self._vmax = _sanitize_extrema(vmax)
+ self._clip = clip
+ self._scale = None
+ self.callbacks = cbook.CallbackRegistry()
+
+ @property
+ def vmin(self):
+ return self._vmin
+
+ @vmin.setter
+ def vmin(self, value):
+ value = _sanitize_extrema(value)
+ if value != self._vmin:
+ self._vmin = value
+ self._changed()
+
+ @property
+ def vmax(self):
+ return self._vmax
+
+ @vmax.setter
+ def vmax(self, value):
+ value = _sanitize_extrema(value)
+ if value != self._vmax:
+ self._vmax = value
+ self._changed()
+
+ @property
+ def clip(self):
+ return self._clip
+
+ @clip.setter
+ def clip(self, value):
+ if value != self._clip:
+ self._clip = value
+ self._changed()
+
+ def _changed(self):
+ """
+ Call this whenever the norm is changed to notify all the
+ callback listeners to the 'changed' signal.
+ """
+ self.callbacks.process('changed')
@staticmethod
def process_value(value):
@@ -1273,7 +1322,7 @@ def __init__(self, vcenter, vmin=None, vmax=None):
"""
super().__init__(vmin=vmin, vmax=vmax)
- self.vcenter = vcenter
+ self._vcenter = vcenter
if vcenter is not None and vmax is not None and vcenter >= vmax:
raise ValueError('vmin, vcenter, and vmax must be in '
'ascending order')
@@ -1281,6 +1330,16 @@ def __init__(self, vcenter, vmin=None, vmax=None):
raise ValueError('vmin, vcenter, and vmax must be in '
'ascending order')
+ @property
+ def vcenter(self):
+ return self._vcenter
+
+ @vcenter.setter
+ def vcenter(self, value):
+ if value != self._vcenter:
+ self._vcenter = value
+ self._changed()
+
def autoscale_None(self, A):
"""
Get vmin and vmax, and then clip at vcenter
@@ -1387,7 +1446,9 @@ def vcenter(self):
@vcenter.setter
def vcenter(self, vcenter):
- self._vcenter = vcenter
+ if vcenter != self._vcenter:
+ self._vcenter = vcenter
+ self._changed()
if self.vmax is not None:
# recompute halfrange assuming vmin and vmax represent
# min and max of data
@@ -2324,7 +2385,7 @@ def blend_soft_light(self, rgb, intensity):
def blend_overlay(self, rgb, intensity):
"""
- Combines an rgb image with an intensity map using "overlay" blending.
+ Combine an rgb image with an intensity map using "overlay" blending.
Parameters
----------
diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py
index 7dec80943993..4d124ce8c57c 100644
--- a/lib/matplotlib/contour.py
+++ b/lib/matplotlib/contour.py
@@ -1090,6 +1090,15 @@ def _make_paths(self, segs, kinds):
in zip(segs, kinds)]
def changed(self):
+ if not hasattr(self, "cvalues"):
+ # Just return after calling the super() changed function
+ cm.ScalarMappable.changed(self)
+ return
+ # Force an autoscale immediately because self.to_rgba() calls
+ # autoscale_None() internally with the data passed to it,
+ # so if vmin/vmax are not set yet, this would override them with
+ # content from *cvalues* rather than levels like we want
+ self.norm.autoscale_None(self.levels)
tcolors = [(tuple(rgba),)
for rgba in self.to_rgba(self.cvalues, alpha=self.alpha)]
self.tcolors = tcolors
diff --git a/lib/matplotlib/dates.py b/lib/matplotlib/dates.py
index 67aff6270815..0766156d64ab 100644
--- a/lib/matplotlib/dates.py
+++ b/lib/matplotlib/dates.py
@@ -21,8 +21,8 @@
.. seealso::
- :doc:`/gallery/text_labels_and_annotations/date`
- - :doc:`/gallery/ticks_and_spines/date_concise_formatter`
- - :doc:`/gallery/ticks_and_spines/date_demo_convert`
+ - :doc:`/gallery/ticks/date_concise_formatter`
+ - :doc:`/gallery/ticks/date_demo_convert`
.. _date-format:
@@ -38,7 +38,7 @@
20 microseconds for the rest of the allowable range of dates (year 0001 to
9999). The epoch can be changed at import time via `.dates.set_epoch` or
:rc:`dates.epoch` to other dates if necessary; see
-:doc:`/gallery/ticks_and_spines/date_precision_and_epochs` for a discussion.
+:doc:`/gallery/ticks/date_precision_and_epochs` for a discussion.
.. note::
@@ -144,7 +144,7 @@
* `RRuleLocator`: Locate using a `matplotlib.dates.rrulewrapper`.
`.rrulewrapper` is a simple wrapper around dateutil_'s `dateutil.rrule` which
allow almost arbitrary date tick specifications. See :doc:`rrule example
- `.
+ `.
* `AutoDateLocator`: On autoscale, this class picks the best `DateLocator`
(e.g., `RRuleLocator`) to set the view limits and the tick locations. If
@@ -271,7 +271,7 @@ def set_epoch(epoch):
`~.dates.set_epoch` must be called before any dates are converted
(i.e. near the import section) or a RuntimeError will be raised.
- See also :doc:`/gallery/ticks_and_spines/date_precision_and_epochs`.
+ See also :doc:`/gallery/ticks/date_precision_and_epochs`.
Parameters
----------
@@ -683,7 +683,7 @@ class ConciseDateFormatter(ticker.Formatter):
Examples
--------
- See :doc:`/gallery/ticks_and_spines/date_concise_formatter`
+ See :doc:`/gallery/ticks/date_concise_formatter`
.. plot::
@@ -1659,7 +1659,7 @@ class MicrosecondLocator(DateLocator):
If you really must use datetime.datetime() or similar and still
need microsecond precision, change the time origin via
`.dates.set_epoch` to something closer to the dates being plotted.
- See :doc:`/gallery/ticks_and_spines/date_precision_and_epochs`.
+ See :doc:`/gallery/ticks/date_precision_and_epochs`.
"""
def __init__(self, interval=1, tz=None):
@@ -1890,44 +1890,32 @@ def axisinfo(self, unit, axis):
default_limits=(datemin, datemax))
-class _rcParam_helper:
+class _SwitchableDateConverter:
"""
- This helper class is so that we can set the converter for dates
- via the validator for the rcParams `date.converter` and
- `date.interval_multiples`. Never instatiated.
+ Helper converter-like object that generates and dispatches to
+ temporary ConciseDateConverter or DateConverter instances based on
+ :rc:`date.converter` and :rc:`date.interval_multiples`.
"""
- conv_st = 'auto'
- int_mult = True
-
- @classmethod
- def set_converter(cls, s):
- """Called by validator for rcParams date.converter"""
- if s not in ['concise', 'auto']:
- raise ValueError('Converter must be one of "concise" or "auto"')
- cls.conv_st = s
- cls.register_converters()
-
- @classmethod
- def set_int_mult(cls, b):
- """Called by validator for rcParams date.interval_multiples"""
- cls.int_mult = b
- cls.register_converters()
-
- @classmethod
- def register_converters(cls):
- """
- Helper to register the date converters when rcParams `date.converter`
- and `date.interval_multiples` are changed. Called by the helpers
- above.
- """
- if cls.conv_st == 'concise':
- converter = ConciseDateConverter
- else:
- converter = DateConverter
+ @staticmethod
+ def _get_converter():
+ converter_cls = {
+ "concise": ConciseDateConverter, "auto": DateConverter}[
+ mpl.rcParams["date.converter"]]
+ interval_multiples = mpl.rcParams["date.interval_multiples"]
+ return converter_cls(interval_multiples=interval_multiples)
+
+ def axisinfo(self, *args, **kwargs):
+ return self._get_converter().axisinfo(*args, **kwargs)
+
+ def default_units(self, *args, **kwargs):
+ return self._get_converter().default_units(*args, **kwargs)
+
+ def convert(self, *args, **kwargs):
+ return self._get_converter().convert(*args, **kwargs)
+
- interval_multiples = cls.int_mult
- convert = converter(interval_multiples=interval_multiples)
- units.registry[np.datetime64] = convert
- units.registry[datetime.date] = convert
- units.registry[datetime.datetime] = convert
+units.registry[np.datetime64] = \
+ units.registry[datetime.date] = \
+ units.registry[datetime.datetime] = \
+ _SwitchableDateConverter()
diff --git a/lib/matplotlib/docstring.py b/lib/matplotlib/docstring.py
index e1eaca32349e..1beb6a17eb2a 100644
--- a/lib/matplotlib/docstring.py
+++ b/lib/matplotlib/docstring.py
@@ -1,5 +1,7 @@
import inspect
+from . import _api
+
class Substitution:
"""
@@ -45,12 +47,6 @@ def update(self, *args, **kwargs):
self.params.update(*args, **kwargs)
-def _recursive_subclasses(cls):
- yield cls
- for subcls in cls.__subclasses__():
- yield from _recursive_subclasses(subcls)
-
-
class _ArtistKwdocLoader(dict):
def __missing__(self, key):
if not key.endswith(":kwdoc"):
@@ -58,7 +54,7 @@ def __missing__(self, key):
name = key[:-len(":kwdoc")]
from matplotlib.artist import Artist, kwdoc
try:
- cls, = [cls for cls in _recursive_subclasses(Artist)
+ cls, = [cls for cls in _api.recursive_subclasses(Artist)
if cls.__name__ == name]
except ValueError as e:
raise KeyError(key) from e
diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py
index 117c60aa786d..3207a01de8be 100644
--- a/lib/matplotlib/dviread.py
+++ b/lib/matplotlib/dviread.py
@@ -84,8 +84,6 @@ def _arg(nbytes, signed, dvi, _):
def _arg_slen(dvi, delta):
"""
- Signed, length *delta*
-
Read *delta* bytes, returning None if *delta* is zero, and the bytes
interpreted as a signed integer otherwise.
"""
@@ -96,26 +94,20 @@ def _arg_slen(dvi, delta):
def _arg_slen1(dvi, delta):
"""
- Signed, length *delta*+1
-
Read *delta*+1 bytes, returning the bytes interpreted as signed.
"""
- return dvi._arg(delta+1, True)
+ return dvi._arg(delta + 1, True)
def _arg_ulen1(dvi, delta):
"""
- Unsigned length *delta*+1
-
Read *delta*+1 bytes, returning the bytes interpreted as unsigned.
"""
- return dvi._arg(delta+1, False)
+ return dvi._arg(delta + 1, False)
def _arg_olen1(dvi, delta):
"""
- Optionally signed, length *delta*+1
-
Read *delta*+1 bytes, returning the bytes interpreted as
unsigned integer for 0<=*delta*<3 and signed if *delta*==3.
"""
@@ -139,30 +131,30 @@ def _dispatch(table, min, max=None, state=None, args=('raw',)):
matches *state* if not None, reads arguments from the file according
to *args*.
- *table*
- the dispatch table to be filled in
-
- *min*
- minimum opcode for calling this function
-
- *max*
- maximum opcode for calling this function, None if only *min* is allowed
-
- *state*
- state of the Dvi object in which these opcodes are allowed
-
- *args*
- sequence of argument specifications:
-
- ``'raw'``: opcode minus minimum
- ``'u1'``: read one unsigned byte
- ``'u4'``: read four bytes, treat as an unsigned number
- ``'s4'``: read four bytes, treat as a signed number
- ``'slen'``: read (opcode - minimum) bytes, treat as signed
- ``'slen1'``: read (opcode - minimum + 1) bytes, treat as signed
- ``'ulen1'``: read (opcode - minimum + 1) bytes, treat as unsigned
- ``'olen1'``: read (opcode - minimum + 1) bytes, treat as unsigned
- if under four bytes, signed if four bytes
+ Parameters
+ ----------
+ table : dict[int, callable]
+ The dispatch table to be filled in.
+
+ min, max : int
+ Range of opcodes that calls the registered function; *max* defaults to
+ *min*.
+
+ state : _dvistate, optional
+ State of the Dvi object in which these opcodes are allowed.
+
+ args : list[str], default: ['raw']
+ Sequence of argument specifications:
+
+ - 'raw': opcode minus minimum
+ - 'u1': read one unsigned byte
+ - 'u4': read four bytes, treat as an unsigned number
+ - 's4': read four bytes, treat as a signed number
+ - 'slen': read (opcode - minimum) bytes, treat as signed
+ - 'slen1': read (opcode - minimum + 1) bytes, treat as signed
+ - 'ulen1': read (opcode - minimum + 1) bytes, treat as unsigned
+ - 'olen1': read (opcode - minimum + 1) bytes, treat as unsigned
+ if under four bytes, signed if four bytes
"""
def decorate(method):
get_args = [_arg_mapping[x] for x in args]
@@ -185,6 +177,7 @@ def wrapper(self, byte):
class Dvi:
"""
A reader for a dvi ("device-independent") file, as produced by TeX.
+
The current implementation can only iterate through pages in order,
and does not even attempt to verify the postamble.
@@ -956,8 +949,9 @@ def _parse_and_cache_line(self, line):
def _parse_enc(path):
r"""
- Parses a \*.enc file referenced from a psfonts.map style file.
- The format this class understands is a very limited subset of PostScript.
+ Parse a \*.enc file referenced from a psfonts.map style file.
+
+ The format supported by this function is a tiny subset of PostScript.
Parameters
----------
diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py
index abe8ec694922..b70dda7e3d7a 100644
--- a/lib/matplotlib/figure.py
+++ b/lib/matplotlib/figure.py
@@ -928,11 +928,15 @@ def _break_share_link(ax, grouper):
self.stale = True
self._localaxes.remove(ax)
+ # Break link between any shared axes
for name in ax._axis_names:
last_ax = _break_share_link(ax, ax._shared_axes[name])
if last_ax is not None:
_reset_locators_and_formatters(getattr(last_ax, f"{name}axis"))
+ # Break link between any twinned axes
+ _break_share_link(ax, ax._twinned_axes)
+
# Note: in the docstring below, the newlines in the examples after the
# calls to legend() allow replacing it with figlegend() to generate the
# docstring of pyplot.figlegend.
@@ -2282,6 +2286,7 @@ def __init__(self,
facecolor=facecolor, edgecolor=edgecolor, linewidth=linewidth,
# Don't let the figure patch influence bbox calculation.
in_layout=False)
+ self._linewidth = linewidth
self._set_artist_props(self.patch)
self.patch.set_antialiased(False)
@@ -2736,13 +2741,20 @@ def set_figheight(self, val, forward=True):
"""
self.set_size_inches(self.get_figwidth(), val, forward=forward)
- def clf(self, keep_observers=False):
+ def clf(self, keep_observers=False, refetch_rcparams=False):
"""
Clear the figure.
- Set *keep_observers* to True if, for example,
- a gui widget is tracking the Axes in the figure.
+ Parameters
+ ----------
+ keep_observers: bool, optional
+ Set to True if, for example, a GUI widget is tracking the Axes in
+ the figure.
+ refetch_rcparams: bool, optional
+ Set to True to refetch rcParams and update existing Figure
+ parameters to match.
"""
+
self.suppressComposite = None
self.callbacks = cbook.CallbackRegistry()
@@ -2766,11 +2778,62 @@ def clf(self, keep_observers=False):
self._supxlabel = None
self._supylabel = None
+ if refetch_rcparams:
+ # if refetching rcparams, store their vals in local vars
+ figsize = mpl.rcParams['figure.figsize']
+ dpi = mpl.rcParams['figure.dpi']
+ facecolor = mpl.rcParams['figure.facecolor']
+ edgecolor = mpl.rcParams['figure.edgecolor']
+ frameon = mpl.rcParams['figure.frameon']
+ tight = mpl.rcParams['figure.autolayout']
+ constrained = mpl.rcParams['figure.constrained_layout.use']
+ # then utilize local vars to update Figure attributes...
+ # figsize adjustments
+ if not (
+ np.isfinite(figsize).all()
+ or (np.array(figsize) < 0).any()
+ ):
+ raise ValueError(
+ f"figure size must be positive finite not {figsize}"
+ )
+ self.bbox_inches = Bbox.from_bounds(0, 0, *figsize)
+ # dpi adjustments
+ self.dpi_scale_trans = Affine2D().scale(dpi)
+ self._dpi = dpi
+ self.bbox = TransformedBbox(self.bbox_inches, self.dpi_scale_trans)
+ self.figbbox = self.bbox
+ self.transFigure = BboxTransformTo(self.bbox)
+ self.transSubfigure = self.transFigure
+ # facecolor and edgecolor adjustments
+ self.set_facecolor(facecolor)
+ self.set_edgecolor(edgecolor)
+ # frameon adjustments, keeping linewidth
+ self.patch = Rectangle(
+ xy=(0, 0), width=1, height=1, visible=frameon,
+ facecolor=facecolor, edgecolor=edgecolor,
+ linewidth=self._linewidth,
+ # Don't let the figure patch influence bbox calculation.
+ in_layout=False)
+ self._set_artist_props(self.patch)
+ self.patch.set_antialiased(False)
+ # tight layout call using tight rcparam
+ self._tight = bool(tight)
+ self._tight_parameters = tight if isinstance(tight, dict) else {}
+ # constrained layout call using rcparam
+ self._constrained = bool(constrained)
+ if isinstance(constrained, dict):
+ self.set_constrained_layout_pads(**constrained)
+ else:
+ self.set_constrained_layout_pads()
+
self.stale = True
- def clear(self, keep_observers=False):
+ def clear(self, keep_observers=False, refetch_rcparams=False):
"""Clear the figure -- synonym for `clf`."""
- self.clf(keep_observers=keep_observers)
+ self.clf(
+ keep_observers=keep_observers,
+ refetch_rcparams=refetch_rcparams
+ )
@_finalize_rasterization
@allow_rasterization
@@ -2808,7 +2871,7 @@ def draw(self, renderer):
self.canvas.draw_event(renderer)
- def draw_no_output(self):
+ def draw_without_rendering(self):
"""
Draw the figure with no output. Useful to get the final size of
artists that require a draw before their size is known (e.g. text).
diff --git a/lib/matplotlib/gridspec.py b/lib/matplotlib/gridspec.py
index 752048d64a59..74b35d41797d 100644
--- a/lib/matplotlib/gridspec.py
+++ b/lib/matplotlib/gridspec.py
@@ -490,11 +490,19 @@ def __init__(self, nrows, ncols,
wspace=None, hspace=None,
height_ratios=None, width_ratios=None):
"""
- The number of rows and number of columns of the grid need to
- be set. An instance of SubplotSpec is also needed to be set
- from which the layout parameters will be inherited. The wspace
- and hspace of the layout can be optionally specified or the
- default values (from the figure or rcParams) will be used.
+ Parameters
+ ----------
+ nrows, ncols : int
+ Number of rows and number of columns of the grid.
+ subplot_spec : SubplotSpec
+ Spec from which the layout parameters are inherited.
+ wspace, hspace : float, optional
+ See `GridSpec` for more details. If not specified default values
+ (from the figure or rcParams) are used.
+ height_ratios : array-like of length *nrows*, optional
+ See `GridSpecBase` for details.
+ width_ratios : array-like of length *ncols*, optional
+ See `GridSpecBase` for details.
"""
self._wspace = wspace
self._hspace = hspace
diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py
index ca5b7da5f808..2036bf7e17c9 100644
--- a/lib/matplotlib/image.py
+++ b/lib/matplotlib/image.py
@@ -537,11 +537,14 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0,
if isinstance(self.norm, mcolors.LogNorm) and s_vmin <= 0:
# Don't give 0 or negative values to LogNorm
s_vmin = np.finfo(scaled_dtype).eps
- with cbook._setattr_cm(self.norm,
- vmin=s_vmin,
- vmax=s_vmax,
- ):
- output = self.norm(resampled_masked)
+ # Block the norm from sending an update signal during the
+ # temporary vmin/vmax change
+ with self.norm.callbacks.blocked():
+ with cbook._setattr_cm(self.norm,
+ vmin=s_vmin,
+ vmax=s_vmax,
+ ):
+ output = self.norm(resampled_masked)
else:
if A.ndim == 2: # _interpolation_stage == 'rgba'
self.norm.autoscale_None(A)
diff --git a/lib/matplotlib/legend.py b/lib/matplotlib/legend.py
index 09218431b0cb..c03030abf7f3 100644
--- a/lib/matplotlib/legend.py
+++ b/lib/matplotlib/legend.py
@@ -388,17 +388,20 @@ def __init__(
#: instance.
self._custom_handler_map = handler_map
- locals_view = locals()
- for name in ["numpoints", "markerscale", "shadow", "columnspacing",
- "scatterpoints", "handleheight", 'borderpad',
- 'labelspacing', 'handlelength', 'handletextpad',
- 'borderaxespad']:
- if locals_view[name] is None:
- value = mpl.rcParams["legend." + name]
- else:
- value = locals_view[name]
- setattr(self, name, value)
- del locals_view
+ def val_or_rc(val, rc_name):
+ return val if val is not None else mpl.rcParams[rc_name]
+
+ self.numpoints = val_or_rc(numpoints, 'legend.numpoints')
+ self.markerscale = val_or_rc(markerscale, 'legend.markerscale')
+ self.scatterpoints = val_or_rc(scatterpoints, 'legend.scatterpoints')
+ self.borderpad = val_or_rc(borderpad, 'legend.borderpad')
+ self.labelspacing = val_or_rc(labelspacing, 'legend.labelspacing')
+ self.handlelength = val_or_rc(handlelength, 'legend.handlelength')
+ self.handleheight = val_or_rc(handleheight, 'legend.handleheight')
+ self.handletextpad = val_or_rc(handletextpad, 'legend.handletextpad')
+ self.borderaxespad = val_or_rc(borderaxespad, 'legend.borderaxespad')
+ self.columnspacing = val_or_rc(columnspacing, 'legend.columnspacing')
+ self.shadow = val_or_rc(shadow, 'legend.shadow')
# trim handles and labels if illegal label...
_lab, _hand = [], []
for label, handle in zip(labels, handles):
@@ -654,38 +657,24 @@ def draw(self, renderer):
@classmethod
def get_default_handler_map(cls):
- """
- A class method that returns the default handler map.
- """
+ """Return the global default handler map, shared by all legends."""
return cls._default_handler_map
@classmethod
def set_default_handler_map(cls, handler_map):
- """
- A class method to set the default handler map.
- """
+ """Set the global default handler map, shared by all legends."""
cls._default_handler_map = handler_map
@classmethod
def update_default_handler_map(cls, handler_map):
- """
- A class method to update the default handler map.
- """
+ """Update the global default handler map, shared by all legends."""
cls._default_handler_map.update(handler_map)
def get_legend_handler_map(self):
- """
- Return the handler map.
- """
-
+ """Return this legend instance's handler map."""
default_handler_map = self.get_default_handler_map()
-
- if self._custom_handler_map:
- hm = default_handler_map.copy()
- hm.update(self._custom_handler_map)
- return hm
- else:
- return default_handler_map
+ return ({**default_handler_map, **self._custom_handler_map}
+ if self._custom_handler_map else default_handler_map)
@staticmethod
def get_legend_handler(legend_handler_map, orig_handle):
@@ -1108,11 +1097,7 @@ def get_draggable(self):
# Helper functions to parse legend arguments for both `figure.legend` and
# `axes.legend`:
def _get_legend_handles(axs, legend_handler_map=None):
- """
- Return a generator of artists that can be used as handles in
- a legend.
-
- """
+ """Yield artists that can be used as handles in a legend."""
handles_original = []
for ax in axs:
handles_original += [
@@ -1127,14 +1112,9 @@ def _get_legend_handles(axs, legend_handler_map=None):
if isinstance(a, (Line2D, Patch, Collection))),
*axx.containers]
- handler_map = Legend.get_default_handler_map()
-
- if legend_handler_map is not None:
- handler_map = handler_map.copy()
- handler_map.update(legend_handler_map)
-
+ handler_map = {**Legend.get_default_handler_map(),
+ **(legend_handler_map or {})}
has_handler = Legend.get_legend_handler
-
for handle in handles_original:
label = handle.get_label()
if label != '_nolegend_' and has_handler(handler_map, handle):
@@ -1142,13 +1122,9 @@ def _get_legend_handles(axs, legend_handler_map=None):
def _get_legend_handles_labels(axs, legend_handler_map=None):
- """
- Return handles and labels for legend, internal method.
-
- """
+ """Return handles and labels for legend."""
handles = []
labels = []
-
for handle in _get_legend_handles(axs, legend_handler_map):
label = handle.get_label()
if label and not label.startswith('_'):
@@ -1204,7 +1180,7 @@ def _parse_legend_args(axs, *args, handles=None, labels=None, **kwargs):
"""
log = logging.getLogger(__name__)
- handlers = kwargs.get('handler_map', {}) or {}
+ handlers = kwargs.get('handler_map')
extra_args = ()
if (handles is not None or labels is not None) and args:
@@ -1227,7 +1203,10 @@ def _parse_legend_args(axs, *args, handles=None, labels=None, **kwargs):
elif len(args) == 0:
handles, labels = _get_legend_handles_labels(axs, handlers)
if not handles:
- log.warning('No handles with labels found to put in legend.')
+ log.warning(
+ "No artists with labels found to put in legend. Note that "
+ "artists whose label start with an underscore are ignored "
+ "when legend() is called with no argument.")
# One argument. User defined labels - automatic handle detection.
elif len(args) == 1:
diff --git a/lib/matplotlib/legend_handler.py b/lib/matplotlib/legend_handler.py
index b289e26cc1f5..6cf6b8ec31c7 100644
--- a/lib/matplotlib/legend_handler.py
+++ b/lib/matplotlib/legend_handler.py
@@ -214,19 +214,6 @@ class HandlerLine2DCompound(HandlerNpoints):
a line-only with a marker-only artist. May be deprecated in the future.
"""
- def __init__(self, marker_pad=0.3, numpoints=None, **kwargs):
- """
- Parameters
- ----------
- marker_pad : float
- Padding between points in legend entry.
- numpoints : int
- Number of points to show in legend entry.
- **kwargs
- Keyword arguments forwarded to `.HandlerNpoints`.
- """
- super().__init__(marker_pad=marker_pad, numpoints=numpoints, **kwargs)
-
def create_artists(self, legend, orig_handle,
xdescent, ydescent, width, height, fontsize,
trans):
@@ -286,20 +273,6 @@ class HandlerLine2D(HandlerNpoints):
artist for the line and another for the marker(s).
"""
- def __init__(self, marker_pad=0.3, numpoints=None, **kw):
- """
- Parameters
- ----------
- marker_pad : float
- Padding between points in legend entry.
- numpoints : int
- Number of points to show in legend entry.
- **kwargs
- Keyword arguments forwarded to `.HandlerNpoints`.
- """
- HandlerNpoints.__init__(self, marker_pad=marker_pad,
- numpoints=numpoints, **kw)
-
def create_artists(self, legend, orig_handle,
xdescent, ydescent, width, height, fontsize,
trans):
@@ -593,7 +566,7 @@ def create_artists(self, legend, orig_handle,
self.update_prop(legline, plotlines, legend)
legline.set_drawstyle('default')
- legline.set_marker('None')
+ legline.set_marker('none')
self.update_prop(legline_marker, plotlines, legend)
legline_marker.set_linestyle('None')
diff --git a/lib/matplotlib/lines.py b/lib/matplotlib/lines.py
index 8f4ddaa5c6ea..b4614868b784 100644
--- a/lib/matplotlib/lines.py
+++ b/lib/matplotlib/lines.py
@@ -601,7 +601,7 @@ def get_markevery(self):
def set_picker(self, p):
"""
- Sets the event picker details for the line.
+ Set the event picker details for the line.
Parameters
----------
@@ -664,7 +664,8 @@ def recache(self, always=False):
self.axes.name == 'rectilinear' and
self.axes.get_xscale() == 'linear' and
self._markevery is None and
- self.get_clip_on()):
+ self.get_clip_on() and
+ self.get_transform() == self.axes.transData):
self._subslice = True
nanmask = np.isnan(x)
if nanmask.any():
@@ -688,7 +689,7 @@ def recache(self, always=False):
def _transform_path(self, subslice=None):
"""
- Puts a TransformedPath instance at self._transformed_path;
+ Put a TransformedPath instance at self._transformed_path;
all invalidation of the transform is then handled by the
TransformedPath instance.
"""
@@ -1092,15 +1093,15 @@ def set_linestyle(self, ls):
- A string:
- =============================== =================
- Linestyle Description
- =============================== =================
- ``'-'`` or ``'solid'`` solid line
- ``'--'`` or ``'dashed'`` dashed line
- ``'-.'`` or ``'dashdot'`` dash-dotted line
- ``':'`` or ``'dotted'`` dotted line
- ``'None'`` or ``' '`` or ``''`` draw nothing
- =============================== =================
+ ========================================== =================
+ linestyle description
+ ========================================== =================
+ ``'-'`` or ``'solid'`` solid line
+ ``'--'`` or ``'dashed'`` dashed line
+ ``'-.'`` or ``'dashdot'`` dash-dotted line
+ ``':'`` or ``'dotted'`` dotted line
+ ``'none'``, ``'None'``, ``' '``, or ``''`` draw nothing
+ ========================================== =================
- Alternatively a dash tuple of the following form can be
provided::
diff --git a/lib/matplotlib/markers.py b/lib/matplotlib/markers.py
index be1f81ca3b1e..656d225567fb 100644
--- a/lib/matplotlib/markers.py
+++ b/lib/matplotlib/markers.py
@@ -45,7 +45,8 @@
``9`` (``CARETRIGHTBASE``) |m34| caretright (centered at base)
``10`` (``CARETUPBASE``) |m35| caretup (centered at base)
``11`` (``CARETDOWNBASE``) |m36| caretdown (centered at base)
-``"None"``, ``" "`` or ``""`` nothing
+``"none"`` or ``"None"`` nothing
+``" "`` or ``""`` nothing
``'$...$'`` |m37| Render the string using mathtext.
E.g ``"$f$"`` for marker showing the
letter ``f``.
@@ -63,9 +64,9 @@
rotated by ``angle``.
============================== ====== =========================================
-``None`` is the default which means 'nothing', however this table is
-referred to from other docs for the valid inputs from marker inputs and in
-those cases ``None`` still means 'default'.
+``None`` also means 'nothing' when directly constructing a `.MarkerStyle`, but
+note that there are other contexts where ``marker=None`` instead means "the
+default marker" (e.g. :rc:`scatter.marker` for `.Axes.scatter`).
Note that special symbols can be defined via the
:doc:`STIX math font `,
@@ -127,6 +128,7 @@
"""
from collections.abc import Sized
+import inspect
import numpy as np
@@ -199,6 +201,7 @@ class MarkerStyle:
CARETUPBASE: 'caretupbase',
CARETDOWNBASE: 'caretdownbase',
"None": 'nothing',
+ "none": 'nothing',
None: 'nothing',
' ': 'nothing',
'': 'nothing'
@@ -216,24 +219,37 @@ class MarkerStyle:
# TODO: Is this ever used as a non-constant?
_point_size_reduction = 0.5
- def __init__(self, marker=None, fillstyle=None):
+ _unset = object() # For deprecation of MarkerStyle().
+
+ def __init__(self, marker=_unset, fillstyle=None):
"""
Parameters
----------
- marker : str, array-like, Path, MarkerStyle, or None, default: None
+ marker : str, array-like, Path, MarkerStyle, or None
- Another instance of *MarkerStyle* copies the details of that
``marker``.
- - *None* means no marker.
- - For other possible marker values see the module docstring
+ - *None* means no marker. This is the deprecated default.
+ - For other possible marker values, see the module docstring
`matplotlib.markers`.
- fillstyle : str, default: 'full'
+ fillstyle : str, default: :rc:`markers.fillstyle`
One of 'full', 'left', 'right', 'bottom', 'top', 'none'.
"""
self._marker_function = None
self._set_fillstyle(fillstyle)
+ # Remove _unset and signature rewriting after deprecation elapses.
+ if marker is self._unset:
+ marker = ""
+ _api.warn_deprecated(
+ "3.6", message="Calling MarkerStyle() with no parameters is "
+ "deprecated since %(since)s; support will be removed "
+ "%(removal)s. Use MarkerStyle('') to construct an empty "
+ "MarkerStyle.")
self._set_marker(marker)
+ __init__.__signature__ = inspect.signature( # Only for deprecation period.
+ lambda self, marker, fillstyle=None: None)
+
def _recache(self):
if self._marker_function is None:
return
diff --git a/lib/matplotlib/mathtext.py b/lib/matplotlib/mathtext.py
index 656aeb64dc0d..0ce21c5ba200 100644
--- a/lib/matplotlib/mathtext.py
+++ b/lib/matplotlib/mathtext.py
@@ -24,19 +24,27 @@
import numpy as np
from PIL import Image
-from matplotlib import _api, colors as mcolors, rcParams, _mathtext
+from matplotlib import (
+ _api, colors as mcolors, rcParams, _mathtext, _mathtext_data)
from matplotlib.ft2font import FT2Image, LOAD_NO_HINTING
from matplotlib.font_manager import FontProperties
-# Backcompat imports, all are deprecated as of 3.4.
-from matplotlib._mathtext import ( # noqa: F401
- SHRINK_FACTOR, GROW_FACTOR, NUM_SIZE_LEVELS)
-from matplotlib._mathtext_data import ( # noqa: F401
- latex_to_bakoma, latex_to_cmex, latex_to_standard, stix_virtual_fonts,
- tex2uni)
_log = logging.getLogger(__name__)
+@_api.caching_module_getattr
+class __getattr__:
+ locals().update({
+ name: _api.deprecated("3.4")(
+ property(lambda self, _mod=mod, _name=name: getattr(_mod, _name)))
+ for mod, names in [
+ (_mathtext, ["SHRINK_FACTOR", "GROW_FACTOR", "NUM_SIZE_LEVELS"]),
+ (_mathtext_data, [
+ "latex_to_bakoma", "latex_to_cmex", "latex_to_standard",
+ "stix_virtual_fonts", "tex2uni"])]
+ for name in names})
+
+
get_unicode_index = _mathtext.get_unicode_index
get_unicode_index.__module__ = __name__
@@ -580,18 +588,12 @@ def math_to_image(s, filename_or_obj, prop=None, dpi=None, format=None):
format is determined as for `.Figure.savefig`.
"""
from matplotlib import figure
- # backend_agg supports all of the core output formats
- from matplotlib.backends import backend_agg
-
- if prop is None:
- prop = FontProperties()
parser = MathTextParser('path')
width, height, depth, _, _ = parser.parse(s, dpi=72, prop=prop)
fig = figure.Figure(figsize=(width / 72.0, height / 72.0))
fig.text(0, depth/height, s, fontproperties=prop)
- backend_agg.FigureCanvasAgg(fig)
fig.savefig(filename_or_obj, dpi=dpi, format=format)
return depth
diff --git a/lib/matplotlib/mpl-data/matplotlibrc b/lib/matplotlib/mpl-data/matplotlibrc
index 19e89e3cdd5e..106d881ce88c 100644
--- a/lib/matplotlib/mpl-data/matplotlibrc
+++ b/lib/matplotlib/mpl-data/matplotlibrc
@@ -71,9 +71,9 @@
## ***************************************************************************
## The default backend. If you omit this parameter, the first working
## backend from the following list is used:
-## MacOSX QtAgg Gtk3Agg TkAgg WxAgg Agg
+## MacOSX QtAgg Gtk4Agg Gtk3Agg TkAgg WxAgg Agg
## Other choices include:
-## QtCairo GTK3Cairo TkCairo WxCairo Cairo
+## QtCairo GTK4Cairo GTK3Cairo TkCairo WxCairo Cairo
## Qt5Agg Qt5Cairo Wx # deprecated.
## PS PDF SVG Template
## You can also deploy your own backend outside of Matplotlib by referring to
diff --git a/lib/matplotlib/patches.py b/lib/matplotlib/patches.py
index 5e053cb364a3..253e8abe2ef7 100644
--- a/lib/matplotlib/patches.py
+++ b/lib/matplotlib/patches.py
@@ -349,7 +349,7 @@ def set_edgecolor(self, color):
Parameters
----------
- color : color or None or 'auto'
+ color : color or None
"""
self._original_edgecolor = color
self._set_edgecolor(color)
@@ -419,18 +419,15 @@ def set_linestyle(self, ls):
"""
Set the patch linestyle.
- =========================== =================
- linestyle description
- =========================== =================
- ``'-'`` or ``'solid'`` solid line
- ``'--'`` or ``'dashed'`` dashed line
- ``'-.'`` or ``'dashdot'`` dash-dotted line
- ``':'`` or ``'dotted'`` dotted line
- ``'None'`` draw nothing
- ``'none'`` draw nothing
- ``' '`` draw nothing
- ``''`` draw nothing
- =========================== =================
+ ========================================== =================
+ linestyle description
+ ========================================== =================
+ ``'-'`` or ``'solid'`` solid line
+ ``'--'`` or ``'dashed'`` dashed line
+ ``'-.'`` or ``'dashdot'`` dash-dotted line
+ ``':'`` or ``'dotted'`` dotted line
+ ``'none'``, ``'None'``, ``' '``, or ``''`` draw nothing
+ ========================================== =================
Alternatively a dash tuple of the following form can be provided::
diff --git a/lib/matplotlib/path.py b/lib/matplotlib/path.py
index c09250123fb9..4280d55eeacd 100644
--- a/lib/matplotlib/path.py
+++ b/lib/matplotlib/path.py
@@ -162,7 +162,7 @@ def __init__(self, vertices, codes=None, _interpolation_steps=1,
@classmethod
def _fast_from_codes_and_verts(cls, verts, codes, internals_from=None):
"""
- Creates a Path instance without the expense of calling the constructor.
+ Create a Path instance without the expense of calling the constructor.
Parameters
----------
diff --git a/lib/matplotlib/projections/polar.py b/lib/matplotlib/projections/polar.py
index 322b84c6468d..7ce6292fb897 100644
--- a/lib/matplotlib/projections/polar.py
+++ b/lib/matplotlib/projections/polar.py
@@ -1399,16 +1399,10 @@ def format_coord(self, theta, r):
# (as for linear axes), but for theta, use f-formatting as scientific
# notation doesn't make sense and the trailing dot is ugly.
def format_sig(value, delta, opt, fmt):
- digits_post_decimal = math.floor(math.log10(delta))
- digits_offset = (
- # For "f", only count digits after decimal point.
- 0 if fmt == "f"
- # For "g", offset by digits before the decimal point.
- else math.floor(math.log10(abs(value))) + 1 if value
- # For "g", 0 contributes 1 "digit" before the decimal point.
- else 1)
- fmt_prec = max(0, digits_offset - digits_post_decimal)
- return f"{value:-{opt}.{fmt_prec}{fmt}}"
+ # For "f", only count digits after decimal point.
+ prec = (max(0, -math.floor(math.log10(delta))) if fmt == "f" else
+ cbook._g_sig_digits(value, delta))
+ return f"{value:-{opt}.{prec}{fmt}}"
return ('\N{GREEK SMALL LETTER THETA}={}\N{GREEK SMALL LETTER PI} '
'({}\N{DEGREE SIGN}), r={}').format(
diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py
index 201255da848c..b222466dda45 100644
--- a/lib/matplotlib/pyplot.py
+++ b/lib/matplotlib/pyplot.py
@@ -212,6 +212,7 @@ def switch_backend(newbackend):
current_framework = cbook._get_running_interactive_framework()
mapping = {'qt': 'qtagg',
'gtk3': 'gtk3agg',
+ 'gtk4': 'gtk4agg',
'wx': 'wxagg',
'tk': 'tkagg',
'macosx': 'macosx',
@@ -222,7 +223,8 @@ def switch_backend(newbackend):
candidates = [best_guess]
else:
candidates = []
- candidates += ["macosx", "qtagg", "gtk3agg", "tkagg", "wxagg"]
+ candidates += [
+ "macosx", "qtagg", "gtk4agg", "gtk3agg", "tkagg", "wxagg"]
# Don't try to fallback on the cairo-based backends as they each have
# an additional dependency (pycairo) over the agg-based backend, and
diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py
index 2c3c88e2fa66..e582f5cb575a 100644
--- a/lib/matplotlib/rcsetup.py
+++ b/lib/matplotlib/rcsetup.py
@@ -35,7 +35,7 @@
# The capitalized forms are needed for ipython at present; this may
# change for later versions.
interactive_bk = [
- 'GTK3Agg', 'GTK3Cairo',
+ 'GTK3Agg', 'GTK3Cairo', 'GTK4Agg', 'GTK4Cairo',
'MacOSX',
'nbAgg',
'QtAgg', 'QtCairo', 'Qt5Agg', 'Qt5Cairo',
@@ -149,26 +149,6 @@ def validate_bool(b):
raise ValueError('Could not convert "%s" to bool' % b)
-def _validate_date_converter(s):
- if s is None:
- return
- s = validate_string(s)
- if s not in ['auto', 'concise']:
- _api.warn_external(f'date.converter string must be "auto" or '
- f'"concise", not "{s}". Check your matplotlibrc')
- return
- import matplotlib.dates as mdates
- mdates._rcParam_helper.set_converter(s)
-
-
-def _validate_date_int_mult(s):
- if s is None:
- return
- s = validate_bool(s)
- import matplotlib.dates as mdates
- mdates._rcParam_helper.set_int_mult(s)
-
-
def validate_axisbelow(s):
try:
return validate_bool(s)
@@ -505,14 +485,11 @@ def validate_markevery(s):
Parameters
----------
- s : None, int, float, slice, length-2 tuple of ints,
- length-2 tuple of floats, list of ints
+ s : None, int, (int, int), slice, float, (float, float), or list[int]
Returns
-------
- None, int, float, slice, length-2 tuple of ints,
- length-2 tuple of floats, list of ints
-
+ None, int, (int, int), slice, float, (float, float), or list[int]
"""
# Validate s against type slice float int and None
if isinstance(s, (slice, float, int, type(None))):
@@ -1036,10 +1013,9 @@ def _convert_validator_spec(key, conv):
"date.autoformatter.second": validate_string,
"date.autoformatter.microsecond": validate_string,
- # 'auto', 'concise', 'auto-noninterval'
- 'date.converter': _validate_date_converter,
+ 'date.converter': ['auto', 'concise'],
# for auto date locator, choose interval_multiples
- 'date.interval_multiples': _validate_date_int_mult,
+ 'date.interval_multiples': validate_bool,
# legend properties
"legend.fancybox": validate_bool,
diff --git a/lib/matplotlib/streamplot.py b/lib/matplotlib/streamplot.py
index 6de221476490..f076209e5dc9 100644
--- a/lib/matplotlib/streamplot.py
+++ b/lib/matplotlib/streamplot.py
@@ -26,7 +26,9 @@ def streamplot(axes, x, y, u, v, density=1, linewidth=None, color=None,
Parameters
----------
x, y : 1D/2D arrays
- Evenly spaced strictly increasing arrays to make a grid.
+ Evenly spaced strictly increasing arrays to make a grid. If 2D, all
+ rows of *x* must be equal and all columns of *y* must be equal; i.e.,
+ they must be as if generated by ``np.meshgrid(x_1d, y_1d)``.
u, v : 2D arrays
*x* and *y*-velocities. The number of rows and columns must match
the length of *y* and *x*, respectively.
@@ -570,7 +572,7 @@ def _integrate_rk12(x0, y0, dmap, f, maxlength):
dx2 = ds * 0.5 * (k1x + k2x)
dy2 = ds * 0.5 * (k1y + k2y)
- nx, ny = dmap.grid.shape
+ ny, nx = dmap.grid.shape
# Error is normalized to the axes coordinates
error = np.hypot((dx2 - dx1) / (nx - 1), (dy2 - dy1) / (ny - 1))
diff --git a/lib/matplotlib/testing/widgets.py b/lib/matplotlib/testing/widgets.py
index 49d5cb7175f9..3c3a4b6273bc 100644
--- a/lib/matplotlib/testing/widgets.py
+++ b/lib/matplotlib/testing/widgets.py
@@ -2,15 +2,16 @@
========================
Widget testing utilities
========================
-Functions that are useful for testing widgets.
-See also matplotlib.tests.test_widgets
+
+See also :mod:`matplotlib.tests.test_widgets`.
"""
+
import matplotlib.pyplot as plt
from unittest import mock
def get_ax():
- """Creates plot and returns its axes"""
+ """Create a plot and return its axes."""
fig, ax = plt.subplots(1, 1)
ax.plot([0, 200], [0, 200])
ax.set_aspect(1.0)
diff --git a/lib/matplotlib/tests/baseline_images/test_colorbar/proportional_colorbars.png b/lib/matplotlib/tests/baseline_images/test_colorbar/proportional_colorbars.png
new file mode 100644
index 000000000000..a1f9745230ba
Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_colorbar/proportional_colorbars.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.pdf b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.pdf
index 7f29b4a9eabf..f13892ba2bc5 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.pdf and b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.pdf differ
diff --git a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.png b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.png
index 99d7e1d44cd8..21f202e5edec 100644
Binary files a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.png and b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.png differ
diff --git a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.svg b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.svg
index 869361f76dd0..a95118c95d97 100644
--- a/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.svg
+++ b/lib/matplotlib/tests/baseline_images/test_streamplot/streamplot_colormap.svg
@@ -1,12 +1,23 @@
-
-