diff --git a/SECURITY.md b/SECURITY.md index 139c7dca3ece..8cac0a77d53e 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,8 +8,9 @@ versions. | Version | Supported | | ------- | ------------------ | +| 3.6.x | :white_check_mark: | | 3.5.x | :white_check_mark: | -| 3.4.x | :white_check_mark: | +| 3.4.x | :x: | | 3.3.x | :x: | | < 3.3 | :x: | diff --git a/doc/_static/zenodo_cache/7084615.svg b/doc/_static/zenodo_cache/7084615.svg new file mode 100644 index 000000000000..9bb362063414 --- /dev/null +++ b/doc/_static/zenodo_cache/7084615.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + DOI + + + DOI + + + 10.5281/zenodo.7084615 + + + 10.5281/zenodo.7084615 + + + \ No newline at end of file diff --git a/doc/api/artist_api.rst b/doc/api/artist_api.rst index ca2207e15dca..b99842372bbe 100644 --- a/doc/api/artist_api.rst +++ b/doc/api/artist_api.rst @@ -105,6 +105,7 @@ Drawing Artist.get_agg_filter Artist.get_window_extent + Artist.get_tightbbox Artist.get_transformed_clip_path_and_affine Figure and Axes diff --git a/doc/api/matplotlib_configuration_api.rst b/doc/api/matplotlib_configuration_api.rst index eb9cffb0f93f..d5dc60c80613 100644 --- a/doc/api/matplotlib_configuration_api.rst +++ b/doc/api/matplotlib_configuration_api.rst @@ -31,6 +31,7 @@ Default values and styling :no-members: .. automethod:: find_all + .. automethod:: copy .. autofunction:: rc_context diff --git a/doc/api/next_api_changes/behavior/19214-DS.rst b/doc/api/next_api_changes/behavior/19214-DS.rst deleted file mode 100644 index cffd0b8ffd6f..000000000000 --- a/doc/api/next_api_changes/behavior/19214-DS.rst +++ /dev/null @@ -1,5 +0,0 @@ -Improved autoscaling for bezier curves --------------------------------------- -Bezier curves are now autoscaled to their extents - previously they were -autoscaled to their ends and control points, which in some cases led to -unnecessarily large limits. diff --git a/doc/api/next_api_changes/behavior/19368-DS.rst b/doc/api/next_api_changes/behavior/19368-DS.rst deleted file mode 100644 index 455eba1570f9..000000000000 --- a/doc/api/next_api_changes/behavior/19368-DS.rst +++ /dev/null @@ -1,8 +0,0 @@ -Large ``imshow`` images are now downsampled -------------------------------------------- -When showing an image using `~matplotlib.axes.Axes.imshow` that has more than -:math:`2^{24}` columns or :math:`2^{23}` rows, the image will now be downsampled -to below this resolution before being resampled for display by the AGG renderer. -Previously such a large image would be shown incorrectly. To prevent this -downsampling and the warning it raises, manually downsample your data before -handing it to `~matplotlib.axes.Axes.imshow` diff --git a/doc/api/next_api_changes/behavior/20426-JK.rst b/doc/api/next_api_changes/behavior/20426-JK.rst deleted file mode 100644 index cc849c796eac..000000000000 --- a/doc/api/next_api_changes/behavior/20426-JK.rst +++ /dev/null @@ -1,5 +0,0 @@ -Incompatible layout engines raise ---------------------------------- -``tight_layout`` and ``constrained_layout`` are incompatible if -a colorbar has been added to the figure. Invoking the incompatible layout -engine used to warn, but now raises with a ``RuntimeError``. diff --git a/doc/api/next_api_changes/behavior/20715-JKS.rst b/doc/api/next_api_changes/behavior/20715-JKS.rst deleted file mode 100644 index a91aa40ed68c..000000000000 --- a/doc/api/next_api_changes/behavior/20715-JKS.rst +++ /dev/null @@ -1,8 +0,0 @@ -``Type1Font`` objects include more properties ---------------------------------------------- - -The ``matplotlib._type1font.Type1Font.prop`` dictionary now includes more keys, -such as ``CharStrings`` and ``Subrs``. The value of the ``Encoding`` key is -now a dictionary mapping codes to glyph names. The -``matplotlib._type1font.Type1Font.transform`` method now correctly removes -``UniqueID`` properties from the font. diff --git a/doc/api/next_api_changes/behavior/21026-DS.rst b/doc/api/next_api_changes/behavior/21026-DS.rst deleted file mode 100644 index 1fdf18bd0929..000000000000 --- a/doc/api/next_api_changes/behavior/21026-DS.rst +++ /dev/null @@ -1,5 +0,0 @@ -3D contourf polygons placed between levels ------------------------------------------- -The polygons used in a 3D `~.Axes3D.contourf` plot are -now placed halfway between the contour levels, as each polygon represents the -location of values that lie between two levels. diff --git a/doc/api/next_api_changes/behavior/21042-AL.rst b/doc/api/next_api_changes/behavior/21042-AL.rst deleted file mode 100644 index 9edec6270ff0..000000000000 --- a/doc/api/next_api_changes/behavior/21042-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -rcParams.copy() returns a new RcParams instance, rather than a dict -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This makes the copied instance still validate inputs, and additionally avoids -emitting deprecation warnings when using a previously copied RcParams instance -to update the global instance (even if some entries are deprecated). diff --git a/doc/api/next_api_changes/behavior/21238-AL.rst b/doc/api/next_api_changes/behavior/21238-AL.rst deleted file mode 100644 index 8776af61ca4d..000000000000 --- a/doc/api/next_api_changes/behavior/21238-AL.rst +++ /dev/null @@ -1,6 +0,0 @@ -``CallbackRegistry`` raises on unknown signals -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When Matplotlib instantiates a `.CallbackRegistry`, it now limits callbacks -to the signals that the registry knows about. In practice, this means that -calling `~.FigureCanvasBase.mpl_connect` with an invalid signal name now raises -a `ValueError`. diff --git a/doc/api/next_api_changes/behavior/21983-AL.rst b/doc/api/next_api_changes/behavior/21983-AL.rst deleted file mode 100644 index d287756ec2d4..000000000000 --- a/doc/api/next_api_changes/behavior/21983-AL.rst +++ /dev/null @@ -1,8 +0,0 @@ -``FigureFrameWx`` constructor, subclasses, and ``get_canvas`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ``FigureCanvasWx`` constructor gained a *canvas_class* keyword-only -parameter which specifies the canvas class that should be used. This -parameter will become required in the future. The ``get_canvas`` method, -which was previously used to customize canvas creation, is deprecated. The -``FigureFrameWxAgg`` and ``FigureFrameWxCairo`` subclasses, which overrode -``get_canvas``, are deprecated. diff --git a/doc/api/next_api_changes/behavior/22013-AL.rst b/doc/api/next_api_changes/behavior/22013-AL.rst deleted file mode 100644 index c46b9ab7e488..000000000000 --- a/doc/api/next_api_changes/behavior/22013-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``FigureFrameWx.sizer`` -~~~~~~~~~~~~~~~~~~~~~~~ -... has been removed. The frame layout is no longer based on a sizer, as the -canvas is now the sole child widget; the toolbar is now a regular toolbar -added using ``SetToolBar``. diff --git a/doc/api/next_api_changes/behavior/22063-SR.rst b/doc/api/next_api_changes/behavior/22063-SR.rst deleted file mode 100644 index e09bcaa70706..000000000000 --- a/doc/api/next_api_changes/behavior/22063-SR.rst +++ /dev/null @@ -1,7 +0,0 @@ -Move Axes title to not overlap with y axis offset -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Previously, Axes titles could overlap the y-axis offset text, which is often -in the upper left corner of the axes. Now titles are moved above the offset -text if overlapping, and autopositioning is in effect (i.e. if *y* in -`.Axes.set_title` is *None* and :rc:`axes.titley` is also *None*). diff --git a/doc/api/next_api_changes/behavior/22204-AL.rst b/doc/api/next_api_changes/behavior/22204-AL.rst deleted file mode 100644 index 151ac6618bf6..000000000000 --- a/doc/api/next_api_changes/behavior/22204-AL.rst +++ /dev/null @@ -1,7 +0,0 @@ -``MathtextBackendAgg.get_results`` no longer returns ``used_characters`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The last item (``used_characters``) in the tuple returned by -``MathtextBackendAgg.get_results`` has been removed. In order to unpack this -tuple in a backward and forward-compatible way, use e.g. -``ox, oy, width, height, descent, image, *_ = parse(...)``, -which will ignore ``used_characters`` if it was present. diff --git a/doc/api/next_api_changes/behavior/22229-TAC.rst b/doc/api/next_api_changes/behavior/22229-TAC.rst deleted file mode 100644 index 2f60539e16fc..000000000000 --- a/doc/api/next_api_changes/behavior/22229-TAC.rst +++ /dev/null @@ -1,18 +0,0 @@ -ArtistList proxies copy contents on iteration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -When iterating over the contents of the dynamically generated proxy lists -for the Artist-type accessors (see :ref:`Behavioural API Changes 3.5 - Axes -children combined`), a copy of the contents is made. This ensure that artists -can safely be added or removed from the Axes while iterating over their children. - -This is a departure from the expected behavior of mutable iterable data types -in Python -- iterating over list while mutating it has surprising consequences -and dictionaries will error if they change size during iteration. -Because all of the accessors are filtered views of the same underlying list, it -is possible for seemingly unrelated changes, such as removing a Line, to affect -the iteration over any of the other accessors. In this case, we have opted to -make a copy of the relevant children before yielding them to the user. - -This change is also consistent with our plan to make these accessors immutable -in Matplotlib 3.7. diff --git a/doc/api/next_api_changes/behavior/22485-TH.rst b/doc/api/next_api_changes/behavior/22485-TH.rst deleted file mode 100644 index b2d7f61238bd..000000000000 --- a/doc/api/next_api_changes/behavior/22485-TH.rst +++ /dev/null @@ -1,5 +0,0 @@ -``AxesImage`` string representation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The string representation of `.AxesImage` changes from -stating the position in the figure ``"AxesImage(80,52.8;496x369.6)"`` to -giving the number of pixels ``"AxesImage(size=(300, 200))"``. diff --git a/doc/api/next_api_changes/behavior/22567-IT.rst b/doc/api/next_api_changes/behavior/22567-IT.rst deleted file mode 100644 index fcda503ffacc..000000000000 --- a/doc/api/next_api_changes/behavior/22567-IT.rst +++ /dev/null @@ -1,13 +0,0 @@ -New algorithm keyword argument to contour and contourf -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The contouring functions `~matplotlib.axes.Axes.contour` and -`~matplotlib.axes.Axes.contourf` have a new keyword argument *algorithm* to -control which algorithm is used to calculate the contours. There is a choice -of four algorithms to use, and the default is to use ``algorithm='mpl2014'`` -which is the same algorithm that Matplotlib has been using since 2014. - -Other possible values of the *algorithm* keyword argument are ``'mpl2005'``, -``'serial'`` and ``'threaded'``; see the -`ContourPy documentation `_ for further -details. diff --git a/doc/api/next_api_changes/behavior/22639-RA.rst b/doc/api/next_api_changes/behavior/22639-RA.rst deleted file mode 100644 index c6417e1633f1..000000000000 --- a/doc/api/next_api_changes/behavior/22639-RA.rst +++ /dev/null @@ -1,5 +0,0 @@ -MacOSX backend to use sRGB instead of GenericRGB colorspace -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -MacOSX backend now display sRGB tagged image instead of GenericRGB which is -an older (now deprecated) Apple colorspace. This is the source colorspace -used by ColorSync to convert to the current display profile. diff --git a/doc/api/next_api_changes/behavior/22691-JMK.rst b/doc/api/next_api_changes/behavior/22691-JMK.rst deleted file mode 100644 index 258af259bb89..000000000000 --- a/doc/api/next_api_changes/behavior/22691-JMK.rst +++ /dev/null @@ -1,6 +0,0 @@ -QuadMesh mouseover defaults to False -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -New in 3.5, `.QuadMesh.get_cursor_data` allows display of data values -under the cursor. However, this can be very slow for large meshes, so -by `.QuadMesh.set_mouseover` defaults to *False*. diff --git a/doc/api/next_api_changes/behavior/22745-JMK.rst b/doc/api/next_api_changes/behavior/22745-JMK.rst deleted file mode 100644 index 7985d0e6a6fc..000000000000 --- a/doc/api/next_api_changes/behavior/22745-JMK.rst +++ /dev/null @@ -1,9 +0,0 @@ -No need to specify renderer for get_tightbbox and get_window_extent -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``get_tightbbox`` and `~.Artist.get_window_extent` methods -no longer require the *renderer* kwarg, saving users from having to -querry it from ``fig.canvas.get_renderer``. If the *renderer* -kwarg is not supplied these methods first check if there is a cached renderer -from a previous draw and use that. If there is no cahched renderer, then -the methods will use ``fig.canvas.get_renderer()`` as a fallback. diff --git a/doc/api/next_api_changes/behavior/22950-AL.rst b/doc/api/next_api_changes/behavior/22950-AL.rst deleted file mode 100644 index bd4484936e93..000000000000 --- a/doc/api/next_api_changes/behavior/22950-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``$\doteq \doteqdot \dotminus \dotplus \dots$`` are now surrounded by extra space -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... because they are correctly treated as relational or binary operators. diff --git a/doc/api/next_api_changes/behavior/23031-AL.rst b/doc/api/next_api_changes/behavior/23031-AL.rst deleted file mode 100644 index bdb1554fe759..000000000000 --- a/doc/api/next_api_changes/behavior/23031-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -The encoding of style file is now specified to be utf-8 -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -It has been impossible to import Matplotlib with a non UTF-8 compatible locale -encoding because we read the style library at import time. This change is -formalizing and documenting the status quo so there is no deprecation period. diff --git a/doc/api/next_api_changes/behavior/23170-JMK.rst b/doc/api/next_api_changes/behavior/23170-JMK.rst deleted file mode 100644 index 2126d1823fdd..000000000000 --- a/doc/api/next_api_changes/behavior/23170-JMK.rst +++ /dev/null @@ -1,6 +0,0 @@ -``get_ticklabels`` now always populates labels -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Previously `.Axis.get_ticklabels` (and `.Axes.get_xticklabels`, -`.Axes.get_yticklabels`) would only return empty strings unless a draw had -already been performed. Now the ticks and their labels are updated when the -labels are requested. diff --git a/doc/api/next_api_changes/behavior/23188-JMK.rst b/doc/api/next_api_changes/behavior/23188-JMK.rst deleted file mode 100644 index f95f6f642886..000000000000 --- a/doc/api/next_api_changes/behavior/23188-JMK.rst +++ /dev/null @@ -1,9 +0,0 @@ -Default date limits changed to 1970-01-01 to 1970-01-02 -------------------------------------------------------- - -Previously the default limits for an empty axis set up for dates -(`.Axis.axis_date`) was 2000-01-01 to 2010-01-01. This has been -changed to 1970-01-01 to 1970-01-02. With the default epoch, this -makes the numeric limit for date axes the same as for other axes -(0.0-1.0), and users are less likely to set a locator with far too -many ticks. diff --git a/doc/api/next_api_changes/behavior/23206-OG.rst b/doc/api/next_api_changes/behavior/23206-OG.rst deleted file mode 100644 index 4a91c1a943e3..000000000000 --- a/doc/api/next_api_changes/behavior/23206-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -Changed exception type for incorrect SVG date metadata -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Providing date metadata with incorrect type to the SVG backend earlier -resulted in a ``ValueError``. Now, a ``TypeError`` is raised instead. diff --git a/doc/api/next_api_changes/behavior/23233-TH.rst b/doc/api/next_api_changes/behavior/23233-TH.rst deleted file mode 100644 index 8cf50113adf5..000000000000 --- a/doc/api/next_api_changes/behavior/23233-TH.rst +++ /dev/null @@ -1,13 +0,0 @@ -``stem(..., markerfmt=...)`` behavior -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The behavior of the *markerfmt* parameter of `~.Axes.stem` has changed: - -- If *markerfmt* does not contain a color, the color is taken from *linefmt*. -- If *markerfmt* does not contain a marker, the default is 'o'. - -Before, *markerfmt* was passed unmodified to ``plot(..., fmt)``, which had -a number of unintended side-effects; e.g. only giving a color switched to -a solid line without markers. - -For a simple call ``stem(x, y)`` without parameters, the new rules still -reproduce the old behavior. diff --git a/doc/api/next_api_changes/behavior/23270-AL.rst b/doc/api/next_api_changes/behavior/23270-AL.rst deleted file mode 100644 index b1702a1423b6..000000000000 --- a/doc/api/next_api_changes/behavior/23270-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -The *math* parameter of ``mathtext.get_unicode_index`` is deprecated and defaults to False -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In math mode, ASCII hyphens (U+002D) are now replaced by unicode minus signs -(U+2212) at the parsing stage. diff --git a/doc/api/next_api_changes/behavior/23299-TAC.rst b/doc/api/next_api_changes/behavior/23299-TAC.rst deleted file mode 100644 index 745bd47d6c6b..000000000000 --- a/doc/api/next_api_changes/behavior/23299-TAC.rst +++ /dev/null @@ -1,6 +0,0 @@ -mpl.rc_context no longer resets the value of ``'backend'`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -`matplotlib.rc_context` incorrectly reset the value of :rc:`backend` if backend -resolution was triggered in the context. This affected only the value. The actual backend -was not changed. Now, `matplotlib.rc_context` does not reset :rc:`backend` anymore. diff --git a/doc/api/next_api_changes/behavior/23371-AL.rst b/doc/api/next_api_changes/behavior/23371-AL.rst deleted file mode 100644 index 4e70f123347c..000000000000 --- a/doc/api/next_api_changes/behavior/23371-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -The default ``rcParams["animation.convert_args"]`` changed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -It now defaults to ``["-layers", "OptimizePlus"]`` to try to generate smaller -GIFs. Set it back to an empty list to recover the previous behavior. diff --git a/doc/api/next_api_changes/behavior/23443-AL.rst b/doc/api/next_api_changes/behavior/23443-AL.rst deleted file mode 100644 index 179c36dcc261..000000000000 --- a/doc/api/next_api_changes/behavior/23443-AL.rst +++ /dev/null @@ -1,2 +0,0 @@ -The pgf backend now uses the article documentclass as basis for compilation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/api/next_api_changes/behavior/23475-WLQ.rst b/doc/api/next_api_changes/behavior/23475-WLQ.rst deleted file mode 100644 index 9f46e0ade107..000000000000 --- a/doc/api/next_api_changes/behavior/23475-WLQ.rst +++ /dev/null @@ -1,5 +0,0 @@ -The markerfacecoloralt parameter to Line2D is now supported by axes.errorbar -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- markerfacecoloralt is now passed to the line plotter from axes.errorbar -- Documentation for axes.errorbar how accurately lists which properties are - passed on to Line2D, rather than claiming that all kwargs are passed on diff --git a/doc/api/next_api_changes/behavior/23516-MS.rst b/doc/api/next_api_changes/behavior/23516-MS.rst deleted file mode 100644 index 1d66b6d22eb8..000000000000 --- a/doc/api/next_api_changes/behavior/23516-MS.rst +++ /dev/null @@ -1,6 +0,0 @@ -Warning when scatter plot color settings discarded -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When making an animation of a scatter plot, if you don't set *c* (the color -value parameter) when initializing the artist, the color settings are ignored. -`.Axes.scatter` now raises a warning if color-related settings are changed -without setting *c*. diff --git a/doc/api/next_api_changes/behavior/23550-OG.rst b/doc/api/next_api_changes/behavior/23550-OG.rst deleted file mode 100644 index 6f7420e431ff..000000000000 --- a/doc/api/next_api_changes/behavior/23550-OG.rst +++ /dev/null @@ -1,10 +0,0 @@ -Specified exception types in Grid -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In a few cases an `Exception` was thrown when an incorrect argument value -was set in the `mpl_toolkits.axes_grid1.axes_grid.Grid` -(= `mpl_toolkits.axisartist.axes_grid.Grid`) constructor. These are replaced -as follows: - -* Providing an incorrect value for *ngrids* now raises a `ValueError` -* Providing an incorrect type for *rect* now raises a `TypeError` diff --git a/doc/api/next_api_changes/deprecations/16931-AL.rst b/doc/api/next_api_changes/deprecations/16931-AL.rst deleted file mode 100644 index 3dfa7d2cbaf7..000000000000 --- a/doc/api/next_api_changes/deprecations/16931-AL.rst +++ /dev/null @@ -1,11 +0,0 @@ -Event handlers -~~~~~~~~~~~~~~ -The ``draw_event``, ``resize_event``, ``close_event``, ``key_press_event``, -``key_release_event``, ``pick_event``, ``scroll_event``, -``button_press_event``, ``button_release_event``, ``motion_notify_event``, -``enter_notify_event`` and ``leave_notify_event`` methods of `.FigureCanvasBase` -are deprecated. They had inconsistent signatures across backends, and made it -difficult to improve event metadata. - -In order to trigger an event on a canvas, directly construct an `.Event` object -of the correct class and call ``canvas.callbacks.process(event.name, event)``. diff --git a/doc/api/next_api_changes/deprecations/20071-AL.rst b/doc/api/next_api_changes/deprecations/20071-AL.rst deleted file mode 100644 index cf07224581ad..000000000000 --- a/doc/api/next_api_changes/deprecations/20071-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``axes_size`` internal helpers -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following APIs are deprecated: ``axes_size.Padded`` (use ``size + pad`` -instead), ``axes_size.SizeFromFunc``, ``axes_size.GetExtentHelper``. diff --git a/doc/api/next_api_changes/deprecations/20839-EP.rst b/doc/api/next_api_changes/deprecations/20839-EP.rst deleted file mode 100644 index 1388abca194f..000000000000 --- a/doc/api/next_api_changes/deprecations/20839-EP.rst +++ /dev/null @@ -1,4 +0,0 @@ -Selector widget state internals -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The *state_modifier_keys* attribute have been privatized and the modifier keys -needs to be set when creating the widget. diff --git a/doc/api/next_api_changes/deprecations/20995-AL.rst b/doc/api/next_api_changes/deprecations/20995-AL.rst deleted file mode 100644 index bdccd8f5d333..000000000000 --- a/doc/api/next_api_changes/deprecations/20995-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``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 deleted file mode 100644 index c97a7f2dfde6..000000000000 --- a/doc/api/next_api_changes/deprecations/21056-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -Calling ``MarkerStyle()`` with no arguments or ``MarkerStyle(None)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated; use ``MarkerStyle("")`` to construct an empty marker style. diff --git a/doc/api/next_api_changes/deprecations/21187-AL.rst b/doc/api/next_api_changes/deprecations/21187-AL.rst deleted file mode 100644 index 8f4e1be05a8b..000000000000 --- a/doc/api/next_api_changes/deprecations/21187-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``backend_gtk3.error_msg_gtk`` and ``backend_wx.error_msg_wx`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated. diff --git a/doc/api/next_api_changes/deprecations/21356-AL.rst b/doc/api/next_api_changes/deprecations/21356-AL.rst deleted file mode 100644 index de6cb79dd908..000000000000 --- a/doc/api/next_api_changes/deprecations/21356-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -In the future, ``dviread.find_tex_file`` will raise a ``FileNotFoundError`` for missing files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Previously, it would return an empty string in such cases. Raising an -exception allows attaching a user-friendly message instead. During the -transition period, a warning is raised. diff --git a/doc/api/next_api_changes/deprecations/21412-AL.rst b/doc/api/next_api_changes/deprecations/21412-AL.rst deleted file mode 100644 index e101620739d9..000000000000 --- a/doc/api/next_api_changes/deprecations/21412-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``backend_svg.generate_transform`` and ``backend_svg.generate_css`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated with no replacement. diff --git a/doc/api/next_api_changes/deprecations/21425-AL.rst b/doc/api/next_api_changes/deprecations/21425-AL.rst deleted file mode 100644 index d6652bfbac57..000000000000 --- a/doc/api/next_api_changes/deprecations/21425-AL.rst +++ /dev/null @@ -1,15 +0,0 @@ -3D Axis -~~~~~~~ -The previous constructor of `.axis3d.Axis`, with signature -``(self, adir, v_intervalx, d_intervalx, axes, *args, rotate_label=None, **kwargs)`` -is deprecated in favor of a new signature closer to the one of 2D Axis; it -is now ``(self, axes, *, rotate_label=None, **kwargs)`` where ``kwargs`` are -forwarded to the 2D Axis constructor. The axis direction is now inferred from -the axis class' ``axis_name`` attribute (as in the 2D case); the ``adir`` -attribute is deprecated. - -The ``init3d`` method of 3D Axis is also deprecated; all the relevant -initialization is done as part of the constructor. - -The ``d_interval`` and ``v_interval`` attributes of 3D Axis are deprecated; use -``get_data_interval`` and ``get_view_interval`` instead. diff --git a/doc/api/next_api_changes/deprecations/21584-AL.rst b/doc/api/next_api_changes/deprecations/21584-AL.rst deleted file mode 100644 index c6f47530cddb..000000000000 --- a/doc/api/next_api_changes/deprecations/21584-AL.rst +++ /dev/null @@ -1,6 +0,0 @@ -Modifications to the Groupers returned by ``get_shared_x_axes`` and ``get_shared_y_axes`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated. In the future, these methods will return immutable views -on the grouper structures. Note that previously, calling e.g. ``join()`` -would already fail to set up the correct structures for sharing axes; use -`.Axes.sharex` or `.Axes.sharey` instead. diff --git a/doc/api/next_api_changes/deprecations/21962-AL.rst b/doc/api/next_api_changes/deprecations/21962-AL.rst deleted file mode 100644 index e5ddab747b48..000000000000 --- a/doc/api/next_api_changes/deprecations/21962-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``backend_pgf`` -~~~~~~~~~~~~~~~ -The following API elements have been deprecated with no -replacement: ``NO_ESCAPE``, ``re_mathsep``, ``get_fontspec``, ``get_preamble``, -``common_texification``, ``writeln``. diff --git a/doc/api/next_api_changes/deprecations/21965-AL.rst b/doc/api/next_api_changes/deprecations/21965-AL.rst deleted file mode 100644 index 6ba7bf3cc852..000000000000 --- a/doc/api/next_api_changes/deprecations/21965-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``transOffset`` parameter name -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ``transOffset`` parameter of `.Collection.set_offset_transform` and the -various ``create_collection`` methods of legend handlers has been renamed to -``offset_transform`` (consistently with the property name). diff --git a/doc/api/next_api_changes/deprecations/21981-AL.rst b/doc/api/next_api_changes/deprecations/21981-AL.rst deleted file mode 100644 index 5641f09e4991..000000000000 --- a/doc/api/next_api_changes/deprecations/21981-AL.rst +++ /dev/null @@ -1,8 +0,0 @@ -``RendererGTK3Cairo`` and ``RendererGTK4Cairo`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... have been deprecated. Use ``RendererCairo`` instead, which has gained -the ``set_context`` method, which also auto-infers the size of the underlying -surface. - -``RendererCairo.set_ctx_from_surface`` and ``RendererCairo.set_width_height`` -have likewise been deprecated, in favor of ``set_context``. diff --git a/doc/api/next_api_changes/deprecations/21982-AL.rst b/doc/api/next_api_changes/deprecations/21982-AL.rst deleted file mode 100644 index 38f37db510a7..000000000000 --- a/doc/api/next_api_changes/deprecations/21982-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``FigureManagerGTK3Agg`` and ``FigureManagerGTK4Agg`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated; directly use ``FigureManagerGTK3`` and -``FigureManagerGTK4`` instead. diff --git a/doc/api/next_api_changes/deprecations/21992-AL.rst b/doc/api/next_api_changes/deprecations/21992-AL.rst deleted file mode 100644 index e3bdaba31267..000000000000 --- a/doc/api/next_api_changes/deprecations/21992-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``lastrect`` -~~~~~~~~~~~~ -The ``lastrect`` attribute of ``NavigationToolbar2Tk`` and ``RubberbandTk`` is -deprecated. diff --git a/doc/api/next_api_changes/deprecations/21995-AL.rst b/doc/api/next_api_changes/deprecations/21995-AL.rst deleted file mode 100644 index e9b7dab027f0..000000000000 --- a/doc/api/next_api_changes/deprecations/21995-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``ImageMagickBase.delay`` and ``ImageMagickBase.output_args`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -are deprecated with no replacement. diff --git a/doc/api/next_api_changes/deprecations/22021-AL.rst b/doc/api/next_api_changes/deprecations/22021-AL.rst deleted file mode 100644 index 24b565409b97..000000000000 --- a/doc/api/next_api_changes/deprecations/22021-AL.rst +++ /dev/null @@ -1,9 +0,0 @@ -``NavigationToolbar2GTK3`` window -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The *window* parameter to ``NavigationToolbar2GTK3`` had no effect, and is now -deprecated; likewise, the ``win`` attribute is deprecated. - -``NavigationToolbar2Tk`` window -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The *window* attribute to ``NavigationToolbar2GTK3`` is deprecated. Use -``toolbar.master`` instead. diff --git a/doc/api/next_api_changes/deprecations/22025-AL.rst b/doc/api/next_api_changes/deprecations/22025-AL.rst deleted file mode 100644 index 52a4fc04707a..000000000000 --- a/doc/api/next_api_changes/deprecations/22025-AL.rst +++ /dev/null @@ -1,14 +0,0 @@ -``FigureFrameWx`` attributes and methods -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ``sizer`` is deprecated (use ``frame.GetSizer()`` instead). -- ``figmgr`` and ``get_figure_manager`` are deprecated (use - ``frame.canvas.manager`` instead). -- ``num`` is deprecated (use ``frame.canvas.manager.num`` instead). -- ``toolbar`` is deprecated (use ``frame.GetToolBar()`` - instead). -- ``toolmanager`` is deprecated (use ``frame.canvas.manager.toolmanager`` - instead). - -``RendererWx.offset_text_height`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated. diff --git a/doc/api/next_api_changes/deprecations/22050-AL.rst b/doc/api/next_api_changes/deprecations/22050-AL.rst deleted file mode 100644 index df32560157c3..000000000000 --- a/doc/api/next_api_changes/deprecations/22050-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``FigureCanvasBase.resize`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This method has no effect and is deprecated. Use ``FigureManagerBase.resize`` -instead. diff --git a/doc/api/next_api_changes/deprecations/22051-AL.rst b/doc/api/next_api_changes/deprecations/22051-AL.rst deleted file mode 100644 index 468cdd39ae53..000000000000 --- a/doc/api/next_api_changes/deprecations/22051-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``FigureCanvas`` without a ``required_interactive_framework`` attribute -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Support for such canvas classes is deprecated. Note that canvas classes which -inherit from ``FigureCanvasBase`` always have such an attribute. diff --git a/doc/api/next_api_changes/deprecations/22084-SS.rst b/doc/api/next_api_changes/deprecations/22084-SS.rst deleted file mode 100644 index ff835dce710c..000000000000 --- a/doc/api/next_api_changes/deprecations/22084-SS.rst +++ /dev/null @@ -1,4 +0,0 @@ -``Axes3D.dist`` -~~~~~~~~~~~~~~~ -... has been privatized. Use the ``zoom`` keyword argument in -`.Axes3D.set_box_aspect` instead. diff --git a/doc/api/next_api_changes/deprecations/22097-AL.rst b/doc/api/next_api_changes/deprecations/22097-AL.rst deleted file mode 100644 index 0af7e16264c8..000000000000 --- a/doc/api/next_api_changes/deprecations/22097-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``AxisArtistHelper.delta1`` and ``AxisArtistHelper.delta2`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated with no replacement. diff --git a/doc/api/next_api_changes/deprecations/22098-AL.rst b/doc/api/next_api_changes/deprecations/22098-AL.rst deleted file mode 100644 index 67672bfe788e..000000000000 --- a/doc/api/next_api_changes/deprecations/22098-AL.rst +++ /dev/null @@ -1,13 +0,0 @@ -``axes_grid`` and ``axisartist`` removals -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following deprecated APIs have been removed: - -- ``SubplotDivider.figbox``, ``SubplotDivider.update_params``, -- ``SubplotDivider.get_geometry`` (use ``get_subplotspec`` instead), -- ``change_geometry`` (use ``set_subplotspec`` instead), -- ``ParasiteAxesBase.update_viewlim`` (use ``apply_aspect`` instead), -- ``ParasiteAxesAuxTransBase`` (use ``ParasiteAxesBase`` instead), -- ``parasite_axes_auxtrans_class_factory`` (use ``parasite_axes_class_factory`` - instead), -- ``ParasiteAxesAuxTrans`` (use ``ParasiteAxes`` instead), diff --git a/doc/api/next_api_changes/deprecations/22123-TH.rst b/doc/api/next_api_changes/deprecations/22123-TH.rst deleted file mode 100644 index 5b65ac760bd6..000000000000 --- a/doc/api/next_api_changes/deprecations/22123-TH.rst +++ /dev/null @@ -1,4 +0,0 @@ -``Axes.get_window_extent`` and ``Figure.get_window_extent`` won't accept parameters other than *renderer* anymore -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This aligns the API with the general `.Artist.get_window_extent` API. -All parameters were ignored anyway. diff --git a/doc/api/next_api_changes/deprecations/22133-OG.rst b/doc/api/next_api_changes/deprecations/22133-OG.rst deleted file mode 100644 index 7a551d25ce0a..000000000000 --- a/doc/api/next_api_changes/deprecations/22133-OG.rst +++ /dev/null @@ -1,6 +0,0 @@ -``AFM``, ``configfont_pattern`` and ``Type1Font`` deprecated ------------------------------------------------------------- - -The modules ``matplotlib.AFM``, ``matplotlib.configfont_pattern``, and -``matplotlib.Type1Font`` are considered internal and public access is -deprecated. diff --git a/doc/api/next_api_changes/deprecations/22134-OG.rst b/doc/api/next_api_changes/deprecations/22134-OG.rst deleted file mode 100644 index fc68b4b7b473..000000000000 --- a/doc/api/next_api_changes/deprecations/22134-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -Modules ``tight_bbox`` and ``tight_layout`` deprecated ------------------------------------------------------- - -The modules ``matplotlib.tight_bbox`` and ``matplotlib.tight_layout`` are -considered internal and public access is deprecated. diff --git a/doc/api/next_api_changes/deprecations/22148-OG.rst b/doc/api/next_api_changes/deprecations/22148-OG.rst deleted file mode 100644 index 70a59ba39042..000000000000 --- a/doc/api/next_api_changes/deprecations/22148-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -Module ``docstring`` deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The module ``matplotlib.docstring`` is considered internal and public access -is deprecated. diff --git a/doc/api/next_api_changes/deprecations/22167-EP.rst b/doc/api/next_api_changes/deprecations/22167-EP.rst deleted file mode 100644 index 5cc1c9991e01..000000000000 --- a/doc/api/next_api_changes/deprecations/22167-EP.rst +++ /dev/null @@ -1,4 +0,0 @@ -Selector widget state internals -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The *visible* attribute has been deprecated, use *set_visible* or -*get_visible* instead. diff --git a/doc/api/next_api_changes/deprecations/22245-AL.rst b/doc/api/next_api_changes/deprecations/22245-AL.rst deleted file mode 100644 index e49a44e69b4b..000000000000 --- a/doc/api/next_api_changes/deprecations/22245-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -*cleared* parameter of ``get_renderer`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This parameter, which only existed for agg-based backends, has been deprecated. -Use ``renderer.clear()`` instead to explicitly clear the renderer buffer. diff --git a/doc/api/next_api_changes/deprecations/22268-OG.rst b/doc/api/next_api_changes/deprecations/22268-OG.rst deleted file mode 100644 index 79efe3783cea..000000000000 --- a/doc/api/next_api_changes/deprecations/22268-OG.rst +++ /dev/null @@ -1,10 +0,0 @@ -``ticker`` functions deprecated -------------------------------- - -The functions ``matplotlib.ticker.is_decade`` and -``matplotlib.ticker.is_close_to_int`` are considered internal and public access -is deprecated. - -For ``is_close_to_int`` use ``math.isclose(x, round(x))`` instead. -For ``is_decade`` use -``y = numpy.log(x)/numpy.log(base); numpy.isclose(y, numpy.round(y))`` diff --git a/doc/api/next_api_changes/deprecations/22298-GL.rst b/doc/api/next_api_changes/deprecations/22298-GL.rst deleted file mode 100644 index 814f7c4e48bc..000000000000 --- a/doc/api/next_api_changes/deprecations/22298-GL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``cmap_d`` removal -~~~~~~~~~~~~~~~~~~ - -The deprecated ``matplotlib.cm.cmap_d`` access to global colormaps -has been removed. diff --git a/doc/api/next_api_changes/deprecations/22317-AL.rst b/doc/api/next_api_changes/deprecations/22317-AL.rst deleted file mode 100644 index 0b6093a993ce..000000000000 --- a/doc/api/next_api_changes/deprecations/22317-AL.rst +++ /dev/null @@ -1,8 +0,0 @@ -seaborn styles renamed -~~~~~~~~~~~~~~~~~~~~~~ -Matplotlib currently ships many style files inspired from the seaborn -library ("seaborn", "seaborn-bright", "seaborn-colorblind", etc.) but they -have gone out of sync with the library itself since the release of seaborn -0.9. To prevent confusion, the style files have been renamed "seaborn-v0_8", -"seaborn-v0_8-bright", "seaborn-v0_8-colorblind", etc. Users are encouraged to -directly use seaborn to access the up-to-date styles. diff --git a/doc/api/next_api_changes/deprecations/22323-GL.rst b/doc/api/next_api_changes/deprecations/22323-GL.rst deleted file mode 100644 index b755c7804731..000000000000 --- a/doc/api/next_api_changes/deprecations/22323-GL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``matplotlib.cbook.maxdict`` is deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This class has been deprecated in favor of the standard library -``functools.lru_cache``. diff --git a/doc/api/next_api_changes/deprecations/22345-JK.rst b/doc/api/next_api_changes/deprecations/22345-JK.rst deleted file mode 100644 index 003952fd705f..000000000000 --- a/doc/api/next_api_changes/deprecations/22345-JK.rst +++ /dev/null @@ -1,14 +0,0 @@ -Pending deprecation of layout methods -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The methods `~.Figure.set_tight_layout`, `~.Figure.set_constrained_layout`, -are discouraged, and now emit a ``PendingDeprecationWarning`` in favor of -explicitly referencing the layout engine via -``figure.set_layout_engine('tight')`` and -``figure.set_layout_engine('constrained')``. End users should not see the -warning, but library authors should adjust. - -The methods `~.Figure.set_constrained_layout_pads` and -`~.Figure.get_constrained_layout_pads` are will be deprecated in favor of -``figure.get_layout_engine().set()`` and -``figure.get_layout_engine().get()``, and currently emit a -``PendingDeprecationWarning``. diff --git a/doc/api/next_api_changes/deprecations/22415-AL.rst b/doc/api/next_api_changes/deprecations/22415-AL.rst deleted file mode 100644 index 4991834136ef..000000000000 --- a/doc/api/next_api_changes/deprecations/22415-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -*emit* and *auto* parameters of ``set_xlim``, ``set_ylim``, ``set_zlim``, ``set_rlim`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Passing these parameters positionally is deprecated; they will become -keyword-only in a future release. diff --git a/doc/api/next_api_changes/deprecations/22418-AL.rst b/doc/api/next_api_changes/deprecations/22418-AL.rst deleted file mode 100644 index 8e7fb763223b..000000000000 --- a/doc/api/next_api_changes/deprecations/22418-AL.rst +++ /dev/null @@ -1,6 +0,0 @@ -Auto-removal of overlapping Axes by ``plt.subplot`` and ``plt.subplot2grid`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Previously, `.pyplot.subplot` and `.pyplot.subplot2grid` would automatically -remove preexisting Axes that overlap with the newly added Axes. This behavior -was deemed confusing, and is now deprecated. Explicitly call ``ax.remove()`` -on Axes that need to be removed. diff --git a/doc/api/next_api_changes/deprecations/22421-AL.rst b/doc/api/next_api_changes/deprecations/22421-AL.rst deleted file mode 100644 index 36b92d233d12..000000000000 --- a/doc/api/next_api_changes/deprecations/22421-AL.rst +++ /dev/null @@ -1,5 +0,0 @@ -Parameters to ``plt.figure()`` and the ``Figure`` constructor -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -All parameters to `.pyplot.figure` and the `.Figure` constructor, other than -*num*, *figsize*, and *dpi*, will become keyword-only after a deprecation -period. diff --git a/doc/api/next_api_changes/deprecations/22422-AL.rst b/doc/api/next_api_changes/deprecations/22422-AL.rst deleted file mode 100644 index 174e4e50f1d3..000000000000 --- a/doc/api/next_api_changes/deprecations/22422-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``backend_ps.convert_psfrags`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated. diff --git a/doc/api/next_api_changes/deprecations/22490-AL.rst b/doc/api/next_api_changes/deprecations/22490-AL.rst deleted file mode 100644 index 735a1ca350c3..000000000000 --- a/doc/api/next_api_changes/deprecations/22490-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``Affine2D.identity()`` -~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated in favor of directly calling the `.Affine2D` constructor with -no arguments. diff --git a/doc/api/next_api_changes/deprecations/22503-AL.rst b/doc/api/next_api_changes/deprecations/22503-AL.rst deleted file mode 100644 index fb5990e5c4f0..000000000000 --- a/doc/api/next_api_changes/deprecations/22503-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``backend_qt.qApp`` -~~~~~~~~~~~~~~~~~~~ -... is deprecated. Use ``QtWidgets.QApplication.instance()`` instead. diff --git a/doc/api/next_api_changes/deprecations/22506-AL.rst b/doc/api/next_api_changes/deprecations/22506-AL.rst deleted file mode 100644 index fe3611563c63..000000000000 --- a/doc/api/next_api_changes/deprecations/22506-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``MathtextBackend``, ``MathtextBackendAgg``, ``MathtextBackendPath``, ``MathTextWarning`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated with no replacement. diff --git a/doc/api/next_api_changes/deprecations/22509-AL.rst b/doc/api/next_api_changes/deprecations/22509-AL.rst deleted file mode 100644 index 01191b500757..000000000000 --- a/doc/api/next_api_changes/deprecations/22509-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``ToolBase.destroy`` -~~~~~~~~~~~~~~~~~~~~ -... is deprecated. To run code upon tool removal, connect to the -``tool_removed_event`` event. diff --git a/doc/api/next_api_changes/deprecations/22539-AL.rst b/doc/api/next_api_changes/deprecations/22539-AL.rst deleted file mode 100644 index 51e2d2a77de4..000000000000 --- a/doc/api/next_api_changes/deprecations/22539-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``matplotlib.text.get_rotation()`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated with no replacement. Copy the original implementation if -needed. diff --git a/doc/api/next_api_changes/deprecations/22547-AL.rst b/doc/api/next_api_changes/deprecations/22547-AL.rst deleted file mode 100644 index 274d3fa3f014..000000000000 --- a/doc/api/next_api_changes/deprecations/22547-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``TextToPath.get_texmanager`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated; directly construct a `.texmanager.TexManager` instead. diff --git a/doc/api/next_api_changes/deprecations/22554-AL.rst b/doc/api/next_api_changes/deprecations/22554-AL.rst deleted file mode 100644 index f7c461c2bbf0..000000000000 --- a/doc/api/next_api_changes/deprecations/22554-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``_DummyAxis.dataLim`` and ``_DummyAxis.viewLim`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated. Use ``get_data_interval()``, ``set_data_interval()``, -``get_view_interval()``, and ``set_view_interval()`` instead. diff --git a/doc/api/next_api_changes/deprecations/22697-OG.rst b/doc/api/next_api_changes/deprecations/22697-OG.rst deleted file mode 100644 index d3ac3d85f0fc..000000000000 --- a/doc/api/next_api_changes/deprecations/22697-OG.rst +++ /dev/null @@ -1,9 +0,0 @@ -Deprecations in ``testing.decorators`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The unused class ``CleanupTestCase`` and decorator ``cleanup`` are deprecated -and will be removed. Vendor the code, including the private function -``_cleanup_cm``. - -The function ``check_freetype_version`` is considered internal and deprecated. -Vendor the code of the private function ``_check_freetype_version``. diff --git a/doc/api/next_api_changes/deprecations/22725-AL.rst b/doc/api/next_api_changes/deprecations/22725-AL.rst deleted file mode 100644 index 4ca25374c2e4..000000000000 --- a/doc/api/next_api_changes/deprecations/22725-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``TexManager.get_font_config`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated with no replacement. (It previously returned an internal -hashed key for used for caching purposes.) diff --git a/doc/api/next_api_changes/deprecations/22797-OG.rst b/doc/api/next_api_changes/deprecations/22797-OG.rst deleted file mode 100644 index c263a3969d4b..000000000000 --- a/doc/api/next_api_changes/deprecations/22797-OG.rst +++ /dev/null @@ -1,12 +0,0 @@ -Deprecation of helper functions in backends -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following functions are considered private and deprecated. Vendor the code -of the similarly named private functions if you rely on these functions. - -* ``backend_pdf.fill`` -* ``backend_ps.quote_ps_string`` -* ``backend_svg.escape_attrib`` -* ``backend_svg.escape_cdata`` -* ``backend_svg.escape_comment`` -* ``backend_svg.short_float_fmt`` diff --git a/doc/api/next_api_changes/deprecations/22813-GL.rst b/doc/api/next_api_changes/deprecations/22813-GL.rst deleted file mode 100644 index 476ee7975e17..000000000000 --- a/doc/api/next_api_changes/deprecations/22813-GL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``figure.callbacks`` is deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The figure callbacks property is deprecated. The only signal was -"dpi_changed", which can be replaced by connecting to the "resize_event" -on the canvas ``figure.canvas.mpl_connect("resize_event", func)`` instead. diff --git a/doc/api/next_api_changes/deprecations/22883-AL.rst b/doc/api/next_api_changes/deprecations/22883-AL.rst deleted file mode 100644 index 916658e6f1e2..000000000000 --- a/doc/api/next_api_changes/deprecations/22883-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -Passing too many positional arguments to ``tripcolor`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is now deprecated (extra arguments were previously silently ignored). diff --git a/doc/api/next_api_changes/deprecations/22885-AL.rst b/doc/api/next_api_changes/deprecations/22885-AL.rst deleted file mode 100644 index 3eb235cb7c8c..000000000000 --- a/doc/api/next_api_changes/deprecations/22885-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``backend_pdf.Operator`` and ``backend_pdf.Op.op`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated in favor of a single standard `enum.Enum` interface on -`.backend_pdf.Op`. diff --git a/doc/api/next_api_changes/deprecations/23014-OG.rst b/doc/api/next_api_changes/deprecations/23014-OG.rst deleted file mode 100644 index b7d995e22802..000000000000 --- a/doc/api/next_api_changes/deprecations/23014-OG.rst +++ /dev/null @@ -1,10 +0,0 @@ -Methods to set parameters in ``LogLocator`` and ``LogFormatter*`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In `~.LogFormatter` and derived subclasses, the methods ``base`` and -``label_minor`` for setting the respective parameter are deprecated and -replaced by ``set_base`` and ``set_label_minor``, respectively. - -In `~.LogLocator`, the methods ``base`` and ``subs`` for setting the -respective parameter are deprecated. Instead, use -``set_params(base=..., subs=...)``. diff --git a/doc/api/next_api_changes/deprecations/23045-OG.rst b/doc/api/next_api_changes/deprecations/23045-OG.rst deleted file mode 100644 index e10c410999ad..000000000000 --- a/doc/api/next_api_changes/deprecations/23045-OG.rst +++ /dev/null @@ -1,7 +0,0 @@ -``checkdep_usetex`` deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -This method was only intended to disable tests in case no latex install was -found. As such, it is considered to be private and for internal use only. - -Please vendor the code if you need this. diff --git a/doc/api/next_api_changes/deprecations/23081-OG.rst b/doc/api/next_api_changes/deprecations/23081-OG.rst deleted file mode 100644 index da7f697023c0..000000000000 --- a/doc/api/next_api_changes/deprecations/23081-OG.rst +++ /dev/null @@ -1,8 +0,0 @@ -``date_ticker_factory`` deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``date_ticker_factory`` method in the `matplotlib.dates` module is -deprecated. Instead use `~.AutoDateLocator` and `~.AutoDateFormatter` for a -more flexible and scalable locator and formatter. - -If you need the exact ``date_ticker_factory`` behavior, please copy the code. diff --git a/doc/api/next_api_changes/deprecations/23166-ES.rst b/doc/api/next_api_changes/deprecations/23166-ES.rst deleted file mode 100644 index 34392973306f..000000000000 --- a/doc/api/next_api_changes/deprecations/23166-ES.rst +++ /dev/null @@ -1,6 +0,0 @@ -Positional arguments in Artist constructors -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Passing all but the very few first arguments positionally in the constructors -of Artists is deprecated. Most arguments will become keyword-only in a future -version. diff --git a/doc/api/next_api_changes/deprecations/23190-OG.rst b/doc/api/next_api_changes/deprecations/23190-OG.rst deleted file mode 100644 index 0fe0624a2382..000000000000 --- a/doc/api/next_api_changes/deprecations/23190-OG.rst +++ /dev/null @@ -1,9 +0,0 @@ -Unused methods in ``Axis``, ``Tick``, ``XAxis``, and ``YAxis`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following methods are no longer used and deprecated without a replacement:: - - - ``Axis.get_ticklabel_extents`` - - ``Tick.get_pad_pixels`` - - ``XAxis.get_text_heights`` - - ``YAxis.get_text_widths`` diff --git a/doc/api/next_api_changes/deprecations/23202-GL.rst b/doc/api/next_api_changes/deprecations/23202-GL.rst deleted file mode 100644 index c4e7a6538a7c..000000000000 --- a/doc/api/next_api_changes/deprecations/23202-GL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``Axes.get_renderer_cache`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The canvas now takes care of the renderer and whether to cache it -or not. The alternative is to call ``axes.figure.canvas.get_renderer()``. diff --git a/doc/api/next_api_changes/deprecations/23232-TH.rst b/doc/api/next_api_changes/deprecations/23232-TH.rst deleted file mode 100644 index c4df9f3bc666..000000000000 --- a/doc/api/next_api_changes/deprecations/23232-TH.rst +++ /dev/null @@ -1,6 +0,0 @@ -Passing *linefmt* positionally is undeprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Positional use of all formatting parameters in `~.Axes.stem` has been -deprecated since Matplotlib 3.5. This deprecation is relaxed so that one can -still pass *linefmt* positionally, i.e. ``stem(x, y, 'r')``. diff --git a/doc/api/next_api_changes/deprecations/23289-AL.rst b/doc/api/next_api_changes/deprecations/23289-AL.rst deleted file mode 100644 index 85ce88e6fe1c..000000000000 --- a/doc/api/next_api_changes/deprecations/23289-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``backend_pdf.Name.hexify`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated with no replacement. diff --git a/doc/api/next_api_changes/deprecations/23302-TH.rst b/doc/api/next_api_changes/deprecations/23302-TH.rst deleted file mode 100644 index 777c1f975590..000000000000 --- a/doc/api/next_api_changes/deprecations/23302-TH.rst +++ /dev/null @@ -1,4 +0,0 @@ -``stem(..., use_line_collection=False)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated with no replacement. This was compatibility fallback to a -former more inefficient representation of the stem lines. diff --git a/doc/api/next_api_changes/deprecations/23348-AL.rst b/doc/api/next_api_changes/deprecations/23348-AL.rst deleted file mode 100644 index e4f0443f58e0..000000000000 --- a/doc/api/next_api_changes/deprecations/23348-AL.rst +++ /dev/null @@ -1,7 +0,0 @@ -The ``canvas`` and ``background`` attributes of ``MultiCursor`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated with no replacement. - -All parameters to ``MultiCursor`` starting from *useblit* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are becoming keyword-only (passing them positionally is deprecated). diff --git a/doc/api/next_api_changes/deprecations/23444-AL.rst b/doc/api/next_api_changes/deprecations/23444-AL.rst deleted file mode 100644 index 6c4d4603ff9f..000000000000 --- a/doc/api/next_api_changes/deprecations/23444-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -The ``texcommand`` and ``latex_header`` attributes of ``backend_pgf.LatexManager`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated. diff --git a/doc/api/next_api_changes/deprecations/23448-AL.rst b/doc/api/next_api_changes/deprecations/23448-AL.rst deleted file mode 100644 index 11a1c6395c94..000000000000 --- a/doc/api/next_api_changes/deprecations/23448-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``FigureCanvasBase.pick`` -~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated. Directly call `.Figure.pick`, which has taken over the -responsibility of checking the canvas widgetlock as well. diff --git a/doc/api/next_api_changes/deprecations/23455-OG.rst b/doc/api/next_api_changes/deprecations/23455-OG.rst deleted file mode 100644 index 826aef546a16..000000000000 --- a/doc/api/next_api_changes/deprecations/23455-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -``w_xaxis``, ``w_yaxis``, and ``w_zaxis`` of ``Axis3D`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -... have been pending deprecation since 3.1. They are now deprecated. -Instead use ``xaxis``, ``yaxis``, and ``zaxis``. diff --git a/doc/api/next_api_changes/deprecations/23463-OG.rst b/doc/api/next_api_changes/deprecations/23463-OG.rst deleted file mode 100644 index 7d8309462dbf..000000000000 --- a/doc/api/next_api_changes/deprecations/23463-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -``Tick.label`` -~~~~~~~~~~~~~~ - -... has been pending deprecation since 3.1 and is now deprecated. -Use ``Tick.label1`` instead. diff --git a/doc/api/next_api_changes/deprecations/23464-AL.rst b/doc/api/next_api_changes/deprecations/23464-AL.rst deleted file mode 100644 index 91ab83fc6fe9..000000000000 --- a/doc/api/next_api_changes/deprecations/23464-AL.rst +++ /dev/null @@ -1,2 +0,0 @@ -``FigureManagerMac.close`` is deprecated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/api/next_api_changes/deprecations/23469-AL.rst b/doc/api/next_api_changes/deprecations/23469-AL.rst deleted file mode 100644 index e045a9018ad6..000000000000 --- a/doc/api/next_api_changes/deprecations/23469-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``axislines.GridHelperBase.new_gridlines`` and ``axislines.Axes.new_gridlines`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... are deprecated. diff --git a/doc/api/next_api_changes/deprecations/23572-AL.rst b/doc/api/next_api_changes/deprecations/23572-AL.rst deleted file mode 100644 index 0569b3a73389..000000000000 --- a/doc/api/next_api_changes/deprecations/23572-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -``GridSpecBase.get_grid_positions(..., raw=True)`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated. diff --git a/doc/api/next_api_changes/deprecations/23647-OG.rst b/doc/api/next_api_changes/deprecations/23647-OG.rst deleted file mode 100644 index ee44f491812f..000000000000 --- a/doc/api/next_api_changes/deprecations/23647-OG.rst +++ /dev/null @@ -1,6 +0,0 @@ -``mplot3d.axis3d.Axis.set_pane_pos`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -... is deprecated. This is an internal method where the provided values are -overwritten during drawing. Hence, it does not serve any purpose to be -directly accessible. diff --git a/doc/api/next_api_changes/deprecations/23665-GL.rst b/doc/api/next_api_changes/deprecations/23665-GL.rst deleted file mode 100644 index 8cc893a7fa63..000000000000 --- a/doc/api/next_api_changes/deprecations/23665-GL.rst +++ /dev/null @@ -1,4 +0,0 @@ -The macosx backend toolbar ``prepare_configure_subplots`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - has been replaced by ``configure_subplots()``. diff --git a/doc/api/next_api_changes/deprecations/23668-TC.rst b/doc/api/next_api_changes/deprecations/23668-TC.rst deleted file mode 100644 index d131ff497fb1..000000000000 --- a/doc/api/next_api_changes/deprecations/23668-TC.rst +++ /dev/null @@ -1,22 +0,0 @@ -Pending deprecation top-level cmap registration and access functions in ``mpl.cm`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -As part of a `multi-step process -`_ we are refactoring -the global state for managing the registered colormaps. - -In Matplotlib 3.5 we added a `.ColormapRegistry` class and exposed an -instance at the top level as ``matplotlib.colormaps``. The existing -top level functions in `matplotlib.cm` (``get_cmap``, ``register_cmap``, -``unregister_cmap``) were changed to be aliases around the same instance. - -In Matplotlib 3.6 we have marked those top level functions as pending -deprecation with the intention of deprecation in Matplotlib 3.7. The -following functions have been marked for pending deprecation: - -- `matplotlib.cm.get_cmap` - use ``matplotlib.colormaps[name]`` instead -- `matplotlib.cm.register_cmap` - use ``matplotlib.colormaps.register`` instead -- `matplotlib.cm.unregister_cmap` - use ``matplotlib.colormaps.unregister`` instead -- ``matplotlib.pyplot.register_cmap`` - use ``matplotlib.colormaps.register`` instead - -The `matplotlib.pyplot.get_cmap` function will stay available for backward compatibility. diff --git a/doc/api/next_api_changes/deprecations/23675-OG.rst b/doc/api/next_api_changes/deprecations/23675-OG.rst deleted file mode 100644 index 1ab669c16b2a..000000000000 --- a/doc/api/next_api_changes/deprecations/23675-OG.rst +++ /dev/null @@ -1,7 +0,0 @@ -Helper functions in ``mplot3d.axis3d`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The two helper functions ``move_from_center`` and ``tick_update_position`` are -considered internal and deprecated. If these are required, please vendor the -code from the corresponding private methods ``_move_from_center`` and -``_tick_update_position``. diff --git a/doc/api/next_api_changes/deprecations/ZZZZZ-AL.rst b/doc/api/next_api_changes/deprecations/ZZZZZ-AL.rst deleted file mode 100644 index 845a7c063c77..000000000000 --- a/doc/api/next_api_changes/deprecations/ZZZZZ-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``mlab.stride_windows`` -~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated. Use ``np.lib.stride_tricks.sliding_window_view`` instead -(or ``np.lib.stride_tricks.as_strided`` on numpy<1.20). diff --git a/doc/api/next_api_changes/development/21415-AL.rst b/doc/api/next_api_changes/development/21415-AL.rst deleted file mode 100644 index 1fdf2e487160..000000000000 --- a/doc/api/next_api_changes/development/21415-AL.rst +++ /dev/null @@ -1,2 +0,0 @@ -``gui_support.macosx`` setup option has been renamed to ``packages.macosx`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/api/next_api_changes/development/22205-ES.rst b/doc/api/next_api_changes/development/22205-ES.rst deleted file mode 100644 index 4ed8793cfaa9..000000000000 --- a/doc/api/next_api_changes/development/22205-ES.rst +++ /dev/null @@ -1,15 +0,0 @@ -Increase to minimum supported versions of Python and dependencies -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For Matplotlib 3.6, the :ref:`minimum supported versions ` are -being bumped: - -+------------+-----------------+---------------+ -| Dependency | min in mpl3.5 | min in mpl3.6 | -+============+=================+===============+ -| Python | 3.7 | 3.8 | -| NumPy | 1.17 | 1.19 | -+------------+-----------------+---------------+ - -This is consistent with our :ref:`min_deps_policy` and `NEP29 -`__ diff --git a/doc/api/next_api_changes/development/22550-AL.rst b/doc/api/next_api_changes/development/22550-AL.rst deleted file mode 100644 index 444254e43baa..000000000000 --- a/doc/api/next_api_changes/development/22550-AL.rst +++ /dev/null @@ -1,2 +0,0 @@ -sphinx>=3.0 and numpydoc>=1.0 are now required for building the docs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/api/next_api_changes/removals/00001-DS.rst b/doc/api/next_api_changes/removals/00001-DS.rst deleted file mode 100644 index fcf6166e3970..000000000000 --- a/doc/api/next_api_changes/removals/00001-DS.rst +++ /dev/null @@ -1,28 +0,0 @@ -Removal of mplot3d deprecations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The deprecated ``renderer`` arguments have been removed from: - -- `.Line3DCollection.do_3d_projection` -- `.Patch3D.do_3d_projection` -- `.PathPatch3D.do_3d_projection` -- `.Path3DCollection.do_3d_projection` -- `.Patch3DCollection.do_3d_projection` -- `.Poly3DCollection.do_3d_projection` - -The deprecated ``project`` argument has also been removed from -``Line3DCollection.draw()``. - -Passing arguments not specifically listed in the signatures of -`.Axes3D.plot_surface` and `.Axes3D.plot_wireframe` is no longer supported. -Pass any extra arguments as keyword arguments instead. - -These properties of the 3D Axes that were placed on the Renderer during draw -have been removed: - -* ``renderer.M`` -* ``renderer.eye`` -* ``renderer.vvec`` -* ``renderer.get_axis_position`` - -These attributes are all available via `.Axes3D`, which can be accessed via -``self.axes`` on all `.Artist`\s. diff --git a/doc/api/next_api_changes/removals/20990-AL.rst b/doc/api/next_api_changes/removals/20990-AL.rst deleted file mode 100644 index 29e24786be85..000000000000 --- a/doc/api/next_api_changes/removals/20990-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -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/next_api_changes/removals/21395-AL.rst b/doc/api/next_api_changes/removals/21395-AL.rst deleted file mode 100644 index 8983b8b65819..000000000000 --- a/doc/api/next_api_changes/removals/21395-AL.rst +++ /dev/null @@ -1,3 +0,0 @@ -Unknown keyword arguments to ``savefig`` and ``FigureCanvas.print_foo`` methods -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... now raise a TypeError, instead of being ignored. diff --git a/doc/api/next_api_changes/removals/21591-AL.rst b/doc/api/next_api_changes/removals/21591-AL.rst deleted file mode 100644 index b2534b47818f..000000000000 --- a/doc/api/next_api_changes/removals/21591-AL.rst +++ /dev/null @@ -1,6 +0,0 @@ -``backend_tools.ToolFullScreen`` now inherits from ``ToolBase``, not from ``ToolToggleBase`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -`.ToolFullScreen` can only switch between the non-fullscreen -and fullscreen states, but not unconditionally put the window in a given state; -hence the ``enable`` and ``disable`` methods were misleadingly named. Thus, -the `.ToolToggleBase`-related API (``enable``, ``disable``, etc.) was removed. diff --git a/doc/api/next_api_changes/removals/21980-CC.rst b/doc/api/next_api_changes/removals/21980-CC.rst deleted file mode 100644 index b95029b92a3e..000000000000 --- a/doc/api/next_api_changes/removals/21980-CC.rst +++ /dev/null @@ -1,6 +0,0 @@ -Removed loaded modules logging -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The list of currently loaded modules is no longer logged at the DEBUG level at Matplotlib import time, -because it can produce extensive output and make other valuable DEBUG statements difficult to find. -If you were relying on this please arrange for your own logging (the built-in `sys.modules` can be used to get the currently loaded modules). diff --git a/doc/api/next_api_changes/removals/22081-AL.rst b/doc/api/next_api_changes/removals/22081-AL.rst deleted file mode 100644 index b525da4a5542..000000000000 --- a/doc/api/next_api_changes/removals/22081-AL.rst +++ /dev/null @@ -1,14 +0,0 @@ -colorbar defaults to stealing space from the mappable's axes rather than the current axes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If the mappable does not have an Axes, then an error will be raised. - -Pass the *cax* or *ax* argument to be explicit about where the colorbar will be -placed. Passing ``ax=plt.gca()`` will restore the previous behavior. - -Removal of deprecated ``colorbar`` APIs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following deprecated :mod:`.colorbar` APIs have been removed: -``ColorbarPatch`` and ``colorbar_factory`` (use `.Colorbar` instead); -``colorbar_doc``, ``colorbar_kw_doc``, ``make_axes_kw_doc``. diff --git a/doc/api/next_api_changes/removals/22107-OG.rst b/doc/api/next_api_changes/removals/22107-OG.rst deleted file mode 100644 index 7a068e501343..000000000000 --- a/doc/api/next_api_changes/removals/22107-OG.rst +++ /dev/null @@ -1,45 +0,0 @@ -Removal of deprecated ``mathtext`` APIs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following `matplotlib.mathtext` APIs have been removed: - -- ``Fonts`` and all its subclasses, -- ``FontConstantsBase`` and all its subclasses, -- ``Node`` and all its subclasses, -- ``Ship``, ``ship``, -- ``Error``, -- ``Parser``, -- ``SHRINK_FACTOR``, ``GROW_FACTOR``, -- ``NUM_SIZE_LEVELS``, -- ``latex_to_bakoma``, ``latex_to_cmex``, ``latex_to_standard``, -- ``stix_virtual_fonts``, -- ``tex2uni`` - -Removal of various ``mathtext`` helpers -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following `matplotlib.mathtext` classes: - -- ``MathtextBackendPdf``, -- ``MathtextBackendPs``, -- ``MathtextBackendSvg``, -- ``MathtextBackendCairo``, - -and the ``.mathtext_parser`` attributes on - -- `.RendererPdf`, -- `.RendererPS`, -- `.RendererSVG`, -- `.RendererCairo` - -have been removed. The `.MathtextBackendPath` class can be used instead. - -The methods ``get_depth``, ``parse``, ``to_mask``, ``to_rgba``, and ``to_png`` -of `.MathTextParser` have been removed. Use `.mathtext.math_to_image` instead. - -The unused ``StandardPsFonts.pswriter`` has been removed. - -``ps.useafm`` removed for ``mathtext`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The setting :rc:`ps.useafm` no longer has any effect on `matplotlib.mathtext`. diff --git a/doc/api/next_api_changes/removals/22365-OG.rst b/doc/api/next_api_changes/removals/22365-OG.rst deleted file mode 100644 index 071282e7569a..000000000000 --- a/doc/api/next_api_changes/removals/22365-OG.rst +++ /dev/null @@ -1,5 +0,0 @@ -Removal of deprecated ``MovieWriter.cleanup`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The cleanup logic is instead fully implemented in `.MovieWriter.finish` and -``cleanup`` is no longer called. diff --git a/doc/api/next_api_changes/removals/22465-AL.rst b/doc/api/next_api_changes/removals/22465-AL.rst deleted file mode 100644 index 95e3319cf149..000000000000 --- a/doc/api/next_api_changes/removals/22465-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``mpl_toolkits.axes_grid1.axes_size.AddList`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... is deprecated due to being unused. Use ``sum(sizes, start=Fixed(0))`` (for -example) to sum multiple size objects. diff --git a/doc/api/next_api_changes/removals/22486-OG.rst b/doc/api/next_api_changes/removals/22486-OG.rst deleted file mode 100644 index 7b143d873c98..000000000000 --- a/doc/api/next_api_changes/removals/22486-OG.rst +++ /dev/null @@ -1,7 +0,0 @@ -Removal of deprecated methods and properties in ``lines`` and ``patches`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The deprecated properties ``validCap`` and ``validJoin`` have been removed -from `~.Line2D` and `~.Patch` as the validation is centralized in ``rcsetup``. -The deprecated methods ``get_dpi_cor`` and ``set_dpi_cor`` have been removed -from `~.FancyArrowPatch` as the parameter ``dpi_cor`` is removed. diff --git a/doc/api/next_api_changes/removals/22514-OG.rst b/doc/api/next_api_changes/removals/22514-OG.rst deleted file mode 100644 index c426dd4e5c27..000000000000 --- a/doc/api/next_api_changes/removals/22514-OG.rst +++ /dev/null @@ -1,6 +0,0 @@ -Removal of deprecations in ``cbook`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The module ``cbook.deprecation`` is removed from the public API as it is -considered internal. This also holds for deprecation-related re-imports in -``cbook``: ``deprecated``, and ``warn_deprecated``. diff --git a/doc/api/next_api_changes/removals/22516-OG.rst b/doc/api/next_api_changes/removals/22516-OG.rst deleted file mode 100644 index 32068fdcdf4b..000000000000 --- a/doc/api/next_api_changes/removals/22516-OG.rst +++ /dev/null @@ -1,20 +0,0 @@ -Removal of deprecations in ``backends`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The parameter ``resize_callback`` is removed from the Tk backend. Instead, -use ``get_tk_widget().bind('', ..., True)``. - -The ``get_content_extents()`` and ``tostring_rgba_minimized()`` methods are -removed from the Agg backend with no replacements. - -The parameter ``dpi`` is removed from ``print_ps()`` in the PS backend and -``print_pdf()`` in the PDF backend. Instead, the methods obtain the DPI from -the ``savefig`` machinery. - -The classes ``TmpDirCleaner`` and ``GraphicsContextPS`` are removed from the -PGF and PS backends, respectively. For the latter, ``GraphicsContextBase`` can -be used as a replacement. - -In the WX backend, the property ``IDLE_DELAY`` is removed. In addition, the -parameter ``origin`` of ``gui_repaint()`` is removed, as well as the method -``get_canvas()``. No replacements are provided. diff --git a/doc/api/next_api_changes/removals/22738-JL.rst b/doc/api/next_api_changes/removals/22738-JL.rst deleted file mode 100644 index c1f50cd9d700..000000000000 --- a/doc/api/next_api_changes/removals/22738-JL.rst +++ /dev/null @@ -1,10 +0,0 @@ -Removal of deprecated methods in `matplotlib.projections.polar` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``cla`` method in both ``ThetaAxis`` and ``RadialAxis`` has been removed -after being deprecated in 3.4. Use ``clear`` instead. - -Removal of deprecated methods in `matplotlib.spines` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The ``cla`` method in ``Spine`` is removed after being deprecated in 3.4. -Use ``clear`` instead. diff --git a/doc/api/next_api_changes/removals/22886-OG.rst b/doc/api/next_api_changes/removals/22886-OG.rst deleted file mode 100644 index 8ce155835fa1..000000000000 --- a/doc/api/next_api_changes/removals/22886-OG.rst +++ /dev/null @@ -1,7 +0,0 @@ -``mpl_toolkits.axes_grid`` module removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -All functionally from ``mpl_toolkits.axes_grid`` can be found in either -`mpl_toolkits.axes_grid1` or `mpl_toolkits.axisartist`. Axes classes -from ``mpl_toolkits.axes_grid`` based on ``Axis`` from -`mpl_toolkits.axisartist` can be found in `mpl_toolkits.axisartist`. diff --git a/doc/api/next_api_changes/removals/22952-TH.rst b/doc/api/next_api_changes/removals/22952-TH.rst deleted file mode 100644 index 3838be4fc503..000000000000 --- a/doc/api/next_api_changes/removals/22952-TH.rst +++ /dev/null @@ -1,5 +0,0 @@ -MarkerStyle is immutable -~~~~~~~~~~~~~~~~~~~~~~~~ -The methods ``MarkerStyle.set_fillstyle()`` and ``MarkerStyle.set_marker()`` -have been removed. Create a new `.MarkerStyle` with the respective parameters -instead. diff --git a/doc/api/next_api_changes/removals/23076-GL.rst b/doc/api/next_api_changes/removals/23076-GL.rst deleted file mode 100644 index 8d17b05b0c0f..000000000000 --- a/doc/api/next_api_changes/removals/23076-GL.rst +++ /dev/null @@ -1,4 +0,0 @@ -Passing positional arguments to LineCollection has been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use specific keyword argument names now. diff --git a/doc/api/next_api_changes/removals/23077-GL.rst b/doc/api/next_api_changes/removals/23077-GL.rst deleted file mode 100644 index 847d15260537..000000000000 --- a/doc/api/next_api_changes/removals/23077-GL.rst +++ /dev/null @@ -1,4 +0,0 @@ -Keyword arguments to ``gca()`` have been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -There is no replacement. diff --git a/doc/api/next_api_changes/removals/23078-GL.rst b/doc/api/next_api_changes/removals/23078-GL.rst deleted file mode 100644 index 10d5d4604242..000000000000 --- a/doc/api/next_api_changes/removals/23078-GL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``Axis.cla()`` has been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use `.Axis.clear()` instead. diff --git a/doc/api/next_api_changes/removals/23079-GL.rst b/doc/api/next_api_changes/removals/23079-GL.rst deleted file mode 100644 index c71e6ad7b805..000000000000 --- a/doc/api/next_api_changes/removals/23079-GL.rst +++ /dev/null @@ -1,5 +0,0 @@ -``key_press`` and ``button_press`` have been removed from FigureManager -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Trigger the events directly on the canvas using -``canvas.callbacks.process(event.name, event)`` for key and button events. diff --git a/doc/api/next_api_changes/removals/23093-GL.rst b/doc/api/next_api_changes/removals/23093-GL.rst deleted file mode 100644 index a155c29830cf..000000000000 --- a/doc/api/next_api_changes/removals/23093-GL.rst +++ /dev/null @@ -1,50 +0,0 @@ -Get/set window title methods have been removed from the canvas -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use the corresponding methods on the FigureManager if using pyplot, -or GUI-specific methods if embedding. - -``ContourLabeler.get_label_coords()`` has been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -There is no replacement, it was considered an internal helper. - -The **return_all** keyword argument has been removed from ``gridspec.get_position()`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The **minimum_descent** has been removed from ``TextArea`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The minimum_descent is now effectively always True. - -Extra parameters to Axes constructor -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Parameters of the Axes constructor other than *fig* and *rect* are now keyword only. - -``sphinext.plot_directive.align`` has been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Use ``docutils.parsers.rst.directives.images.Image.align`` instead. - -``imread()`` no longer accepts URLs -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Passing a URL to `~.pyplot.imread()` has been removed. Please open the URL for -reading and directly use the Pillow API -(``PIL.Image.open(urllib.request.urlopen(url))``, or -``PIL.Image.open(io.BytesIO(requests.get(url).content))``) instead. - -Deprecated properties of widgets have been removed -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -These include ``cids``, ``cnt``, ``observers``, ``change_observers``, -and ``submit_observers``. - -Removal of methods and properties of ``Subplot`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -These include ``get_geometry()``, ``change_geometry()``, ``figbox``, -``numRows``, ``numCols``, ``update_params()``, ``is_first_row()``, -``is_first_col()``, ``is_last_row()``, ``is_last_col()``. The subplotspec -contains this information and can be used to replace these methods and properties. diff --git a/doc/api/next_api_changes/removals/23237-AL.rst b/doc/api/next_api_changes/removals/23237-AL.rst deleted file mode 100644 index fb11fc68e4aa..000000000000 --- a/doc/api/next_api_changes/removals/23237-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``BoxStyle._Base`` and ``transmute`` method of boxstyles -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... have been removed. Boxstyles implemented as classes no longer need to -inherit from a base class. diff --git a/doc/api/next_api_changes/removals/23291-AL.rst b/doc/api/next_api_changes/removals/23291-AL.rst deleted file mode 100644 index 60a2260fba03..000000000000 --- a/doc/api/next_api_changes/removals/23291-AL.rst +++ /dev/null @@ -1,4 +0,0 @@ -``backend_template.new_figure_manager``, ``backend_template.new_figure_manager_given_figure``, and ``backend_template.draw_if_interactive`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -... have been removed, as part of the introduction of the simplified backend -API. diff --git a/doc/api/next_api_changes/removals/23594-OG.rst b/doc/api/next_api_changes/removals/23594-OG.rst deleted file mode 100644 index 68faf06ea6dd..000000000000 --- a/doc/api/next_api_changes/removals/23594-OG.rst +++ /dev/null @@ -1,4 +0,0 @@ -Passing bytes to ``FT2Font.set_text`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -... is no longer supported. Pass str instead. diff --git a/doc/api/prev_api_changes/api_changes_3.6.0.rst b/doc/api/prev_api_changes/api_changes_3.6.0.rst new file mode 100644 index 000000000000..1bba4506fd7d --- /dev/null +++ b/doc/api/prev_api_changes/api_changes_3.6.0.rst @@ -0,0 +1,14 @@ +API Changes for 3.6.0 +===================== + +.. contents:: + :local: + :depth: 1 + +.. include:: /api/prev_api_changes/api_changes_3.6.0/behaviour.rst + +.. include:: /api/prev_api_changes/api_changes_3.6.0/deprecations.rst + +.. include:: /api/prev_api_changes/api_changes_3.6.0/removals.rst + +.. include:: /api/prev_api_changes/api_changes_3.6.0/development.rst diff --git a/doc/api/prev_api_changes/api_changes_3.6.0/behaviour.rst b/doc/api/prev_api_changes/api_changes_3.6.0/behaviour.rst new file mode 100644 index 000000000000..a35584b04961 --- /dev/null +++ b/doc/api/prev_api_changes/api_changes_3.6.0/behaviour.rst @@ -0,0 +1,248 @@ +Behaviour changes +----------------- + +``plt.get_cmap`` and ``matplotlib.cm.get_cmap`` return a copy +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Formerly, `~.pyplot.get_cmap` and `.cm.get_cmap` returned a global version of a +`.Colormap`. This was prone to errors as modification of the colormap would +propagate from one location to another without warning. Now, a new copy of the +colormap is returned. + +Large ``imshow`` images are now downsampled +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When showing an image using `~matplotlib.axes.Axes.imshow` that has more than +:math:`2^{24}` columns or :math:`2^{23}` rows, the image will now be +downsampled to below this resolution before being resampled for display by the +AGG renderer. Previously such a large image would be shown incorrectly. To +prevent this downsampling and the warning it raises, manually downsample your +data before handing it to `~matplotlib.axes.Axes.imshow`. + +Default date limits changed to 1970-01-01 – 1970-01-02 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Previously the default limits for an empty axis set up for dates +(`.Axis.axis_date`) was 2000-01-01 to 2010-01-01. This has been changed to +1970-01-01 to 1970-01-02. With the default epoch, this makes the numeric limit +for date axes the same as for other axes (0.0-1.0), and users are less likely +to set a locator with far too many ticks. + +*markerfmt* argument to ``stem`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The behavior of the *markerfmt* parameter of `~.Axes.stem` has changed: + +- If *markerfmt* does not contain a color, the color is taken from *linefmt*. +- If *markerfmt* does not contain a marker, the default is 'o'. + +Before, *markerfmt* was passed unmodified to ``plot(..., fmt)``, which had a +number of unintended side-effects; e.g. only giving a color switched to a solid +line without markers. + +For a simple call ``stem(x, y)`` without parameters, the new rules still +reproduce the old behavior. + +``get_ticklabels`` now always populates labels +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Previously `.Axis.get_ticklabels` (and `.Axes.get_xticklabels`, +`.Axes.get_yticklabels`) would only return empty strings unless a draw had +already been performed. Now the ticks and their labels are updated when the +labels are requested. + +Warning when scatter plot color settings discarded +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When making an animation of a scatter plot, if you don't set *c* (the color +value parameter) when initializing the artist, the color settings are ignored. +`.Axes.scatter` now raises a warning if color-related settings are changed +without setting *c*. + +3D ``contourf`` polygons placed between levels +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The polygons used in a 3D `~.Axes3D.contourf` plot are now placed halfway +between the contour levels, as each polygon represents the location of values +that lie between two levels. + +Axes title now avoids y-axis offset +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Previously, Axes titles could overlap the y-axis offset text, which is often in +the upper left corner of the axes. Now titles are moved above the offset text +if overlapping when automatic title positioning is in effect (i.e. if *y* in +`.Axes.set_title` is *None* and :rc:`axes.titley` is also *None*). + +Dotted operators gain extra space in mathtext +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In mathtext, ``\doteq \doteqdot \dotminus \dotplus \dots`` are now surrounded +by extra space because they are correctly treated as relational or binary +operators. + +*math* parameter of ``mathtext.get_unicode_index`` defaults to False +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In math mode, ASCII hyphens (U+002D) are now replaced by Unicode minus signs +(U+2212) at the parsing stage. + +``ArtistList`` proxies copy contents on iteration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When iterating over the contents of the dynamically generated proxy lists for +the Artist-type accessors (see :ref:`Behavioural API Changes 3.5 - Axes +children combined`), a copy of the contents is made. This ensure that artists +can safely be added or removed from the Axes while iterating over their +children. + +This is a departure from the expected behavior of mutable iterable data types +in Python — iterating over a list while mutating it has surprising consequences +and dictionaries will error if they change size during iteration. Because all +of the accessors are filtered views of the same underlying list, it is possible +for seemingly unrelated changes, such as removing a Line, to affect the +iteration over any of the other accessors. In this case, we have opted to make +a copy of the relevant children before yielding them to the user. + +This change is also consistent with our plan to make these accessors immutable +in Matplotlib 3.7. + +``AxesImage`` string representation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The string representation of `.AxesImage` changes from stating the position in +the figure ``"AxesImage(80,52.8;496x369.6)"`` to giving the number of pixels +``"AxesImage(size=(300, 200))"``. + +Improved autoscaling for Bézier curves +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Bézier curves are now autoscaled to their extents - previously they were +autoscaled to their ends and control points, which in some cases led to +unnecessarily large limits. + +``QuadMesh`` mouseover defaults to False +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +New in 3.5, `.QuadMesh.get_cursor_data` allows display of data values under the +cursor. However, this can be very slow for large meshes, so mouseover now +defaults to *False*. + +Changed pgf backend document class +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The pgf backend now uses the ``article`` document class as basis for +compilation. + +``MathtextBackendAgg.get_results`` no longer returns ``used_characters`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The last item (``used_characters``) in the tuple returned by +``MathtextBackendAgg.get_results`` has been removed. In order to unpack this +tuple in a backward and forward-compatible way, use e.g. ``ox, oy, width, +height, descent, image, *_ = parse(...)``, which will ignore +``used_characters`` if it was present. + +``Type1Font`` objects include more properties +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``matplotlib._type1font.Type1Font.prop`` dictionary now includes more keys, +such as ``CharStrings`` and ``Subrs``. The value of the ``Encoding`` key is now +a dictionary mapping codes to glyph names. The +``matplotlib._type1font.Type1Font.transform`` method now correctly removes +``UniqueID`` properties from the font. + +``rcParams.copy()`` returns ``RcParams`` rather than ``dict`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Returning an `.RcParams` instance from `.RcParams.copy` makes the copy still +validate inputs, and additionally avoids emitting deprecation warnings when +using a previously copied instance to update the global instance (even if some +entries are deprecated). + +``rc_context`` no longer resets the value of ``'backend'`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`matplotlib.rc_context` incorrectly reset the value of :rc:`backend` if backend +resolution was triggered in the context. This affected only the value. The +actual backend was not changed. Now, `matplotlib.rc_context` does not reset +:rc:`backend` anymore. + +Default ``rcParams["animation.convert_args"]`` changed +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It now defaults to ``["-layers", "OptimizePlus"]`` to try to generate smaller +GIFs. Set it back to an empty list to recover the previous behavior. + +Style file encoding now specified to be UTF-8 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It has been impossible to import Matplotlib with a non UTF-8 compatible locale +encoding because we read the style library at import time. This change is +formalizing and documenting the status quo so there is no deprecation period. + +MacOSX backend uses sRGB instead of GenericRGB color space +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +MacOSX backend now display sRGB tagged image instead of GenericRGB which is an +older (now deprecated) Apple color space. This is the source color space used +by ColorSync to convert to the current display profile. + +Renderer optional for ``get_tightbbox`` and ``get_window_extent`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The `.Artist.get_tightbbox` and `.Artist.get_window_extent` methods no longer +require the *renderer* keyword argument, saving users from having to query it +from ``fig.canvas.get_renderer``. If the *renderer* keyword argument is not +supplied, these methods first check if there is a cached renderer from a +previous draw and use that. If there is no cached renderer, then the methods +will use ``fig.canvas.get_renderer()`` as a fallback. + +``FigureFrameWx`` constructor, subclasses, and ``get_canvas`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``FigureCanvasWx`` constructor gained a *canvas_class* keyword-only +parameter which specifies the canvas class that should be used. This parameter +will become required in the future. The ``get_canvas`` method, which was +previously used to customize canvas creation, is deprecated. The +``FigureFrameWxAgg`` and ``FigureFrameWxCairo`` subclasses, which overrode +``get_canvas``, are deprecated. + +``FigureFrameWx.sizer`` +~~~~~~~~~~~~~~~~~~~~~~~ + +... has been removed. The frame layout is no longer based on a sizer, as the +canvas is now the sole child widget; the toolbar is now a regular toolbar added +using ``SetToolBar``. + +Incompatible layout engines raise +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You cannot switch between ``tight_layout`` and ``constrained_layout`` if a +colorbar has already been added to a figure. Invoking the incompatible layout +engine used to warn, but now raises with a `RuntimeError`. + +``CallbackRegistry`` raises on unknown signals +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When Matplotlib instantiates a `.CallbackRegistry`, it now limits callbacks to +the signals that the registry knows about. In practice, this means that calling +`~.FigureCanvasBase.mpl_connect` with an invalid signal name now raises a +`ValueError`. + +Changed exception type for incorrect SVG date metadata +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Providing date metadata with incorrect type to the SVG backend earlier resulted +in a `ValueError`. Now, a `TypeError` is raised instead. + +Specified exception types in ``Grid`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In a few cases an `Exception` was thrown when an incorrect argument value was +set in the `mpl_toolkits.axes_grid1.axes_grid.Grid` (= +`mpl_toolkits.axisartist.axes_grid.Grid`) constructor. These are replaced as +follows: + +* Providing an incorrect value for *ngrids* now raises a `ValueError` +* Providing an incorrect type for *rect* now raises a `TypeError` diff --git a/doc/api/prev_api_changes/api_changes_3.6.0/deprecations.rst b/doc/api/prev_api_changes/api_changes_3.6.0/deprecations.rst new file mode 100644 index 000000000000..d59077d2b2d2 --- /dev/null +++ b/doc/api/prev_api_changes/api_changes_3.6.0/deprecations.rst @@ -0,0 +1,409 @@ +Deprecations +------------ + +Parameters to ``plt.figure()`` and the ``Figure`` constructor +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All parameters to `.pyplot.figure` and the `.Figure` constructor, other than +*num*, *figsize*, and *dpi*, will become keyword-only after a deprecation +period. + +Deprecation aliases in cbook +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The module ``matplotlib.cbook.deprecation`` was previously deprecated in +Matplotlib 3.4, along with deprecation-related API in ``matplotlib.cbook``. Due +to technical issues, ``matplotlib.cbook.MatplotlibDeprecationWarning`` and +``matplotlib.cbook.mplDeprecation`` did not raise deprecation warnings on use. +Changes in Python have now made it possible to warn when these aliases are +being used. + +In order to avoid downstream breakage, these aliases will now warn, and their +removal has been pushed from 3.6 to 3.8 to give time to notice said warnings. +As replacement, please use `matplotlib.MatplotlibDeprecationWarning`. + +``Axes`` subclasses should override ``clear`` instead of ``cla`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For clarity, `.axes.Axes.clear` is now preferred over `.Axes.cla`. However, for +backwards compatibility, the latter will remain as an alias for the former. + +For additional compatibility with third-party libraries, Matplotlib will +continue to call the ``cla`` method of any `~.axes.Axes` subclasses if they +define it. In the future, this will no longer occur, and Matplotlib will only +call the ``clear`` method in `~.axes.Axes` subclasses. + +It is recommended to define only the ``clear`` method when on Matplotlib 3.6, +and only ``cla`` for older versions. + +Pending deprecation top-level cmap registration and access functions in ``mpl.cm`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As part of a `multi-step process +`_ we are refactoring +the global state for managing the registered colormaps. + +In Matplotlib 3.5 we added a `.ColormapRegistry` class and exposed an instance +at the top level as ``matplotlib.colormaps``. The existing top level functions +in `matplotlib.cm` (``get_cmap``, ``register_cmap``, ``unregister_cmap``) were +changed to be aliases around the same instance. + +In Matplotlib 3.6 we have marked those top level functions as pending +deprecation with the intention of deprecation in Matplotlib 3.7. The following +functions have been marked for pending deprecation: + +- ``matplotlib.cm.get_cmap``; use ``matplotlib.colormaps[name]`` instead +- ``matplotlib.cm.register_cmap``; use `matplotlib.colormaps.register + <.ColormapRegistry.register>` instead +- ``matplotlib.cm.unregister_cmap``; use `matplotlib.colormaps.unregister + <.ColormapRegistry.unregister>` instead +- ``matplotlib.pyplot.register_cmap``; use `matplotlib.colormaps.register + <.ColormapRegistry.register>` instead + +The `matplotlib.pyplot.get_cmap` function will stay available for backward +compatibility. + +Pending deprecation of layout methods +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The methods `~.Figure.set_tight_layout`, `~.Figure.set_constrained_layout`, are +discouraged, and now emit a `PendingDeprecationWarning` in favor of explicitly +referencing the layout engine via ``figure.set_layout_engine('tight')`` and +``figure.set_layout_engine('constrained')``. End users should not see the +warning, but library authors should adjust. + +The methods `~.Figure.set_constrained_layout_pads` and +`~.Figure.get_constrained_layout_pads` are will be deprecated in favor of +``figure.get_layout_engine().set()`` and ``figure.get_layout_engine().get()``, +and currently emit a `PendingDeprecationWarning`. + +seaborn styles renamed +~~~~~~~~~~~~~~~~~~~~~~ + +Matplotlib currently ships many style files inspired from the seaborn library +("seaborn", "seaborn-bright", "seaborn-colorblind", etc.) but they have gone +out of sync with the library itself since the release of seaborn 0.9. To +prevent confusion, the style files have been renamed "seaborn-v0_8", +"seaborn-v0_8-bright", "seaborn-v0_8-colorblind", etc. Users are encouraged to +directly use seaborn to access the up-to-date styles. + +Auto-removal of overlapping Axes by ``plt.subplot`` and ``plt.subplot2grid`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Previously, `.pyplot.subplot` and `.pyplot.subplot2grid` would automatically +remove preexisting Axes that overlap with the newly added Axes. This behavior +was deemed confusing, and is now deprecated. Explicitly call ``ax.remove()`` on +Axes that need to be removed. + +Passing *linefmt* positionally to ``stem`` is undeprecated +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Positional use of all formatting parameters in `~.Axes.stem` has been +deprecated since Matplotlib 3.5. This deprecation is relaxed so that one can +still pass *linefmt* positionally, i.e. ``stem(x, y, 'r')``. + +``stem(..., use_line_collection=False)`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +... is deprecated with no replacement. This was a compatibility fallback to a +former more inefficient representation of the stem lines. + +Positional / keyword arguments +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Passing all but the very few first arguments positionally in the constructors +of Artists is deprecated. Most arguments will become keyword-only in a future +version. + +Passing too many positional arguments to ``tripcolor`` is now deprecated (extra +arguments were previously silently ignored). + +Passing *emit* and *auto* parameters of ``set_xlim``, ``set_ylim``, +``set_zlim``, ``set_rlim`` positionally is deprecated; they will become +keyword-only in a future release. + +The *transOffset* parameter of `.Collection.set_offset_transform` and the +various ``create_collection`` methods of legend handlers has been renamed to +*offset_transform* (consistently with the property name). + +Calling ``MarkerStyle()`` with no arguments or ``MarkerStyle(None)`` is +deprecated; use ``MarkerStyle("")`` to construct an empty marker style. + +``Axes.get_window_extent`` / ``Figure.get_window_extent`` accept only +*renderer*. This aligns the API with the general `.Artist.get_window_extent` +API. All other parameters were ignored anyway. + +The *cleared* parameter of ``get_renderer``, which only existed for AGG-based +backends, has been deprecated. Use ``renderer.clear()`` instead to explicitly +clear the renderer buffer. + +Methods to set parameters in ``LogLocator`` and ``LogFormatter*`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In `~.LogFormatter` and derived subclasses, the methods ``base`` and +``label_minor`` for setting the respective parameter are deprecated and +replaced by ``set_base`` and ``set_label_minor``, respectively. + +In `~.LogLocator`, the methods ``base`` and ``subs`` for setting the respective +parameter are deprecated. Instead, use ``set_params(base=..., subs=...)``. + +``Axes.get_renderer_cache`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The canvas now takes care of the renderer and whether to cache it or not. The +alternative is to call ``axes.figure.canvas.get_renderer()``. + +Groupers from ``get_shared_x_axes`` / ``get_shared_y_axes`` will be immutable +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Modifications to the Groupers returned by ``get_shared_x_axes`` and +``get_shared_y_axes`` are deprecated. In the future, these methods will return +immutable views on the grouper structures. Note that previously, calling e.g. +``join()`` would already fail to set up the correct structures for sharing +axes; use `.Axes.sharex` or `.Axes.sharey` instead. + +Unused methods in ``Axis``, ``Tick``, ``XAxis``, and ``YAxis`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +``Tick.label`` has been pending deprecation since 3.1 and is now deprecated. +Use ``Tick.label1`` instead. + +The following methods are no longer used and deprecated without a replacement: + +- ``Axis.get_ticklabel_extents`` +- ``Tick.get_pad_pixels`` +- ``XAxis.get_text_heights`` +- ``YAxis.get_text_widths`` + +``mlab.stride_windows`` +~~~~~~~~~~~~~~~~~~~~~~~ + +... is deprecated. Use ``np.lib.stride_tricks.sliding_window_view`` instead (or +``np.lib.stride_tricks.as_strided`` on NumPy < 1.20). + +Event handlers +~~~~~~~~~~~~~~ + +The ``draw_event``, ``resize_event``, ``close_event``, ``key_press_event``, +``key_release_event``, ``pick_event``, ``scroll_event``, +``button_press_event``, ``button_release_event``, ``motion_notify_event``, +``enter_notify_event`` and ``leave_notify_event`` methods of +`.FigureCanvasBase` are deprecated. They had inconsistent signatures across +backends, and made it difficult to improve event metadata. + +In order to trigger an event on a canvas, directly construct an `.Event` object +of the correct class and call ``canvas.callbacks.process(event.name, event)``. + +Widgets +~~~~~~~ + +All parameters to ``MultiCursor`` starting from *useblit* are becoming +keyword-only (passing them positionally is deprecated). + +The ``canvas`` and ``background`` attributes of ``MultiCursor`` are deprecated +with no replacement. + +The *visible* attribute of Selector widgets has been deprecated; use +``set_visible`` or ``get_visible`` instead. + +The *state_modifier_keys* attribute of Selector widgets has been privatized and +the modifier keys must be set when creating the widget. + +``Axes3D.dist`` +~~~~~~~~~~~~~~~ + +... has been privatized. Use the *zoom* keyword argument in +`.Axes3D.set_box_aspect` instead. + +3D Axis +~~~~~~~ + +The previous constructor of `.axis3d.Axis`, with signature ``(self, adir, +v_intervalx, d_intervalx, axes, *args, rotate_label=None, **kwargs)`` is +deprecated in favor of a new signature closer to the one of 2D Axis; it is now +``(self, axes, *, rotate_label=None, **kwargs)`` where ``kwargs`` are forwarded +to the 2D Axis constructor. The axis direction is now inferred from the axis +class' ``axis_name`` attribute (as in the 2D case); the ``adir`` attribute is +deprecated. + +The ``init3d`` method of 3D Axis is also deprecated; all the relevant +initialization is done as part of the constructor. + +The ``d_interval`` and ``v_interval`` attributes of 3D Axis are deprecated; use +``get_data_interval`` and ``get_view_interval`` instead. + +The ``w_xaxis``, ``w_yaxis``, and ``w_zaxis`` attributes of ``Axis3D`` have +been pending deprecation since 3.1. They are now deprecated. Instead use +``xaxis``, ``yaxis``, and ``zaxis``. + +``mplot3d.axis3d.Axis.set_pane_pos`` is deprecated. This is an internal method +where the provided values are overwritten during drawing. Hence, it does not +serve any purpose to be directly accessible. + +The two helper functions ``mplot3d.axis3d.move_from_center`` and +``mplot3d.axis3d.tick_update_position`` are considered internal and deprecated. +If these are required, please vendor the code from the corresponding private +methods ``_move_from_center`` and ``_tick_update_position``. + +``Figure.callbacks`` is deprecated +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Figure ``callbacks`` property is deprecated. The only signal was +"dpi_changed", which can be replaced by connecting to the "resize_event" on the +canvas ``figure.canvas.mpl_connect("resize_event", func)`` instead. + +``FigureCanvas`` without a ``required_interactive_framework`` attribute +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Support for such canvas classes is deprecated. Note that canvas classes which +inherit from ``FigureCanvasBase`` always have such an attribute. + +Backend-specific deprecations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +- ``backend_gtk3.FigureManagerGTK3Agg`` and + ``backend_gtk4.FigureManagerGTK4Agg``; directly use + ``backend_gtk3.FigureManagerGTK3`` and ``backend_gtk4.FigureManagerGTK4`` + instead. +- The *window* parameter to ``backend_gtk3.NavigationToolbar2GTK3`` had no + effect, and is now deprecated. +- ``backend_gtk3.NavigationToolbar2GTK3.win`` +- ``backend_gtk3.RendererGTK3Cairo`` and ``backend_gtk4.RendererGTK4Cairo``; + use `.RendererCairo` instead, which has gained the ``set_context`` method, + which also auto-infers the size of the underlying surface. +- ``backend_cairo.RendererCairo.set_ctx_from_surface`` and + ``backend_cairo.RendererCairo.set_width_height`` in favor of + `.RendererCairo.set_context`. +- ``backend_gtk3.error_msg_gtk`` +- ``backend_gtk3.icon_filename`` and ``backend_gtk3.window_icon`` +- ``backend_macosx.NavigationToolbar2Mac.prepare_configure_subplots`` has been + replaced by ``configure_subplots()``. +- ``backend_pdf.Name.hexify`` +- ``backend_pdf.Operator`` and ``backend_pdf.Op.op`` are deprecated in favor of + a single standard `enum.Enum` interface on `.backend_pdf.Op`. +- ``backend_pdf.fill``; vendor the code of the similarly named private + functions if you rely on these functions. +- ``backend_pgf.LatexManager.texcommand`` and + ``backend_pgf.LatexManager.latex_header`` +- ``backend_pgf.NO_ESCAPE`` +- ``backend_pgf.common_texification`` +- ``backend_pgf.get_fontspec`` +- ``backend_pgf.get_preamble`` +- ``backend_pgf.re_mathsep`` +- ``backend_pgf.writeln`` +- ``backend_ps.convert_psfrags`` +- ``backend_ps.quote_ps_string``; vendor the code of the similarly named + private functions if you rely on it. +- ``backend_qt.qApp``; use ``QtWidgets.QApplication.instance()`` instead. +- ``backend_svg.escape_attrib``; vendor the code of the similarly named private + functions if you rely on it. +- ``backend_svg.escape_cdata``; vendor the code of the similarly named private + functions if you rely on it. +- ``backend_svg.escape_comment``; vendor the code of the similarly named + private functions if you rely on it. +- ``backend_svg.short_float_fmt``; vendor the code of the similarly named + private functions if you rely on it. +- ``backend_svg.generate_transform`` and ``backend_svg.generate_css`` +- ``backend_tk.NavigationToolbar2Tk.lastrect`` and + ``backend_tk.RubberbandTk.lastrect`` +- ``backend_tk.NavigationToolbar2Tk.window``; use ``toolbar.master`` instead. +- ``backend_tools.ToolBase.destroy``; To run code upon tool removal, connect to + the ``tool_removed_event`` event. +- ``backend_wx.RendererWx.offset_text_height`` +- ``backend_wx.error_msg_wx`` + +- ``FigureCanvasBase.pick``; directly call `.Figure.pick`, which has taken over + the responsibility of checking the canvas widget lock as well. +- ``FigureCanvasBase.resize``, which has no effect; use + ``FigureManagerBase.resize`` instead. + +- ``FigureManagerMac.close`` + +- ``FigureFrameWx.sizer``; use ``frame.GetSizer()`` instead. +- ``FigureFrameWx.figmgr`` and ``FigureFrameWx.get_figure_manager``; use + ``frame.canvas.manager`` instead. +- ``FigureFrameWx.num``; use ``frame.canvas.manager.num`` instead. +- ``FigureFrameWx.toolbar``; use ``frame.GetToolBar()`` instead. +- ``FigureFrameWx.toolmanager``; use ``frame.canvas.manager.toolmanager`` + instead. + +Modules +~~~~~~~ + +The modules ``matplotlib.afm``, ``matplotlib.docstring``, +``matplotlib.fontconfig_pattern``, ``matplotlib.tight_bbox``, +``matplotlib.tight_layout``, and ``matplotlib.type1font`` are considered +internal and public access is deprecated. + +``checkdep_usetex`` deprecated +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This method was only intended to disable tests in case no latex install was +found. As such, it is considered to be private and for internal use only. + +Please vendor the code if you need this. + +``date_ticker_factory`` deprecated +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``date_ticker_factory`` method in the `matplotlib.dates` module is +deprecated. Instead use `~.AutoDateLocator` and `~.AutoDateFormatter` for a +more flexible and scalable locator and formatter. + +If you need the exact ``date_ticker_factory`` behavior, please copy the code. + +``dviread.find_tex_file`` will raise ``FileNotFoundError`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the future, ``dviread.find_tex_file`` will raise a `FileNotFoundError` for +missing files. Previously, it would return an empty string in such cases. +Raising an exception allows attaching a user-friendly message instead. During +the transition period, a warning is raised. + +``transforms.Affine2D.identity()`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +... is deprecated in favor of directly calling the `.Affine2D` constructor with +no arguments. + +Deprecations in ``testing.decorators`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The unused class ``CleanupTestCase`` and decorator ``cleanup`` are deprecated +and will be removed. Vendor the code, including the private function +``_cleanup_cm``. + +The function ``check_freetype_version`` is considered internal and deprecated. +Vendor the code of the private function ``_check_freetype_version``. + +``text.get_rotation()`` +~~~~~~~~~~~~~~~~~~~~~~~ + +... is deprecated with no replacement. Copy the original implementation if +needed. + +Miscellaneous internals +~~~~~~~~~~~~~~~~~~~~~~~ + +- ``axes_grid1.axes_size.AddList``; use ``sum(sizes, start=Fixed(0))`` (for + example) to sum multiple size objects. +- ``axes_size.Padded``; use ``size + pad`` instead +- ``axes_size.SizeFromFunc``, ``axes_size.GetExtentHelper`` +- ``AxisArtistHelper.delta1`` and ``AxisArtistHelper.delta2`` +- ``axislines.GridHelperBase.new_gridlines`` and + ``axislines.Axes.new_gridlines`` +- ``cbook.maxdict``; use the standard library ``functools.lru_cache`` instead. +- ``_DummyAxis.dataLim`` and ``_DummyAxis.viewLim``; use + ``get_data_interval()``, ``set_data_interval()``, ``get_view_interval()``, + and ``set_view_interval()`` instead. +- ``GridSpecBase.get_grid_positions(..., raw=True)`` +- ``ImageMagickBase.delay`` and ``ImageMagickBase.output_args`` +- ``MathtextBackend``, ``MathtextBackendAgg``, ``MathtextBackendPath``, + ``MathTextWarning`` +- ``TexManager.get_font_config``; it previously returned an internal hashed key + for used for caching purposes. +- ``TextToPath.get_texmanager``; directly construct a `.texmanager.TexManager` + instead. +- ``ticker.is_close_to_int``; use ``math.isclose(x, round(x))`` instead. +- ``ticker.is_decade``; use ``y = numpy.log(x)/numpy.log(base); + numpy.isclose(y, numpy.round(y))`` instead. diff --git a/doc/api/prev_api_changes/api_changes_3.6.0/development.rst b/doc/api/prev_api_changes/api_changes_3.6.0/development.rst new file mode 100644 index 000000000000..fb9f1f3e21c5 --- /dev/null +++ b/doc/api/prev_api_changes/api_changes_3.6.0/development.rst @@ -0,0 +1,42 @@ +Development changes +------------------- + +Increase to minimum supported versions of dependencies +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +For Matplotlib 3.6, the :ref:`minimum supported versions ` are +being bumped: + ++------------+-----------------+---------------+ +| Dependency | min in mpl3.5 | min in mpl3.6 | ++============+=================+===============+ +| Python | 3.7 | 3.8 | ++------------+-----------------+---------------+ +| NumPy | 1.17 | 1.19 | ++------------+-----------------+---------------+ + +This is consistent with our :ref:`min_deps_policy` and `NEP29 +`__ + +Build setup options changes +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``gui_support.macosx`` setup option has been renamed to +``packages.macosx``. + +New wheel architectures +~~~~~~~~~~~~~~~~~~~~~~~ + +Wheels have been added for: + +- Python 3.11 +- PyPy 3.8 and 3.9 + +Increase to required versions of documentation dependencies +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +`sphinx`_ >= 3.0 and `numpydoc`_ >= 1.0 are now required for building the +documentation. + +.. _numpydoc: https://pypi.org/project/numpydoc/ +.. _sphinx: https://pypi.org/project/Sphinx/ diff --git a/doc/api/prev_api_changes/api_changes_3.6.0/removals.rst b/doc/api/prev_api_changes/api_changes_3.6.0/removals.rst new file mode 100644 index 000000000000..60b1771eea09 --- /dev/null +++ b/doc/api/prev_api_changes/api_changes_3.6.0/removals.rst @@ -0,0 +1,222 @@ +Removals +-------- + +The following deprecated APIs have been removed: + +Removed behaviour +~~~~~~~~~~~~~~~~~ + +Stricter validation of function parameters +.......................................... + +- Unknown keyword arguments to `.Figure.savefig`, `.pyplot.savefig`, and the + ``FigureCanvas.print_*`` methods now raise a `TypeError`, instead of being + ignored. +- Extra parameters to the `~.axes.Axes` constructor, i.e., those other than + *fig* and *rect*, are now keyword only. +- Passing arguments not specifically listed in the signatures of + `.Axes3D.plot_surface` and `.Axes3D.plot_wireframe` is no longer supported; + pass any extra arguments as keyword arguments instead. +- Passing positional arguments to `.LineCollection` has been removed; use + specific keyword argument names now. + +``imread`` no longer accepts URLs +................................. + +Passing a URL to `~.pyplot.imread()` has been removed. Please open the URL for +reading and directly use the Pillow API (e.g., +``PIL.Image.open(urllib.request.urlopen(url))``, or +``PIL.Image.open(io.BytesIO(requests.get(url).content))``) instead. + +MarkerStyle is immutable +........................ + +The methods ``MarkerStyle.set_fillstyle`` and ``MarkerStyle.set_marker`` have +been removed. Create a new `.MarkerStyle` with the respective parameters +instead. + +Passing bytes to ``FT2Font.set_text`` +..................................... + +... is no longer supported. Pass `str` instead. + +Support for passing tool names to ``ToolManager.add_tool`` +.......................................................... + +... has been removed. The second parameter to `.ToolManager.add_tool` must now +always be a tool class. + +``backend_tools.ToolFullScreen`` now inherits from ``ToolBase``, not from ``ToolToggleBase`` +............................................................................................ + +`.ToolFullScreen` can only switch between the non-fullscreen and fullscreen +states, but not unconditionally put the window in a given state; hence the +``enable`` and ``disable`` methods were misleadingly named. Thus, the +`.ToolToggleBase`-related API (``enable``, ``disable``, etc.) was removed. + +``BoxStyle._Base`` and ``transmute`` method of box styles +......................................................... + +... have been removed. Box styles implemented as classes no longer need to +inherit from a base class. + +Loaded modules logging +...................... + +The list of currently loaded modules is no longer logged at the DEBUG level at +Matplotlib import time, because it can produce extensive output and make other +valuable DEBUG statements difficult to find. If you were relying on this +output, please arrange for your own logging (the built-in `sys.modules` can be +used to get the currently loaded modules). + +Modules +~~~~~~~ + +- The ``cbook.deprecation`` module has been removed from the public API as it + is considered internal. +- The ``mpl_toolkits.axes_grid`` module has been removed. All functionality from + ``mpl_toolkits.axes_grid`` can be found in either `mpl_toolkits.axes_grid1` + or `mpl_toolkits.axisartist`. Axes classes from ``mpl_toolkits.axes_grid`` + based on ``Axis`` from `mpl_toolkits.axisartist` can be found in + `mpl_toolkits.axisartist`. + +Classes, methods and attributes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following module-level classes/variables have been removed: + +- ``cm.cmap_d`` +- ``colorbar.colorbar_doc``, ``colorbar.colorbar_kw_doc`` +- ``ColorbarPatch`` +- ``mathtext.Fonts`` and all its subclasses +- ``mathtext.FontConstantsBase`` and all its subclasses +- ``mathtext.latex_to_bakoma``, ``mathtext.latex_to_cmex``, + ``mathtext.latex_to_standard`` +- ``mathtext.MathtextBackendPdf``, ``mathtext.MathtextBackendPs``, + ``mathtext.MathtextBackendSvg``, ``mathtext.MathtextBackendCairo``; use + `.MathtextBackendPath` instead. +- ``mathtext.Node`` and all its subclasses +- ``mathtext.NUM_SIZE_LEVELS`` +- ``mathtext.Parser`` +- ``mathtext.Ship`` +- ``mathtext.SHRINK_FACTOR`` and ``mathtext.GROW_FACTOR`` +- ``mathtext.stix_virtual_fonts``, +- ``mathtext.tex2uni`` +- ``backend_pgf.TmpDirCleaner`` +- ``backend_ps.GraphicsContextPS``; use ``GraphicsContextBase`` instead. +- ``backend_wx.IDLE_DELAY`` +- ``axes_grid1.parasite_axes.ParasiteAxesAuxTransBase``; use + `.ParasiteAxesBase` instead. +- ``axes_grid1.parasite_axes.ParasiteAxesAuxTrans``; use `.ParasiteAxes` + instead. + +The following class attributes have been removed: + +- ``Line2D.validCap`` and ``Line2D.validJoin``; validation is centralized in + ``rcsetup``. +- ``Patch.validCap`` and ``Patch.validJoin``; validation is centralized in + ``rcsetup``. +- ``renderer.M``, ``renderer.eye``, ``renderer.vvec``, + ``renderer.get_axis_position`` placed on the Renderer during 3D Axes draw; + these attributes are all available via `.Axes3D`, which can be accessed via + ``self.axes`` on all `.Artist`\s. +- ``RendererPdf.mathtext_parser``, ``RendererPS.mathtext_parser``, + ``RendererSVG.mathtext_parser``, ``RendererCairo.mathtext_parser`` +- ``StandardPsFonts.pswriter`` +- ``Subplot.figbox``; use `.Axes.get_position` instead. +- ``Subplot.numRows``; ``ax.get_gridspec().nrows`` instead. +- ``Subplot.numCols``; ``ax.get_gridspec().ncols`` instead. +- ``SubplotDivider.figbox`` +- ``cids``, ``cnt``, ``observers``, ``change_observers``, and + ``submit_observers`` on all `.Widget`\s + +The following class methods have been removed: + +- ``Axis.cla()``; use `.Axis.clear` instead. +- ``RadialAxis.cla()`` and ``ThetaAxis.cla()``; use `.RadialAxis.clear` or + `.ThetaAxis.clear` instead. +- ``Spine.cla()``; use `.Spine.clear` instead. +- ``ContourLabeler.get_label_coords()``; there is no replacement as it was + considered an internal helper. +- ``FancyArrowPatch.get_dpi_cor`` and ``FancyArrowPatch.set_dpi_cor`` + +- ``FigureCanvas.get_window_title()`` and ``FigureCanvas.set_window_title()``; + use `.FigureManagerBase.get_window_title` or + `.FigureManagerBase.set_window_title` if using pyplot, or use GUI-specific + methods if embedding. +- ``FigureManager.key_press()`` and ``FigureManager.button_press()``; trigger + the events directly on the canvas using + ``canvas.callbacks.process(event.name, event)`` for key and button events. + +- ``RendererAgg.get_content_extents()`` and + ``RendererAgg.tostring_rgba_minimized()`` +- ``NavigationToolbar2Wx.get_canvas()`` + +- ``ParasiteAxesBase.update_viewlim()``; use `.ParasiteAxesBase.apply_aspect` + instead. +- ``Subplot.get_geometry()``; use `.SubplotBase.get_subplotspec` instead. +- ``Subplot.change_geometry()``; use `.SubplotBase.set_subplotspec` instead. +- ``Subplot.update_params()``; this method did nothing. +- ``Subplot.is_first_row()``; use ``ax.get_subplotspec().is_first_row`` + instead. +- ``Subplot.is_first_col()``; use ``ax.get_subplotspec().is_first_col`` + instead. +- ``Subplot.is_last_row()``; use ``ax.get_subplotspec().is_last_row`` instead. +- ``Subplot.is_last_col()``; use ``ax.get_subplotspec().is_last_col`` instead. +- ``SubplotDivider.change_geometry()``; use `.SubplotDivider.set_subplotspec` + instead. +- ``SubplotDivider.get_geometry()``; use `.SubplotDivider.get_subplotspec` + instead. +- ``SubplotDivider.update_params()`` +- ``get_depth``, ``parse``, ``to_mask``, ``to_rgba``, and ``to_png`` of + `.MathTextParser`; use `.mathtext.math_to_image` instead. + +- ``MovieWriter.cleanup()``; the cleanup logic is instead fully implemented in + `.MovieWriter.finish` and ``cleanup`` is no longer called. + +Functions +~~~~~~~~~ + +The following functions have been removed; + +- ``backend_template.new_figure_manager()``, + ``backend_template.new_figure_manager_given_figure()``, and + ``backend_template.draw_if_interactive()`` have been removed, as part of the + introduction of the simplified backend API. +- Deprecation-related re-imports ``cbook.deprecated()``, and + ``cbook.warn_deprecated()``. +- ``colorbar.colorbar_factory()``; use `.Colorbar` instead. + ``colorbar.make_axes_kw_doc()`` +- ``mathtext.Error()`` +- ``mathtext.ship()`` +- ``mathtext.tex2uni()`` +- ``axes_grid1.parasite_axes.parasite_axes_auxtrans_class_factory()``; use + `.parasite_axes_class_factory` instead. +- ``sphinext.plot_directive.align()``; use + ``docutils.parsers.rst.directives.images.Image.align`` instead. + +Arguments +~~~~~~~~~ + +The following arguments have been removed: + +- *dpi* from ``print_ps()`` in the PS backend and ``print_pdf()`` in the PDF + backend. Instead, the methods will obtain the DPI from the ``savefig`` + machinery. +- *dpi_cor* from `~.FancyArrowPatch` +- *minimum_descent* from ``TextArea``; it is now effectively always True +- *origin* from ``FigureCanvasWx.gui_repaint()`` +- *project* from ``Line3DCollection.draw()`` +- *renderer* from `.Line3DCollection.do_3d_projection`, + `.Patch3D.do_3d_projection`, `.PathPatch3D.do_3d_projection`, + `.Path3DCollection.do_3d_projection`, `.Patch3DCollection.do_3d_projection`, + `.Poly3DCollection.do_3d_projection` +- *resize_callback* from the Tk backend; use + ``get_tk_widget().bind('', ..., True)`` instead. +- *return_all* from ``gridspec.get_position()`` +- Keyword arguments to ``gca()``; there is no replacement. + +rcParams +~~~~~~~~ + +The setting :rc:`ps.useafm` no longer has any effect on `matplotlib.mathtext`. diff --git a/doc/users/github_stats.rst b/doc/users/github_stats.rst index 001031da6f44..e23d1e8f6fd0 100644 --- a/doc/users/github_stats.rst +++ b/doc/users/github_stats.rst @@ -1,130 +1,1295 @@ .. _github-stats: -GitHub statistics for 3.5.3 (Aug 10, 2022) +GitHub statistics for 3.6.0 (Sep 15, 2022) ========================================== -GitHub statistics for 2022/05/03 (tag: v3.5.2) - 2022/08/10 +GitHub statistics for 2021/11/16 (tag: v3.5.0) - 2022/09/15 These lists are automatically generated, and may be incomplete or contain duplicates. -We closed 19 issues and merged 66 pull requests. -The full list can be seen `on GitHub `__ +We closed 202 issues and merged 894 pull requests. +The full list can be seen `on GitHub `__ -The following 20 authors contributed 99 commits. +The following 174 authors contributed 4425 commits. +* Abhishek K M +* Adeel Hassan +* agra +* Aitik Gupta +* ambi7 +* Andras Deak +* Andres Martinez +* Andrew Fennell +* andrzejnovak +* Andrés Martínez +* Anna Mastori +* AnnaMastori +* Ante Sikic * Antony Lee +* arndRemy +* Ben Root * Biswapriyo Nath +* cavesdev +* Clément Phan +* Clément Walter +* code-review-doctor +* Connor Cozad +* Constantine Evans +* Croadden +* daniilS +* Danilo Palumbo * David Gilbertson +* David Ketcheson +* David Matos +* David Poznik +* David Stansby +* Davide Sandonà +* dependabot[bot] +* dermasugita +* Diego Solano +* Dimitri Papadopoulos +* dj4t9n +* Dmitriy Fishman * DWesl +* Edouard Berthe +* eindH * Elliott Sales de Andrade +* Eric Firing +* Eric Larson +* Eric Prestat +* Federico Ariza +* Felix Nößler +* Fernando +* Gajendra Pal +* gajendra0180 * GavinZhang * Greg Lucas +* hannah +* Hansin Ahuja +* Harshal Prakash Patankar +* Hassan Kibirige +* Haziq Khurshid +* Henry +* henrybeUM +* Hood +* Hood Chatham +* Ian Hunt-Isaak +* Ian Thomas +* igurin-invn +* ikhebgeenaccount +* Isha Mehta +* Jake Bowhay +* Jake Li +* Jake Lishman +* Jake VanderPlas +* Jakub Klus +* James Tocknell +* Jan-Hendrik Müller +* Jay Joshi +* Jay Stanley +* jayjoshi112711 +* Jeff Beck * Jody Klymak +* Joel Frederico +* Joseph Fox-Rabinovitz +* Josh Soref +* Jouni K. Seppänen * Kayran Schmidt +* kdpenner +* Kian Eliasi +* Kinshuk Dua +* kislovskiy +* KIU Shueng Chuan +* kjain +* kolibril13 +* krassowski +* Krish-sysadmin +* Leeh Peter +* lgfunderburk +* Liam Toney +* Lucas Ricci +* Luke Davis +* luz paz +* mackopes +* MAKOMO +* MalikIdreesHasa +* Marcin Swaltek +* Mario +* Mario Sergio Valdés Tresanco +* martinRenou * Matthew Feickert +* Matthias Bussonnier +* Mauricio Collares +* MeeseeksMachine +* melissawm +* Mr-Milk +* Navid C. Constantinou * Nickolaos Giannatos +* Nicolas P. Rougier +* Niyas Sait +* noatamir +* ojeda-e +* Olivier Gauthé * Oscar Gustafsson +* patquem +* Philipp Rohde +* Pieter Eendebak +* Pieter P +* Péter Leéh +* Qijia Liu +* Quentin Peter +* Raphael Quast +* rditlar9 +* Richard Penney +* richardsheridan +* Rike-Benjamin Schuppner +* Robert Cimrman +* Roberto Toro +* root * Ruth Comer +* Ruth G. N +* Ruth Nainggolan +* Ryan May +* Rémi Achard * SaumyaBhushan * Scott Jones * Scott Shambaugh +* selormtamakloe +* Simon Hoxbro +* skywateryang +* Stefanie Molin +* Steffen Rehberg +* stone +* Sven Eschlbeck +* sveneschlbeck +* takimata * tfpf * Thomas A Caswell * Tim Hoffmann +* Tobias Megies +* Tomas Hrnciar +* Tomasz Kuliński +* trichter +* unknown +* Uwe Hubert +* vfdev-5 +* Vishal Chandratreya +* Vishal Pankaj Chandratreya +* Vishnu V K +* vk0812 +* Vlad Korolev +* Will Qian +* William Qian +* wqh17101 * wsykala +* yaaun +* Yannic Schroeder +* yuanx749 +* 渡邉 美希 GitHub issues and pull requests: -Pull Requests (66): - -* :ghpull:`23591`: Backport PR #23549 on branch v3.5.x (Don't clip colorbar dividers) -* :ghpull:`23593`: STY: Fix whitespace error from new flake8 -* :ghpull:`23549`: Don't clip colorbar dividers -* :ghpull:`23528`: Backport PR #23523 on branch v3.5.x (TST: Update Quantity test class) -* :ghpull:`23523`: TST: Update Quantity test class -* :ghpull:`23508`: Add explicit registration of units in examples -* :ghpull:`23515`: Backport PR #23462: Fix AttributeError for pickle load of Figure class -* :ghpull:`23518`: Backport PR #23514 on branch v3.5.x (Fix doc build) -* :ghpull:`23517`: Backport PR #23511 on branch v3.5.x (supporting IBM i OS) -* :ghpull:`23511`: supporting IBM i OS -* :ghpull:`23462`: Fix AttributeError for pickle load of Figure class -* :ghpull:`23488`: Backport PR #23066 on branch v3.5.x (BLD: Define PyErr_SetFromWindowsErr on Cygwin.) -* :ghpull:`23066`: BLD: Define PyErr_SetFromWindowsErr on Cygwin. -* :ghpull:`23479`: Pin setuptools_scm on v3.5.x -* :ghpull:`22998`: Backport PR #22987 on branch v3.5.x (CI: bump test limit from tkagg on osx) -* :ghpull:`23478`: Backport PR #23476: FIX: reset to original DPI in getstate -* :ghpull:`23476`: FIX: reset to original DPI in getstate -* :ghpull:`23458`: Backport PR #23445 on branch v3.5.x (Compare thread native ids when checking whether running on main thread.) -* :ghpull:`23440`: Backport PR #23430 on branch v3.5.x (Fix divide by 0 runtime warning) -* :ghpull:`23430`: Fix divide by 0 runtime warning -* :ghpull:`23344`: Backport PR #23333: Fix errorbar handling of nan. -* :ghpull:`23333`: Fix errorbar handling of nan. -* :ghpull:`23338`: Backport PR #23278: Remove internal use of get/set dpi -* :ghpull:`23331`: Backport PR #22835 on branch v3.5.x (Fix BoundaryNorm cursor data output) -* :ghpull:`22835`: Fix BoundaryNorm cursor data output -* :ghpull:`23292`: Backport PR #23232 on branch v3.5.x (Fix passing stem markerfmt positionally when locs are not given) -* :ghpull:`23275`: Backport PR #23260 on branch v3.5.x (Fix Colorbar extend patches to have correct alpha) -* :ghpull:`23312`: Pin to an older pydata-sphinx-theme for v3.5.x -* :ghpull:`23278`: Remove internal use of get/set dpi -* :ghpull:`23232`: Fix passing stem markerfmt positionally when locs are not given -* :ghpull:`22865`: Fix issue with colorbar extend and drawedges -* :ghpull:`23260`: Fix Colorbar extend patches to have correct alpha -* :ghpull:`23245`: Backport PR #23144 on branch v3.5.x (Only import setuptools_scm when we are in a matplotlib git repo) -* :ghpull:`23144`: Only import setuptools_scm when we are in a matplotlib git repo -* :ghpull:`23242`: Backport PR #23203 on branch v3.5.x (Honour ``panchor`` keyword for colorbar on subplot) -* :ghpull:`23203`: Honour ``panchor`` keyword for colorbar on subplot -* :ghpull:`23228`: Backport PR #23209 on branch v3.5.x (Fix the vertical alignment of overunder symbols.) -* :ghpull:`23209`: Fix the vertical alignment of overunder symbols. -* :ghpull:`23184`: Backport PR #23174: Make sure SubFigure has _cachedRenderer -* :ghpull:`23194`: Backport PR #23095: Try to unbreak CI by xfailing OSX Tk tests -* :ghpull:`23113`: Backport PR #23057 and #23106 -* :ghpull:`23185`: Backport PR #23168 on branch v3.5.x (Corrected docstring for artist.Artist.set_agg_filter) -* :ghpull:`23168`: Corrected docstring for artist.Artist.set_agg_filter -* :ghpull:`23174`: Make sure SubFigure has _cachedRenderer -* :ghpull:`23110`: Tweak subprocess_run_helper. -* :ghpull:`23138`: Backport PR #23137 on branch v3.5.x (DOC fix typo) -* :ghpull:`23137`: DOC fix typo -* :ghpull:`23125`: Backport PR #23122 on branch v3.5.x (Remove redundant rcparam default) -* :ghpull:`23120`: Backport PR #23115 on branch v3.5.x (DOC fixed duplicate/wrong default) -* :ghpull:`23095`: Try to unbreak CI by xfailing OSX Tk tests -* :ghpull:`23106`: Reuse subprocess_run_helper in test_pylab_integration. -* :ghpull:`23112`: Backport PR #23111 on branch v3.5.x (Fix _g_sig_digits for value<0 and delta=0.) -* :ghpull:`23111`: Fix _g_sig_digits for value<0 and delta=0. -* :ghpull:`23057`: FIX: ensure switching the backend installs repl hook -* :ghpull:`23075`: Backport PR #23069 on branch v3.5.x (TST: forgive more failures on pyside2 / pyside6 cross imports) -* :ghpull:`23069`: TST: forgive more failures on pyside2 / pyside6 cross imports -* :ghpull:`22981`: Backport PR #22979 on branch v3.5.x (Skip additional backend tests on import error) -* :ghpull:`23064`: Backport PR #22975 on branch v3.5.x (MNT: fix __array__ to numpy) -* :ghpull:`22975`: MNT: fix __array__ to numpy -* :ghpull:`23058`: Backport PR #23051 on branch v3.5.x (Fix variable initialization due to jump bypassing it) -* :ghpull:`23051`: Fix variable initialization due to jump bypassing it -* :ghpull:`23010`: Backport PR #23000 on branch v3.5.x (Additional details on VS install on installation page) -* :ghpull:`22995`: Backport PR #22994 on branch v3.5.x (Docs: ignore >>> on code prompts on documentation prompts) -* :ghpull:`23001`: CI: Add trivial pre-commit.ci config to avoid CI failure -* :ghpull:`22987`: CI: bump test limit from tkagg on osx -* :ghpull:`22979`: Skip additional backend tests on import error - -Issues (19): - -* :ghissue:`22864`: [Bug]: Colorbar with drawedges=True and extend='both' does not draw edges at extremities -* :ghissue:`23382`: [TST] Upcoming dependency test failures -* :ghissue:`23470`: [Bug]: fig.canvas.mpl_connect in 3.5.2 not registering events in jupyter lab unless using widget pan or zoom controls -* :ghissue:`22997`: [Bug]: Cygwin build fails due to use of Windows-only functions in _tkagg.cpp -* :ghissue:`23471`: [Bug]: DPI of a figure is doubled after unpickling on M1 Mac -* :ghissue:`23050`: [Doc]: Docstring for artist.Artist.set_agg_filter is incorrect -* :ghissue:`23307`: [Bug]: PEX warns about missing ``setuptools`` from ``install_requires`` in matplotlib -* :ghissue:`23330`: [Bug]: Missing values cause exception in errorbar plot -* :ghissue:`21915`: [Bug]: scalar mappable format_cursor_data crashes on BoundarNorm -* :ghissue:`22970`: [Bug]: Colorbar extend patches do not have correct alpha -* :ghissue:`23114`: [Bug]: matplotlib __init__.py checks for .git folder 2 levels up, then errors due to setup tools_scm -* :ghissue:`23157`: [Bug]: colorbar ignores keyword panchor=False -* :ghissue:`23229`: [Bug]: matplotlib==3.5.2 breaks ipywidgets -* :ghissue:`18085`: vertical alignment of \sum depends on the presence of subscripts and superscripts -* :ghissue:`23173`: [Bug]: Crash when adding clabels to subfigures -* :ghissue:`23108`: [Bug]: Imshow with all negative values leads to math domain errors. -* :ghissue:`23042`: [Bug]: Figures fail to redraw with IPython -* :ghissue:`23004`: [Bug]: test failure of test_cross_Qt_imports in 3.5.2 -* :ghissue:`22973`: [Bug]: v3.5.2 causing plot to crash when plotting object with ``__array__`` method +Pull Requests (894): + +* :ghpull:`23814`: Consolidate release notes for 3.6 +* :ghpull:`23899`: Backport PR #23885 on branch v3.6.x (DOC: Rearrange navbar-end elements) +* :ghpull:`23898`: Backport PR #23892 on branch v3.6.x (DOC: Fix docs for linestyles in contour) +* :ghpull:`23885`: DOC: Rearrange navbar-end elements +* :ghpull:`23894`: Backport PR #23881 on branch v3.6.x (Fix Pillow compatibility in example) +* :ghpull:`23897`: Backport PR #23887 on branch v3.6.x (Add missing label argument to barh docs) +* :ghpull:`23892`: DOC: Fix docs for linestyles in contour +* :ghpull:`23887`: Add missing label argument to barh docs +* :ghpull:`23893`: Backport PR #23886 on branch v3.6.x (CI: prefer (older) binaries over (newer) sdists) +* :ghpull:`23881`: Fix Pillow compatibility in example +* :ghpull:`23886`: CI: prefer (older) binaries over (newer) sdists +* :ghpull:`23880`: Backport PR #23862 on branch v3.6.x (Remove triggering of deprecation warning in AnchoredEllipse) +* :ghpull:`23862`: Remove triggering of deprecation warning in AnchoredEllipse +* :ghpull:`23879`: Backport PR #23864 on branch v3.6.x (Correct and improve documentation for anchored artists) +* :ghpull:`23877`: Backport PR #23841 on branch v3.6.x (clarified that hist computes histogram on unbinned data) +* :ghpull:`23872`: Backport PR #23871 on branch v3.6.x (DOC: Fix formatting of pick event demo example) +* :ghpull:`23841`: clarified that hist computes histogram on unbinned data +* :ghpull:`23864`: Correct and improve documentation for anchored artists +* :ghpull:`23871`: DOC: Fix formatting of pick event demo example +* :ghpull:`23869`: Backport PR #23867 on branch v3.6.x (DOC: fix deprecation warnings in examples) +* :ghpull:`23867`: DOC: fix deprecation warnings in examples +* :ghpull:`23858`: Backport PR #23855 on branch v3.6.x (DOC: fix deprecation warnings) +* :ghpull:`23859`: Backport PR #23844 on branch v3.6.x (Further improve dev setup instructions) +* :ghpull:`23844`: Further improve dev setup instructions +* :ghpull:`23855`: DOC: fix deprecation warnings +* :ghpull:`23854`: Backport PR #23852 on branch v3.6.x (Fix cross-compiling internal freetype) +* :ghpull:`23852`: Fix cross-compiling internal freetype +* :ghpull:`23853`: Backport PR #23830 on branch v3.6.x (Start testing on Python 3.11) +* :ghpull:`23830`: Start testing on Python 3.11 +* :ghpull:`23851`: Backport PR #23850 on branch v3.6.x (removed single word in documenting doc) +* :ghpull:`23850`: removed single word in documenting doc +* :ghpull:`23848`: Backport PR #23843 on branch v3.6.x (Clarify that pycairo>=1.14.0 is needed.) +* :ghpull:`23843`: Clarify that pycairo>=1.14.0 is needed. +* :ghpull:`23842`: Backport PR #23840 on branch v3.6.x (Remove documentation for axes_grid) +* :ghpull:`23838`: Backport PR #23834 on branch v3.6.x (Revert "Refactor handling of tick and ticklabel visibility in Axis.clear") +* :ghpull:`23840`: Remove documentation for axes_grid +* :ghpull:`23837`: Backport PR #23833 on branch v3.6.x (Remove search field from sidebar) +* :ghpull:`23836`: Backport PR #23823 on branch v3.6.x ([DOC] Improve dev setup description) +* :ghpull:`23834`: Revert "Refactor handling of tick and ticklabel visibility in Axis.clear" +* :ghpull:`23833`: Remove search field from sidebar +* :ghpull:`23823`: [DOC] Improve dev setup description +* :ghpull:`23822`: Backport PR #23813 on branch v3.6.x (Triplot duplicated label) +* :ghpull:`23813`: Triplot duplicated label +* :ghpull:`23811`: Backport PR #23805 on branch v3.6.x (sphinxext: Do not copy plot_directive.css's metadata) +* :ghpull:`23805`: sphinxext: Do not copy plot_directive.css's metadata +* :ghpull:`23800`: Backport PR #23785 on branch v3.6.x (FIX: ensure type stability for missing cmaps in ``set_cmap``) +* :ghpull:`23799`: Backport PR #23790 on branch v3.6.x (DOC: Add cache busting to all static assets) +* :ghpull:`23785`: FIX: ensure type stability for missing cmaps in ``set_cmap`` +* :ghpull:`23790`: DOC: Add cache busting to all static assets +* :ghpull:`23791`: Backport PR #23774 on branch v3.6.x (Correct rcParams-name in AutoDateFormatter doc-string) +* :ghpull:`23792`: Backport PR #23781 on branch v3.6.x (ci: Add plot types to sphinx-gallery artifacts) +* :ghpull:`23789`: Backport PR #23786 on branch v3.6.x (DOC: fontfallback works for most of the backends) +* :ghpull:`23788`: Backport PR #23784 on branch v3.6.x (DOC: Fix num2date docstring) +* :ghpull:`23786`: DOC: fontfallback works for most of the backends +* :ghpull:`23784`: DOC: Fix num2date docstring +* :ghpull:`23781`: ci: Add plot types to sphinx-gallery artifacts +* :ghpull:`23783`: Backport PR #23782 on branch v3.6.x (Remove ``Axes.cla`` from examples) +* :ghpull:`23782`: Remove ``Axes.cla`` from examples +* :ghpull:`23774`: Correct rcParams-name in AutoDateFormatter doc-string +* :ghpull:`23773`: Backport PR #23772 on branch v3.6.x (3d plots what's new cleanups) +* :ghpull:`23772`: 3d plots what's new cleanups +* :ghpull:`23765`: Backport PR #23762 on branch v3.6.x (FIX: legend handler warning too liberal) +* :ghpull:`23762`: FIX: legend handler warning too liberal +* :ghpull:`23759`: Backport PR #23686 on branch v3.6.x (Improve matplotlib.pyplot importtime by caching ArtistInspector) +* :ghpull:`23686`: Improve matplotlib.pyplot importtime by caching ArtistInspector +* :ghpull:`23756`: Backport PR #23569 on branch v3.6.x (Fix hidden xlabel bug in colorbar) +* :ghpull:`23755`: Backport PR #23742 on branch v3.6.x (FIX: unbreak ipympl) +* :ghpull:`23569`: Fix hidden xlabel bug in colorbar +* :ghpull:`23742`: FIX: unbreak ipympl +* :ghpull:`23752`: Backport PR #23750 on branch v3.6.x (Fix rcParams documentation) +* :ghpull:`23749`: Backport PR #23735 on branch v3.6.x (Correctly handle Axes subclasses that override cla) +* :ghpull:`23735`: Correctly handle Axes subclasses that override cla +* :ghpull:`23748`: Backport PR #23746 on branch v3.6.x (DOC: add numpydoc docstring + commentary to Axis.get_ticklocs) +* :ghpull:`23747`: Backport PR #23721 on branch v3.6.x (3d plot view angle documentation) +* :ghpull:`23746`: DOC: add numpydoc docstring + commentary to Axis.get_ticklocs +* :ghpull:`23721`: 3d plot view angle documentation +* :ghpull:`23744`: Backport PR #23740 on branch v3.6.x (Clarify error for colorbar with unparented mappable) +* :ghpull:`23741`: Backport PR #23674 on branch v3.6.x (Re-rename builtin seaborn styles to not include a dot.) +* :ghpull:`23740`: Clarify error for colorbar with unparented mappable +* :ghpull:`23674`: Re-rename builtin seaborn styles to not include a dot. +* :ghpull:`23738`: Backport PR #23639 on branch v3.6.x (Adding the new contributor meeting) +* :ghpull:`23739`: Backport PR #23712 on branch v3.6.x (FIX: do not try to help CPython with garbage collection) +* :ghpull:`23712`: FIX: do not try to help CPython with garbage collection +* :ghpull:`23639`: Adding the new contributor meeting +* :ghpull:`23732`: Backport PR #23729 on branch v3.6.x (Use cleaner recursion check in PyQt FigureCanvas' resizeEvent.) +* :ghpull:`23734`: Backport PR #23733 on branch v3.6.x (DOC: Update theme configuration for upcoming changes) +* :ghpull:`23733`: DOC: Update theme configuration for upcoming changes +* :ghpull:`23728`: Backport PR #23722 on branch v3.6.x (Restore deprecation class aliases in cbook) +* :ghpull:`23729`: Use cleaner recursion check in PyQt FigureCanvas' resizeEvent. +* :ghpull:`23726`: Backport PR #23711 on branch v3.6.x (Fix deprecation messages for vendoring unused things) +* :ghpull:`23722`: Restore deprecation class aliases in cbook +* :ghpull:`23727`: Backport PR #23724 on branch v3.6.x (Fix/harmonize spacing in dependencies.rst.) +* :ghpull:`23724`: Fix/harmonize spacing in dependencies.rst. +* :ghpull:`23711`: Fix deprecation messages for vendoring unused things +* :ghpull:`23715`: Backport PR #23708 on branch v3.6.x (Loosen up test_Normalize test) +* :ghpull:`23713`: Backport PR #23710 on branch v3.6.x (Fix cmap deprecations) +* :ghpull:`23708`: Loosen up test_Normalize test +* :ghpull:`23710`: Fix cmap deprecations +* :ghpull:`23696`: Backport PR #23695 on branch v3.6.x (Document polar handling of _interpolation_steps.) +* :ghpull:`23706`: Backport PR #23705 on branch v3.6.x (DOC: Added link to class under discussion) +* :ghpull:`23705`: DOC: Added link to class under discussion +* :ghpull:`23695`: Document polar handling of _interpolation_steps. +* :ghpull:`23668`: Api deprecate cmap functions +* :ghpull:`23049`: Add ``minor`` keyword argument to ``plt.x/yticks`` +* :ghpull:`23665`: Harmonize docstrings for boxstyle/connectionstyle/arrowstyle. +* :ghpull:`23636`: FIX: macosx flush_events should process all events +* :ghpull:`23555`: Uncamelcase offsetTrans in draw_path_collection. +* :ghpull:`23682`: Fix generated documentation for deprecated modules +* :ghpull:`23678`: Get rcParams from mpl +* :ghpull:`23571`: Simplify _bind_draw_path_function. +* :ghpull:`23673`: DOC: Highlight information about avoiding labels in legend +* :ghpull:`22506`: Replace MathtextBackend mechanism. +* :ghpull:`23340`: Set correct path for Arc +* :ghpull:`23562`: Fix issue with get_edgecolor and get_facecolor in 3D plots +* :ghpull:`23634`: make.bat: Don't override SPHINXOPTS/O from the environment +* :ghpull:`23675`: Deprecate helper functions in axis3d +* :ghpull:`23676`: MNT: Get rcParams from mpl +* :ghpull:`23677`: TST: Use article class when checking for pgf +* :ghpull:`23669`: CI: Azure update from ubuntu-18.04 to ubuntu-latest and ubuntu-20.04 +* :ghpull:`23670`: Add bar color demo. +* :ghpull:`23644`: Standardize edge-on axis locations when viewing primary 3d axis planes +* :ghpull:`23563`: Fix issue with drawing 3D lines where points are from nparray +* :ghpull:`23666`: MNT: Deprecate macosx prepare subplots tool +* :ghpull:`23572`: Deprecate ``get_grid_positions(..., raw=True)``. +* :ghpull:`23525`: Add functionality to label individual bars with Axes.bar() +* :ghpull:`23667`: Fix flake8 errors introduced by crossed PRs +* :ghpull:`23554`: MNT: Remove unused imports +* :ghpull:`23659`: Simplify/fix save_diff_image. +* :ghpull:`23663`: Small cleanups to _find_fonts_by_props. +* :ghpull:`23662`: Add tolerance to test failing on ppc64le +* :ghpull:`23623`: MNT: remove _gridspecs attribute on Figure classes +* :ghpull:`23654`: Reverts macosx change to ARC +* :ghpull:`23661`: Remove unused fontsize argument from private mathtext _get_info. +* :ghpull:`23655`: Merge branch v3.5.x into main +* :ghpull:`23658`: Increase tolerance on multi-font tests +* :ghpull:`23657`: Add eps to extension list in image triager +* :ghpull:`23656`: Fix broken link to MathML torture tests. +* :ghpull:`23649`: CI: Use anaconda-client v1.10.0 for upload of nightlies +* :ghpull:`23647`: Allow any color format to be used for axis3d.Axis.set_pane_color +* :ghpull:`23643`: Enable wheels for PyPy 3.8+ +* :ghpull:`23621`: DOC: update and extend fonts explanation +* :ghpull:`23612`: CI: try installing a different version of noto on OSX +* :ghpull:`23619`: add pikepdf and visual c++ dependency +* :ghpull:`23631`: Leave out ``barh`` from the basic plot types. +* :ghpull:`23637`: BLD: Add Python 3.11 builds to CI +* :ghpull:`23632`: Add discouraged admonitions +* :ghpull:`23620`: Doc update deps +* :ghpull:`23627`: Bump pypa/cibuildwheel from 2.8.1 to 2.9.0 +* :ghpull:`23628`: Change Title Case to Upper lower in templates +* :ghpull:`23206`: Change exception type for incorrect SVG date metadata +* :ghpull:`23387`: Remove setuptools_scm_git_archive dependency and add sdist test +* :ghpull:`23605`: Fix issues in examples, docs, and tutorials +* :ghpull:`23618`: [Doc]: Document the position parameter in apply_aspect() +* :ghpull:`23355`: Revert "Try to unbreak CI by xfailing OSX Tk tests" +* :ghpull:`23610`: TST: be more forgiving about IDing Noto +* :ghpull:`23609`: print version number when building docs +* :ghpull:`20832`: Implement multi-font embedding for PS Backend +* :ghpull:`20804`: Implement multi-font embedding for PDF Backend +* :ghpull:`23202`: MNT: Remove cached renderer from figure +* :ghpull:`23497`: Avoid gridspec in more examples +* :ghpull:`23602`: Editing "issues for new contributors" +* :ghpull:`23600`: DOC: view_init docstring for 3d axes primary view angles +* :ghpull:`23587`: BUG:datetime list starting with none +* :ghpull:`23559`: re-base of font fallback for pdf and eps output + SVG support +* :ghpull:`23557`: BLD: update the manylinux versions used +* :ghpull:`23596`: Minor cleanup of axes_grid1 +* :ghpull:`23594`: Expire deprecation on passing bytes to FT2Font.set_text +* :ghpull:`23435`: Add conda env to setup instructions +* :ghpull:`23574`: Move colorbar() doc to method itself. +* :ghpull:`23584`: Bump Ubuntu to 20.04 on GitHub Actions +* :ghpull:`23561`: Clean up code in tri +* :ghpull:`23582`: Cleanup axis3d.Axis.draw +* :ghpull:`23510`: Refactor Widget tests +* :ghpull:`20718`: Circle: Build docs in parallel. +* :ghpull:`22452`: ENH: add ability to remove layout engine +* :ghpull:`23516`: warning when scatter plot color settings discarded +* :ghpull:`23577`: apply_aspect cleanups +* :ghpull:`23575`: Cleanup parasite_simple example. +* :ghpull:`23567`: Remove noop setattr_cm. +* :ghpull:`23412`: Fix dash offset bug in Patch +* :ghpull:`21756`: MNT: Clean up some UTF strings and memory autorelease +* :ghpull:`23558`: MNT: Use UTF-8 string in macosx backend +* :ghpull:`23550`: Change exception types, improve argument checking, and cleanups in mpl_toolkits +* :ghpull:`23196`: Unify set_pickradius argument +* :ghpull:`20740`: Implement Font-Fallback in Matplotlib +* :ghpull:`22566`: Add rcparam for figure label size and weight +* :ghpull:`23551`: Remove transform arguments from _iter_collection +* :ghpull:`23444`: Deduplicate common parts in LatexManager.{__init__,_setup_latex_process} +* :ghpull:`23017`: [ENH] : Provide axis('equal') for Axes3D (replace PR #22705) +* :ghpull:`22950`: Simplify definition of mathtext symbols & correctly end tokens in mathtext parsing +* :ghpull:`23409`: Provide axis('equal') for Axes3D (replaces PR #23017) +* :ghpull:`23434`: Fix array-like linewidth for 3d scatter +* :ghpull:`23500`: Move the common implementation of Axes.set_x/y/zscale to Axis. +* :ghpull:`23533`: Add tests for sankey and minor fixes +* :ghpull:`23535`: Make margins error as claimed in doc-string +* :ghpull:`23546`: Simplify impl. of functions optionally used as context managers. +* :ghpull:`23494`: Fix various issues from SonarQube +* :ghpull:`23529`: Add workflow dispatch GitHub CI +* :ghpull:`23539`: Small improvements to WebAgg example +* :ghpull:`23541`: Change doc-build CI install order +* :ghpull:`23526`: DOC: make "family" less ambiguous in FontProperties docs +* :ghpull:`23537`: Move the deprecated RendererGTK{3,4}Cairo to a single place. +* :ghpull:`23140`: [Features] Allow setting legend title alignment +* :ghpull:`23538`: Fix imprecise docs re: backend dependencies. +* :ghpull:`23532`: Add test for RGBAxes +* :ghpull:`23453`: Add more tests for mplot3d +* :ghpull:`23501`: Let Axes.clear iterate over Axises. +* :ghpull:`23469`: Inline _init_axis_artists & _init_gridlines into clear. +* :ghpull:`23475`: Add markerfacealt to pass-through arguments for error bar lines +* :ghpull:`23527`: STY: fix whitespace on an assert +* :ghpull:`23495`: Fix sgskip'd examples +* :ghpull:`23404`: Restore matplotlib.__doc__ in Sphinx docs +* :ghpull:`23507`: Add hint when More than {max_open_warning} figures have been opened +* :ghpull:`23499`: Fix outdated comment re: event handlers in test_backends_interactive. +* :ghpull:`23498`: Fix direct instantiation of webagg_core managers. +* :ghpull:`23504`: Clarify formatting of the code-for-reproduction field in bug reports. +* :ghpull:`23489`: Add missing test data to install +* :ghpull:`23482`: Mathtext spaces must be independent of font style. +* :ghpull:`23486`: Bump pypa/cibuildwheel from 2.8.0 to 2.8.1 +* :ghpull:`23461`: Tweak Axes repr. +* :ghpull:`16931`: Make it easier to improve UI event metadata. +* :ghpull:`23468`: Display grid in floating axes example. +* :ghpull:`23467`: Remove old handling for factor=None in axisartist. +* :ghpull:`23443`: Try running the pgf backend off the article class. +* :ghpull:`23373`: Fix pan/zoom crashing when widget lock is unavailable +* :ghpull:`23466`: Update filename in example. +* :ghpull:`23464`: Deprecate macos close handler. +* :ghpull:`23463`: Deprecate Tick.label +* :ghpull:`23455`: Deprecate properties w_xaxis, w_yaxis, and w_zaxis +* :ghpull:`23448`: Tweak callbacks to generate pick events. +* :ghpull:`23233`: Default stem marker color follows the linecolor +* :ghpull:`23452`: Generalize Axes __repr__ to 3D +* :ghpull:`23445`: Compare thread native ids when checking whether running on main thread. +* :ghpull:`20752`: Set norms using scale names. +* :ghpull:`23438`: DOC: numpydoc-ify date Locator classes +* :ghpull:`23427`: Tweak pgf escapes. +* :ghpull:`23432`: Fixed typo in docs animation api +* :ghpull:`23420`: Clean up test_chunksize_fails() +* :ghpull:`23415`: Minor improvements to units_sample example +* :ghpull:`21339`: Added linear scaling test to Hexbin marginals +* :ghpull:`23414`: Bump pypa/cibuildwheel from 2.7.0 to 2.8.0 +* :ghpull:`23413`: Combine chunk size tests into one +* :ghpull:`23403`: Small cleanup to VertexSelector. +* :ghpull:`23291`: In the new/simplified backend API, don't customize draw_if_interactive. +* :ghpull:`23350`: Fixed SVG-as-text image comparison tests. +* :ghpull:`23406`: DOC: Fix calculation of bin centers in multi-histogram +* :ghpull:`23407`: TST: Add missing warning type to pytest.warns +* :ghpull:`23402`: Link 3D animation examples to one another. +* :ghpull:`23401`: Upload wheel artifacts from the correct directory +* :ghpull:`23374`: GOV: point CoC reports at CoC steering council subcomittee mailing list +* :ghpull:`23393`: Clean up formatting of custom cmap example +* :ghpull:`23146`: Update cibuildwheel +* :ghpull:`23368`: Add a helper to generate closed paths. +* :ghpull:`20220`: DOC: add mission statement +* :ghpull:`22364`: Tweak mathtext/tex docs. +* :ghpull:`23377`: Use tick_params more often over tick iteration +* :ghpull:`22820`: [Doc] consolidate ``rect`` documentation +* :ghpull:`23371`: Default animation.convert_args to ["-layers", "OptimizePlus"]. +* :ghpull:`23148`: DOC: change address to send security issues to +* :ghpull:`23365`: DOC: add new showcase example, replace gendered one +* :ghpull:`23033`: Fix issue with tex-encoding on non-Unicode platforms +* :ghpull:`23358`: Shorten/clarify definition of extension types. +* :ghpull:`23370`: Small cleanups to animation. +* :ghpull:`23364`: Rename/change signature of PyGlyph_new. +* :ghpull:`23363`: Simplify FigureCanvas multiple inheritance init by swapping bases order. +* :ghpull:`23366`: MNT: use devel version of theme +* :ghpull:`23357`: Fixed decimal points not appearing at end of Mathtext string. +* :ghpull:`23351`: DOC/MNT install docs with dev version of sphinx theme +* :ghpull:`23349`: CI: Remove old scipy-wheels-nightly uploads to ensure space +* :ghpull:`23348`: Support multi-figure MultiCursor; prepare improving its signature. +* :ghpull:`23360`: embedding_in_tk_sgskip.py: use root.destroy +* :ghpull:`23354`: MNT: Use list comprehension +* :ghpull:`23299`: FIX/API: do not reset backend key in rc_context +* :ghpull:`23191`: ENH: add width_ratios and height_ratios to subplots +* :ghpull:`23060`: MNT: Change objective C code to Automatic Reference Counting (ARC) +* :ghpull:`23347`: Simplify/improve check for pycairo in Gtk-based backends. +* :ghpull:`23316`: DOC: improve spines crosslinking +* :ghpull:`23100`: Remove custom backend_nbagg.show(), putting logic in manager show. +* :ghpull:`23342`: FIX: make sure addFont test removes the test font +* :ghpull:`23266`: negative_linestyles kwarg in contour.py +* :ghpull:`23332`: Validate Text linespacing on input. +* :ghpull:`23336`: Remove ineffective exclusion of Arcs without parent Axes. +* :ghpull:`23341`: MNT: Use '--pytest-test-first' option for naming clarity +* :ghpull:`23337`: Remove now inexistent "datapath" rcParam from style blacklist. +* :ghpull:`22004`: Make RendererCairo auto-infer surface size. +* :ghpull:`23208`: ENH: enable stripey lines +* :ghpull:`23288`: Correct URL area with rotated texts in PDFs +* :ghpull:`23197`: Add tests for pan +* :ghpull:`22167`: Deprecate selector ``visible`` attribute +* :ghpull:`23322`: Cleanup FontProperties examples. +* :ghpull:`23321`: Tweak examples capitalization/punctuation. +* :ghpull:`23270`: Fix handling of nonmath hyphens in mathtext. +* :ghpull:`23310`: Move Cursor demo from examples/misc to examples/event_handling +* :ghpull:`23313`: Drop CSS styles that are in mpl-sphinx-theme +* :ghpull:`23314`: Don't draw invisible 3D Axes +* :ghpull:`23302`: Deprecate stem(..., use_line_collection=False) +* :ghpull:`23309`: Remove front page examples +* :ghpull:`23282`: Backport PR #22865 on branch v3.5.x (Fix issue with colorbar extend and drawedges) +* :ghpull:`23231`: Add pytest-xvfb as test dependency +* :ghpull:`23318`: No need to return OrderedDict from _gen_axes_spines. +* :ghpull:`23295`: Replace re.sub by the faster str.translate. +* :ghpull:`23300`: Modify example of "Fig Axes Customize Simple" +* :ghpull:`23014`: Improve consistency in LogLocator and LogFormatter API +* :ghpull:`23286`: Refactor URL handling in PDF backend +* :ghpull:`23065`: Fix test_image_comparison_expect_rms +* :ghpull:`23294`: Simplify binary data handling in ps backend. +* :ghpull:`23284`: DOC: Switch to HTML5 and cleanup CSS +* :ghpull:`23276`: Add get/set methods for DPI in SubFigure +* :ghpull:`23207`: Update build environment and improve test +* :ghpull:`23213`: DEV: Add name-tests-test to pre-commit hooks +* :ghpull:`23289`: Properly make Name.hexify go through a deprecation cycle. +* :ghpull:`23177`: Deprecate positional passing of most Artist constructor parameters +* :ghpull:`23287`: Minor tweaks to pdf Name. +* :ghpull:`23285`: In mathtext, replace manual caching (via ``glyphd``) by lru_cache. +* :ghpull:`23034`: Correctly read the 'style' argument while processing 'genfrac'. +* :ghpull:`23247`: Support inverted parentheses in mathtext. +* :ghpull:`23190`: Deprecate unused methods in axis.py +* :ghpull:`23219`: MNT: Rename example files with 'test' in name +* :ghpull:`23277`: MNT: Remove dead code in SVG backend +* :ghpull:`23261`: Bump actions/setup-python from 3 to 4 +* :ghpull:`23264`: Changing environment.yml for it to work on Windows +* :ghpull:`23269`: MNT: Remove dead code in Colorbar +* :ghpull:`23262`: Simplify qt_compat, in particular post-removal of qt4 support. +* :ghpull:`23263`: Private helper to get requested backend without triggering resolution. +* :ghpull:`23243`: Fix spacing after mathtext operators with sub/superscripts +* :ghpull:`22839`: Fix spacing after mathtext operators with sub/superscripts +* :ghpull:`23256`: DOC: Add note about Inkscape install on Windows +* :ghpull:`23258`: DOC: remove Blue Book url +* :ghpull:`23255`: Add a helper to generate mathtext error strings. +* :ghpull:`23246`: Fix argument checking for set_interpolation_stage +* :ghpull:`22881`: Support not embedding glyphs in svg mathtests. +* :ghpull:`23198`: Rename ncol parameter in legend to ncols +* :ghpull:`23251`: Small simplifications to mathtext tests. +* :ghpull:`23249`: Don't allow ``r"$\left\\|\right.$"``, as in TeX. +* :ghpull:`23248`: Rename test markers +* :ghpull:`22507`: Remove *math* parameter of various mathtext internal APIs. +* :ghpull:`23192`: Add tests, improve error messages in axis/_base, and code cleanup +* :ghpull:`23241`: Fix invalid value in radio buttons example +* :ghpull:`23187`: Correct docs and use keyword arguments in _mathtext.py +* :ghpull:`23045`: MNT: Merge locally defined test marks +* :ghpull:`22289`: ENH: compressed layout +* :ghpull:`23237`: Expire BoxStyle._Base deprecation. +* :ghpull:`23225`: DOC: Fix version switcher links to documentation +* :ghpull:`23221`: DOC: recommend numpy random number generator class +* :ghpull:`23223`: Changed offset reference, add small doc +* :ghpull:`23215`: DOC: link the transforms tutorial from the module +* :ghpull:`23201`: Rework tricontour and tricontourf documentation +* :ghpull:`23013`: Add tests for date module +* :ghpull:`23188`: Mnt new default dates +* :ghpull:`22745`: MNT: Don't require renderer for window_extent and tightbbox +* :ghpull:`23077`: MNT: Remove keyword arguments to gca() +* :ghpull:`23182`: Simplify webagg blitting. +* :ghpull:`23181`: Init FigureCanvasAgg._lastKey in ``__init__``. +* :ghpull:`23175`: Point the version switcher to a name listed in switcher.json +* :ghpull:`22669`: Cleanup documentation generation for pyplot +* :ghpull:`22519`: fix markevery plot option with nans in data +* :ghpull:`21584`: Move towards having get_shared_{x,y}_axes return immutable views. +* :ghpull:`23170`: ENH: update ticks when requesting labels +* :ghpull:`23169`: DOC: Migrate to sphinx-design +* :ghpull:`23180`: Improve docstring of triplot() and PatchCollection +* :ghpull:`23153`: Restore accidentally removed pytest.ini and tests.py. +* :ghpull:`23166`: Deprecate passing most Legend arguments positionally +* :ghpull:`23165`: DOCS Fix a few typos +* :ghpull:`23167`: DOCS fix typo +* :ghpull:`23062`: Add stackplot to plot types listing +* :ghpull:`23161`: Added my (open access) book +* :ghpull:`23141`: Minor fix for astropy units support broken in earlier PR +* :ghpull:`23156`: No longer call draw_if_interactive in parasite_axes. +* :ghpull:`23150`: DOC fix typo +* :ghpull:`23149`: DOCS remove duplicate text +* :ghpull:`23145`: Fix format error in switcher.json +* :ghpull:`21755`: MNT: Clean up macosx backend set_message +* :ghpull:`23128`: DOCS Fix typos +* :ghpull:`23130`: Drop pytest warning config in nightly tests +* :ghpull:`23135`: Unpin coverage again +* :ghpull:`23133`: Make module deprecation messages consistent +* :ghpull:`23134`: Remove newline from start of deprecation warnings +* :ghpull:`22964`: Fix spelling errors +* :ghpull:`22929`: Handle NaN in bar labels and error bars +* :ghpull:`23093`: MNT: Removing 3.4 deprecations +* :ghpull:`23090`: Derive new_figure_manager from FigureCanvas.new_manager. +* :ghpull:`23099`: Remove unneeded cutout for webagg in show(). +* :ghpull:`23097`: Tweak check for IPython pylab mode. +* :ghpull:`23088`: Improve error for invalid format strings / misspelled data keys. +* :ghpull:`23092`: Ensure updated monkey-patching of sphinx-gallery EXAMPLE_HEADER +* :ghpull:`23087`: Fix width/height inversion in dviread debug helper. +* :ghpull:`23089`: Normalize tk load failures to ImportErrors. +* :ghpull:`23091`: Move test that fig.add_axes() needs parameters +* :ghpull:`23067`: more explicit in windows doc build instructions +* :ghpull:`23081`: MNT: Deprecate date_ticker_factory +* :ghpull:`23079`: MNT: Remove key_press and button_press from FigureManager +* :ghpull:`23076`: MNT: Remove positional argument handling in LineCollection +* :ghpull:`23078`: MNT: Remove deprecated axis.cla() +* :ghpull:`23054`: Slightly simplify tcl/tk load in extension. +* :ghpull:`23073`: MNT: Remove dummy_threading because threading is always available +* :ghpull:`22405`: DOC: put the gallery keywords in the meta tag +* :ghpull:`23071`: Fix installing contourpy on CI +* :ghpull:`23068`: Slight refactor of _c_internal_utils to linewrap it better. +* :ghpull:`23070`: Pathlibify autotools invocation in build. +* :ghpull:`22755`: Maybe run autogen as part of freetype install +* :ghpull:`23063`: doc: mathtext example: use axhspan() instead of fill_between() for backdrop rectangle shading +* :ghpull:`23055`: Cleanup Annotation.update_position. +* :ghpull:`22567`: Use contourpy for quad contour calculations +* :ghpull:`22801`: TST: fully parameterize test_lazy_linux_headless +* :ghpull:`22180`: ENH: Use rcParams savefig.directory on macosx backend +* :ghpull:`23048`: Add rrulewrapper to docs +* :ghpull:`23047`: Fix issue with hist and float16 data +* :ghpull:`23044`: Fix missing section header for nightly builds +* :ghpull:`23029`: Demonstrate both usetex and non-usetex in demo_text_path.py. +* :ghpull:`23038`: Factor out errorevery parsing for 2D and 3D errorbars. +* :ghpull:`23036`: Suppress traceback chaining for tex subprocess failures. +* :ghpull:`23037`: Suppress exception chaining in FontProperties. +* :ghpull:`23020`: Add test to close legend issue +* :ghpull:`23031`: Specify that style files are utf-8. +* :ghpull:`22991`: Enable ``plt.sca`` on subfigure's axes +* :ghpull:`23030`: DOC: Fix charset declaration in redirects +* :ghpull:`23022`: Fix some possible encoding issues for non-utf8 systems. +* :ghpull:`23023`: Bump docker/setup-qemu-action from 1 to 2 +* :ghpull:`23024`: DOC: do not suggest to sudo pip install Matplotlib +* :ghpull:`23018`: Fix typo in font family +* :ghpull:`22627`: ENH: rect for constrained_layout +* :ghpull:`22891`: Font example monospace +* :ghpull:`23006`: docs: add subplot-mosaic string compact notation +* :ghpull:`23009`: Fixed installation guide command typo +* :ghpull:`22926`: Fix RangeSlider for same init values #22686 +* :ghpull:`22989`: Merge v3.5.x back into main +* :ghpull:`22993`: STY: Fix typos in colormap +* :ghpull:`22777`: DEV: Add codespell to pre-commit hooks +* :ghpull:`22940`: Fixed dpi bug in rainbow text example +* :ghpull:`22298`: MNT: Remove cmap_d colormap access +* :ghpull:`22387`: Add a registry for color sequences +* :ghpull:`21594`: Document text alignment +* :ghpull:`22967`: TST: Add some tests for QuadMesh contains function +* :ghpull:`22936`: ENH: Add full-screen toggle to the macosx backend +* :ghpull:`22886`: MNT: remove mpl_toolkits.axes_grid +* :ghpull:`22952`: Make MarkerStyle immutable +* :ghpull:`22953`: MNT: Move set_cursor to the FigureCanvas +* :ghpull:`18854`: Standardize creation of FigureManager from a given FigureCanvas class. +* :ghpull:`22925`: Standardize creation of FigureManager from a given FigureCanvas class. +* :ghpull:`22875`: Remove Forward definitions where possible. +* :ghpull:`22928`: ENH: Add option to disable raising the window for macosx +* :ghpull:`22912`: DOC: Better doc of colors +* :ghpull:`22931`: BUG: Fix regression with ls=(0, ()) +* :ghpull:`22909`: FIX: skip sub directories when finding fonts on windows +* :ghpull:`22911`: Clarify docstring of [un]install_repl_displayhook() +* :ghpull:`22919`: CI: Add concurrency skips for GH Actions +* :ghpull:`22899`: Fix documentation markup issues +* :ghpull:`22906`: Clarify logic for repl displayhook. +* :ghpull:`22892`: Remove support for IPython<4. +* :ghpull:`22896`: Remove python-dateutil as test requirement +* :ghpull:`22885`: Deprecate two-layered backend_pdf.Op enum. +* :ghpull:`22883`: Tweak argument checking in tripcolor(). +* :ghpull:`22884`: Missing ``f`` prefix on f-strings fix +* :ghpull:`22877`: Small cleanups to mathtext. +* :ghpull:`21374`: Snap selectors +* :ghpull:`22824`: Remove some unnecessary extra boundaries for colorbars with extensions. +* :ghpull:`21448`: Use named groups in mathtext parser. +* :ghpull:`22609`: Improve usability of dviread.Text by third parties. +* :ghpull:`22809`: STY: Apply pre-commit hooks to codebase +* :ghpull:`22730`: Fix removed cross-references +* :ghpull:`22857`: Slightly simplify twin axes detection in MEP22 zoom. +* :ghpull:`22813`: MNT: Deprecate figure callbacks +* :ghpull:`22802`: MNT: make Axes.cla an alias for Axes.clear in all cases +* :ghpull:`22855`: Remove non-needed remove_text=False. +* :ghpull:`22854`: TST: Avoid floating point errors in asinh ticker +* :ghpull:`22850`: Simplify tick creation +* :ghpull:`22841`: Fix Tk error when updating toolbar checkbutton images +* :ghpull:`22707`: Proposed ENH: Allow user to turn off breaking of streamlines in streamplot (rebased) +* :ghpull:`22826`: Bump actions/upload-artifact from 2 to 3 +* :ghpull:`22825`: Bump codecov/codecov-action from 2 to 3 +* :ghpull:`22821`: Use bool for bool keyword arguments +* :ghpull:`22815`: Fix pickling of globally available, dynamically generated norm classes. +* :ghpull:`22702`: Doc tweak transform tutorial +* :ghpull:`22613`: DOC: Add links to explicit vs implicit API everywhere "OO" is used +* :ghpull:`22712`: Use repr in error messages +* :ghpull:`22794`: Fix ps export of colored hatches with no linewidth +* :ghpull:`22797`: Deprecate functions in backends +* :ghpull:`22608`: Axes.inset_axes: enable Axes subclass creation +* :ghpull:`22795`: Replace "marker simplification" by "marker subsampling" in docs. +* :ghpull:`22768`: Fix inkscape tests +* :ghpull:`22791`: Tweak _ConverterError reporting. +* :ghpull:`22447`: Improve bar_label annotation +* :ghpull:`22710`: Fix the error- TypeError: 'float' object is not iterable +* :ghpull:`22444`: Revert "CI: skip test to work around gs bug" +* :ghpull:`22785`: CI: Update weekly dependency test job +* :ghpull:`22784`: Fix 'misspelled' transform variable +* :ghpull:`22778`: Fix LaTeX formatting in examples +* :ghpull:`22779`: Improve mlab documentation (and example) +* :ghpull:`22759`: MNT: Skip existing wheels during nightly wheel upload +* :ghpull:`22751`: BLD: do not put an upper bound on pyparsing +* :ghpull:`22752`: DOC: Correct nightly wheels pip install command +* :ghpull:`22742`: Fix deprecation of backend_tools.ToolBase.destroy +* :ghpull:`22725`: Move towards making texmanager stateless. +* :ghpull:`22734`: Added clim support to tripcolor +* :ghpull:`22733`: CI: Add GHA workflow to upload nightly wheels +* :ghpull:`21637`: Also upload a subset of nightly wheels +* :ghpull:`22698`: Correct cross-references in documentation +* :ghpull:`22263`: DOC: condense version switcher +* :ghpull:`22361`: Revert datetime usetex ticklabels to use default tex font. +* :ghpull:`22721`: Small style fixes. +* :ghpull:`22356`: Cleanup tripcolor() +* :ghpull:`22360`: Let TeX handle multiline strings itself. +* :ghpull:`22418`: Deprecate auto-removal of overlapping Axes by plt.subplot{,2grid}. +* :ghpull:`22722`: Rename confusingly-named cm_fallback. +* :ghpull:`22697`: Deprecate in testing.decorators +* :ghpull:`22556`: Add text.parse_math rcParams +* :ghpull:`22163`: Change colour of Tk toolbar icons on dark backgrounds +* :ghpull:`22704`: Small simplification to textpath. +* :ghpull:`22498`: TST: increase coverage on tk tests +* :ghpull:`21425`: Make Axis3D constructor signature closer to the one of 2D axis. +* :ghpull:`22665`: Improve error message for incorrect color string +* :ghpull:`22685`: Rewrite plot format detection from sphinx build target +* :ghpull:`22670`: Update deprecated vmImage 'vs2017-win2016' in azure pipelines +* :ghpull:`22503`: Deprecate backend_qt.qApp. +* :ghpull:`22683`: Add missing space before : for parameters +* :ghpull:`22591`: Fix Path/str-discrepancy in FontManager.addpath and improve documentation +* :ghpull:`22680`: Bump actions/cache from 2 to 3 +* :ghpull:`22659`: Add description on quiver head parameters +* :ghpull:`22668`: Raise on missing closing quotes in matplotlibrc +* :ghpull:`22675`: Tweak colorbar_placement example. +* :ghpull:`22276`: Merge "Scatter Symbol" and "Scatter Custom Symbol" examples +* :ghpull:`22658`: Remove reference to now-deleted reminder note. +* :ghpull:`22652`: Update documentation example and fix See also +* :ghpull:`22587`: Refactor handling of tick and ticklabel visibility in Axis.clear() +* :ghpull:`22148`: MNT: Deprecate ``docstring`` +* :ghpull:`22170`: Add example to polygon selector docstring showing how to set vertices programmatically +* :ghpull:`22650`: Fix new leak in ft2font introduced in #22604 +* :ghpull:`22644`: FIX: Flush events after closing figures in macosx backend +* :ghpull:`22643`: Suppress exception chaining in colormap lookup. +* :ghpull:`22639`: ENH: MacOSX backend to use sRGB instead of GenericRGB colorspace +* :ghpull:`22509`: Simplifications to ToolManager.{add,remove}_tool. +* :ghpull:`22633`: DOC: remove space in directive. +* :ghpull:`22631`: Add space between individual transform components in svg output. +* :ghpull:`22523`: MNT: Use a context manager to change the norm in colorbar code +* :ghpull:`22615`: FIX: Change get_axis_map to axis_map now +* :ghpull:`22508`: Move tracking of autoscale status to Axis. +* :ghpull:`22547`: Small cleanups around TexManager usage. +* :ghpull:`22511`: Remove redundant rcParam-lookup in patches +* :ghpull:`22516`: Expire deprecations in backends +* :ghpull:`22612`: Updated grammar to reflect more common usage of output vs outputted in animation.py +* :ghpull:`22589`: Support quoted strings in matplotlibrc +* :ghpull:`22604`: MNT: Fix types in C-code to reduce warnings +* :ghpull:`22610`: Fix alternative suggestion in epoch2num() deprecation +* :ghpull:`22554`: Prepare for making create_dummy_axis not necessary. +* :ghpull:`22607`: ENH: Add dark/light mode theme to the buttons +* :ghpull:`21790`: FIX: Update blitting and drawing on the macosx backend +* :ghpull:`22175`: FIX: Update macosx animation handling +* :ghpull:`22569`: Require non-zero dash value +* :ghpull:`22544`: Correct paper sizes +* :ghpull:`20470`: Issues warnings for legend handles without handlers +* :ghpull:`22558`: MNT: Simplify imports +* :ghpull:`22580`: fix doc for annotation_clip parameter +* :ghpull:`22581`: DOC: fix various typos +* :ghpull:`22573`: Bump actions/setup-python from 2 to 3 +* :ghpull:`22568`: Rename qhull source to _qhull_wrapper.cpp. +* :ghpull:`22561`: FIX: Handle stopped animation figure resize +* :ghpull:`22562`: TST: Add a frame test for animations +* :ghpull:`22514`: Expire deprecations in cbook.deprecation +* :ghpull:`22555`: Use picklable callbacks for DraggableBase. +* :ghpull:`22552`: Tweak dependency checking in doc/conf.py. +* :ghpull:`22550`: Require sphinx>=3 & numpydoc>=1.0 for building docs. +* :ghpull:`22539`: Deprecate toplevel mpl.text.get_rotation; normalize rotations early. +* :ghpull:`22502`: Cleanup unused imports and variables in backends +* :ghpull:`20071`: Document, test, and simplify impl. of auto_adjustable_area. +* :ghpull:`22366`: Deprecation removal/updates in axes3d +* :ghpull:`22484`: Simplify the internal API to connect picklable callbacks. +* :ghpull:`22417`: Support passing rgbaFace as an array to agg's draw_path. +* :ghpull:`22412`: Turn _get_axis_map() into a property and remove _get_axis_list() +* :ghpull:`22486`: Expire deprecations in lines and patches +* :ghpull:`22512`: Increase coverage +* :ghpull:`22504`: Simplify FontProperties init. +* :ghpull:`22497`: Remove entries of MathTextParser._backend_mapping deprecated in 3.4. +* :ghpull:`22487`: Don't key MathTextParser cache off a mutable FontProperties. +* :ghpull:`22468`: Turn _mathtext.ship into a plain function. +* :ghpull:`22490`: Deprecate unused, untested Affine2D.identity(). +* :ghpull:`22491`: Linewrap setupext to 79 character lines. +* :ghpull:`22488`: Some more maintenance for mathtext internal implementation. +* :ghpull:`22485`: Change string representation of AxesImage +* :ghpull:`22240`: Add minimum macosx version +* :ghpull:`22480`: Remove _point_size_reduction. +* :ghpull:`22204`: Cleanup _mathtext internal API +* :ghpull:`22469`: Improve readability of mathtext internal structures. +* :ghpull:`22477`: Un-pyplot some examples which were already explicitly referencing axes. +* :ghpull:`22467`: Small cleanup to font handling in agg. +* :ghpull:`21178`: Add asinh axis scaling (*smooth* symmetric logscale) +* :ghpull:`22411`: Move cbook._define_aliases() to _api.define_aliases() +* :ghpull:`22465`: Deprecate unused AddList. +* :ghpull:`22451`: Clarify error message for bad keyword arguments. +* :ghpull:`21267`: Cleanup AnnotationBbox. +* :ghpull:`22464`: Small improvements related to radar_chart example. +* :ghpull:`22421`: Make most params to figure()/Figure() kwonly. +* :ghpull:`22457`: Copy arrowprops argument to FancyAnnotationBbox. +* :ghpull:`22454`: move ``_toolbar_2`` from webagg_core to webagg +* :ghpull:`22413`: Remove some trivial private getters/setters in axisartist +* :ghpull:`21634`: TST: Add future dependency tests as a weekly CI job +* :ghpull:`22079`: Share FigureManager class between gtk3 and gtk4. +* :ghpull:`22440`: Clarify warning about labels with leading underscores. +* :ghpull:`17488`: Make error message explicit in legend.py +* :ghpull:`22453`: Simplify impl. of polar limits setting API. +* :ghpull:`22449`: Small cleanup to quiver. +* :ghpull:`22415`: Make emit and auto args of set_{x,y,z}lim keyword only. +* :ghpull:`22422`: Deprecate backend_ps.convert_psfrags. +* :ghpull:`22194`: Drop support for Python 3.7 +* :ghpull:`22234`: Partial fix for grid alpha +* :ghpull:`22433`: Fix ambiguous link targets in docs. +* :ghpull:`22420`: Update plt.figure() docstring. +* :ghpull:`22388`: Make signature of Axes.annotate() more explicit. +* :ghpull:`22419`: Remove "Matplotlib version" from docs issue template +* :ghpull:`22423`: Avoid indiscriminate glob-remove in xpdf_distill. +* :ghpull:`22406`: [DOC]: Removed a redundant 'The' +* :ghpull:`21442`: Factor out common limits handling for x/y/z axes. +* :ghpull:`22397`: Axes capitalization in widgets and axes3d +* :ghpull:`22394`: Tweak Axes3D docstrings that refer to 2D plotting methods. +* :ghpull:`22383`: TST: fix doc build +* :ghpull:`21877`: DOC: attempt to explain the main different APIs +* :ghpull:`21238`: Raise when unknown signals are connected to CallbackRegistries. +* :ghpull:`22345`: MNT: make layout deprecations pending +* :ghpull:`21597`: FIX: Remove the deepcopy override from transforms +* :ghpull:`22370`: Replace tabs with spaces in C code. +* :ghpull:`22371`: Corrected a mistake in comments (Issue #22369) +* :ghpull:`21352`: Refactor hexbin(). +* :ghpull:`19214`: Improve autoscaling for high order Bezier curves +* :ghpull:`22268`: Deprecated is_decade and is_close_to_int +* :ghpull:`22359`: Slightly refactor TeX source generation. +* :ghpull:`22365`: Remove deprecated ``MovieWriter.cleanup`` +* :ghpull:`22363`: Properly capitalize "Unicode". +* :ghpull:`22025`: Deprecate various custom FigureFrameWx attributes/methods. +* :ghpull:`21391`: Reuse imsave()'s background-blending code in FigureCanvasAgg.print_jpeg. +* :ghpull:`22026`: Simplify wxframe deletion. +* :ghpull:`22351`: Fix "trailing" whitespace in C docstrings. +* :ghpull:`22342`: Docstrings for _qhull. +* :ghpull:`21836`: Slightly shorten ft2font init. +* :ghpull:`21962`: Privatize various internal APIs of backend_pgf. +* :ghpull:`22114`: Rewrite AxesStack independently of cbook.Stack. +* :ghpull:`22332`: Let TransformedPatchPath inherit most functionality from TransformedPath. +* :ghpull:`22292`: Cleanup Axis._translate_tick_kw +* :ghpull:`22339`: wx.App() should be init'ed in new_figure_manager_given_figure +* :ghpull:`22315`: More standardization of floating point slop in mpl_toolkits. +* :ghpull:`22337`: DOC: More cleanup axes -> Axes +* :ghpull:`22323`: Replace sole use of maxdict by lru_cache. +* :ghpull:`22229`: FIX: make safe to add / remove artists during ArtistList iteration +* :ghpull:`22196`: ``dates`` classes and functions support ``tz`` both as string and ``tzinfo`` +* :ghpull:`22161`: Add box when setting ``PolygonSelector.verts`` +* :ghpull:`19368`: Raise warning and downsample if data given to _image.resample is too large +* :ghpull:`22250`: Unify toolbar init across backends. +* :ghpull:`22304`: Added tests for ContourSet.legend_elements +* :ghpull:`21583`: Add pre-commit config and dev instructions +* :ghpull:`21547`: Custom cap widths in box and whisker plots in bxp() and boxplot() +* :ghpull:`20887`: Implement a consistent behavior in TkAgg backend for bad blit bbox +* :ghpull:`22317`: Rename outdated seaborn styles. +* :ghpull:`22271`: Rework/fix Text layout cache. +* :ghpull:`22097`: In mpl_toolkits, use the same floating point slop as for standard ticks. +* :ghpull:`22295`: Display bad format string in error message. +* :ghpull:`22287`: Removed unused code and variables +* :ghpull:`22244`: MNT: colorbar locators properties +* :ghpull:`22270`: Expanded documentation of Axis.set_ticks as per discussion in issue #22262 +* :ghpull:`22280`: Simplify FontProperties.copy(). +* :ghpull:`22174`: Give the Tk toolbar buttons a flat look +* :ghpull:`22046`: Add the ability to change the focal length of the camera for 3D plots +* :ghpull:`22251`: Colorbar docstring reorg +* :ghpull:`21933`: MNT: privatize colorbar attr +* :ghpull:`22258`: DOC: fix version switcher +* :ghpull:`22261`: DOC: fix switcher json +* :ghpull:`22154`: Add some tests for minspan{x,y} in RectangleSelector +* :ghpull:`22246`: DOC: add dropdown +* :ghpull:`22133`: Deprecated ``afm``, ``fontconfig_pattern``, and ``type1font`` +* :ghpull:`22249`: DOC: More capitalization of Axes +* :ghpull:`22021`: Ensure that all toolbar (old/new) subclasses can be init'ed consistently +* :ghpull:`22213`: Improve ft2font error reporting. +* :ghpull:`22245`: Deprecate cleared kwarg to get_renderer. +* :ghpull:`22239`: Fix typos +* :ghpull:`22216`: turn off the grid after creating colorbar axes +* :ghpull:`22055`: FIX: Return value instead of enum in get_capstyle/_joinstyle +* :ghpull:`22228`: Remove some unnecessary getattrs. +* :ghpull:`20426`: ENH: Layout engine +* :ghpull:`22224`: Trivial doc fix to annotations tutorial. +* :ghpull:`21894`: Jointly track x and y in PolygonSelector. +* :ghpull:`22205`: Bump minimum NumPy to 1.19 +* :ghpull:`22203`: Factor out underline-thickness lookups in mathtext. +* :ghpull:`22189`: DOC: Add hatch API to reference +* :ghpull:`22084`: Clean up 3d plot box_aspect zooming +* :ghpull:`22098`: Expire axes_grid1/axisartist deprecations. +* :ghpull:`22013`: Use standard toolbar in wx. +* :ghpull:`22160`: Removed unused variables etc. +* :ghpull:`22179`: FIX: macosx check case-insensitive app name +* :ghpull:`22157`: Improved coverage of mathtext and removed unused code +* :ghpull:`21781`: Use a fixture to get widget testing axes +* :ghpull:`22140`: Ensure log formatters use Unicode minus +* :ghpull:`21342`: Fix drawing animated artists changed in selector callback +* :ghpull:`22134`: Deprecated ``tight_bbox`` and ``tight_layout`` modules +* :ghpull:`21965`: Switch transOffset to offset_transform. +* :ghpull:`22145`: Make Tk windows use the same icon as other backends +* :ghpull:`22107`: Expire mathttext-related deprecations +* :ghpull:`22139`: FIX: width/height were reversed in macosx rectangle creation +* :ghpull:`22123`: Deprecate accepting arbitrary parameters in some get_window_extent() methods +* :ghpull:`22122`: Hint at draw_without_rendering() in Text.get_window_extent +* :ghpull:`22120`: Drop dependency on scipy in the docs. +* :ghpull:`22063`: FIX: Autoposition title when yaxis has offset +* :ghpull:`22119`: Micro-optimize skew(). +* :ghpull:`22109`: Remove unnecessary null checks in macosx.m, and some more maintenance +* :ghpull:`21977`: Add corner coordinate helper methods to Ellipse/Rectangle +* :ghpull:`21830`: Add option of bounding box for PolygonSelector +* :ghpull:`22115`: Turn _localaxes into a plain list. +* :ghpull:`22108`: Micro-optimize rotation transform. +* :ghpull:`22043`: Cleanup differential equations examples. +* :ghpull:`22080`: Simple style(ish) fixes. +* :ghpull:`22110`: Right-aligned status text in backends +* :ghpull:`21873`: DOC: Update and consolidate Custom Tick Formatter for Time Series example +* :ghpull:`22112`: Fix a small typo +* :ghpull:`20117`: Very soft-deprecate AxesDivider.new_{horizontal,vertical}. +* :ghpull:`22034`: Update lines_with_ticks_demo.py +* :ghpull:`22102`: DOC: rename usage tutorial to quick_start +* :ghpull:`19228`: Validate text rotation in setter +* :ghpull:`22081`: Expire colorbar-related deprecations. +* :ghpull:`22008`: Added color keyword argument to math_to_image +* :ghpull:`22058`: Remove exprired mplot3d deprecations for 3.6 +* :ghpull:`22073`: DOC: Add new tutorial to external resources. +* :ghpull:`22054`: MNT: Set CapStyle member names automatically +* :ghpull:`22061`: De-duplicate mplot3D API docs +* :ghpull:`22075`: Remove unnecessary ``.figure`` qualifier in docs. +* :ghpull:`22051`: Make required_interactive_framework required on FigureCanvas. +* :ghpull:`22050`: Deprecate the noop, unused FigureCanvasBase.resize. +* :ghpull:`22030`: Add explanatory comments to "broken" horizontal bar plot example +* :ghpull:`22001`: Fix: [Bug]: triplot with 'ls' argument yields TypeError #21995 +* :ghpull:`22045`: Fill in missing Axes3D box_aspect argument docstring +* :ghpull:`22042`: Keep FontEntry helpers private. +* :ghpull:`21042`: Make rcParams.copy() return a new RcParams instance. +* :ghpull:`22032`: flipy only affects the drawing of texts, not of images. +* :ghpull:`21993`: Added docstring to rrulewrapper class +* :ghpull:`21935`: Significantly improve tight layout performance for cartopy axes +* :ghpull:`22000`: Some gtk cleanups. +* :ghpull:`21983`: Simplify canvas class control in FigureFrameWx. +* :ghpull:`21985`: Slightly tighten the _get_layout_cache_key API. +* :ghpull:`22020`: Simplify wx _print_image. +* :ghpull:`22010`: Fix syntax highlighting in contrib guide. +* :ghpull:`22003`: Initialize RendererCairo.{width,height} in constructor. +* :ghpull:`21992`: Use _make_classic_style_pseudo_toolbar more. +* :ghpull:`21916`: Fix picklability of make_norm_from_scale norms. +* :ghpull:`21981`: FigureCanvasCairo can init RendererCairo; kill RendererCairo subclasses. +* :ghpull:`21986`: InvLogTransform should only return masked arrays for masked inputs. +* :ghpull:`21991`: PEP8ify wx callback names. +* :ghpull:`21975`: DOC: remove experimental tag from CL +* :ghpull:`21989`: Autoinfer norm bounds. +* :ghpull:`21980`: Removed loaded modules logging +* :ghpull:`21982`: Deprecate duplicated FigureManagerGTK{3,4}Agg classes. +* :ghpull:`21963`: Clarify current behavior of draw_path_collection. +* :ghpull:`21974`: Reword inset axes example. +* :ghpull:`21835`: Small improvements to interactive examples +* :ghpull:`21050`: Store dash_pattern as single attribute, not two. +* :ghpull:`21557`: Fix transparency when exporting to png via pgf backend. +* :ghpull:`21904`: Added _repr_html_ for fonts +* :ghpull:`21696`: Use cycling iterators in RendererBase. +* :ghpull:`21955`: Refactor common parts of ImageMagick{,File}Writer. +* :ghpull:`21952`: Clarify coordinates for RectangleSelector properties +* :ghpull:`21964`: Fix some more missing references. +* :ghpull:`21516`: Make _request_autoscale_view more generalizable to 3D. +* :ghpull:`21947`: Slightly cleanup RendererBase docs. +* :ghpull:`21961`: Privatize various internal APIs of backend_pgf. +* :ghpull:`21956`: Remove tests for avconv animation writers. +* :ghpull:`21954`: DOC: Move Animation and MovieWriter inheritance diagrams ... +* :ghpull:`21780`: Add a click_and_move widget test helper +* :ghpull:`21941`: Merge branch v3.5.x into main +* :ghpull:`21936`: Small ``__getstate__`` cleanups. +* :ghpull:`21939`: Update comment re: register_at_fork. +* :ghpull:`21910`: Fold _rgbacache into _imcache. +* :ghpull:`21921`: Clean up RectangleSelector move code +* :ghpull:`21925`: Drop labelling from PR welcome action +* :ghpull:`14930`: Set Dock icon on the macosx backend +* :ghpull:`21920`: Improve square state calculation in RectangleSelector +* :ghpull:`21919`: Fix use_data_coordinates docstring +* :ghpull:`21881`: Add a PolygonSelector.verts setter +* :ghpull:`20839`: Fix centre and square state and add rotation for rectangle selector +* :ghpull:`21874`: DOC: Add Date Tick Locators and Formatters example +* :ghpull:`21799`: Added get_font_names() to fontManager +* :ghpull:`21871`: DOC: Code from markevery_prop_cycle moved to test. +* :ghpull:`21395`: Expire _check_savefig_extra_args-related deprecations. +* :ghpull:`21867`: Remove unused bbox arg to _convert_agg_to_wx_bitmap. +* :ghpull:`21868`: Use partialmethod for better signatures in backend_ps. +* :ghpull:`21520`: Shorten some inset_locator docstrings. +* :ghpull:`21737`: Update the "Rotating a 3D plot" gallery example to show all 3 rotation axes +* :ghpull:`21851`: Re-order a widget test function +* :ghpull:`10762`: Normalization of elevation and azimuth angles for surface plots +* :ghpull:`21426`: Add ability to roll the camera in 3D plots +* :ghpull:`21822`: Replace NSDictionary by switch-case. +* :ghpull:`21512`: MNT: Add modifier key press handling to macosx backend +* :ghpull:`21784`: Set macOS icon when using Qt backend +* :ghpull:`21748`: Shorten PyObjectType defs in macosx.m. +* :ghpull:`21809`: MNT: Turn all macosx warnings into errors while building +* :ghpull:`21792`: Fix missing return value in closeButtonPressed. +* :ghpull:`21767`: Inherit many macos backend docstrings. +* :ghpull:`21766`: Don't hide build log on GHA. +* :ghpull:`21728`: Factor out some macosx gil handling for py-method calls from callbacks. +* :ghpull:`21754`: Update gitattributes so that objc diffs are correctly contextualized. +* :ghpull:`21752`: Add a helper for directly output pdf streams. +* :ghpull:`21750`: Don't sort pdf dicts. +* :ghpull:`21745`: DOC: Clarify Coords Report Example +* :ghpull:`21746`: Fix/add docstring signatures to many C++ methods. +* :ghpull:`21631`: DOC: change gridspec tutorial to arranging_axes tutorial +* :ghpull:`21318`: FIX: better error message for shared axes and axis('equal') +* :ghpull:`21519`: mark_inset should manually unstale axes limits before drawing itself. +* :ghpull:`21724`: Fix copyright date with SOURCE_DATE_EPOCH set +* :ghpull:`21398`: FIX: logic of title repositioning +* :ghpull:`21717`: Simplify macosx toolbar init. +* :ghpull:`21690`: Whitespace/braces/#defines cleanup to macosx. +* :ghpull:`21695`: Use _api.check_shape more. +* :ghpull:`21698`: Small code cleanups and style fixes. +* :ghpull:`21529`: Delay-load keymaps in toolmanager. +* :ghpull:`21525`: Fix support for clim in scatter. +* :ghpull:`21697`: Drop non-significant zeros from ps output. +* :ghpull:`21692`: CI: Remove CI test runs from forks of matplotlib +* :ghpull:`21591`: Make ToolFullScreen a Tool, not a ToolToggle. +* :ghpull:`21677`: Simplify test for negative xerr/yerr. +* :ghpull:`21657`: Replace some image_comparisons by return-value-tests/check_figures_e… +* :ghpull:`21664`: Merge 3.5.x into main +* :ghpull:`21490`: Make Line2D copy its inputs +* :ghpull:`21639`: Skip some uses of packaging's PEP440 version for non-Python versions. +* :ghpull:`21604`: Fix centre square rectangle selector part 1 +* :ghpull:`21593`: Check for images added-and-modified in a same PR +* :ghpull:`20750`: Shorten issue templates +* :ghpull:`21590`: Make gtk3 full_screen_toggle more robust against external changes. +* :ghpull:`21582`: Organize checklist in PR template +* :ghpull:`21580`: Rename/remove _lastCursor, as needed. +* :ghpull:`21567`: Removed the range parameter from the validate_whiskers function's err… +* :ghpull:`21565`: Further remove remnants of offset_position. +* :ghpull:`21542`: [ENH]: Use new style format strings for colorbar ticks +* :ghpull:`21564`: Skip invisible artists when doing 3d projection. +* :ghpull:`21558`: Various small fixes for streamplot(). +* :ghpull:`21544`: Return minorticks as array, not as list. +* :ghpull:`21546`: Added links to the mosaic docs in figure and pyplot module docstrings +* :ghpull:`21545`: Turn mouseover into a mpl-style getset_property. +* :ghpull:`21537`: Remove unnecessary False arg when constructing wx.App. +* :ghpull:`21536`: Reword margins docstrings, and fix bounds on zmargin values. +* :ghpull:`21535`: typo-correction-on-line-185 +* :ghpull:`21534`: Do not use space in directive calling. +* :ghpull:`21494`: Adding tutorial links for blitting in widgets.py +* :ghpull:`21407`: Stash exceptions when FT2Font closes the underlying stream. +* :ghpull:`21431`: set_ticks([single_tick]) should also expand view limits. +* :ghpull:`21444`: Make pipong example self-contained. +* :ghpull:`21392`: Add label about workflow to new contributor PRs +* :ghpull:`21440`: Install sphinx-panels along with development setup +* :ghpull:`21434`: Remove coords_flat variable +* :ghpull:`21415`: Move gui_support.macosx option to packages section. +* :ghpull:`21412`: Privatize some SVG internal APIs. +* :ghpull:`21401`: Uncamelcase some internal variables in axis.py; rename _get_tick_bboxes. +* :ghpull:`21417`: Use Bbox.unit() more. +* :ghpull:`20253`: Simplify parameter handling in FloatingAxesBase. +* :ghpull:`21379`: Simplify filename tracking in FT2Font. +* :ghpull:`21278`: Clear findfont cache when calling addfont(). +* :ghpull:`21400`: Use bbox.{size,bounds,width,height,p0,...} where appropriate. +* :ghpull:`21408`: Reword annotations tutorial section titles. +* :ghpull:`21371`: Rename default branch +* :ghpull:`21389`: Log pixel coordinates in event_handling coords_demo example on terminal/console +* :ghpull:`21376`: Factor common parts of saving to different formats using pillow. +* :ghpull:`21377`: Enable tests for text path based markers +* :ghpull:`21283`: Demonstrate inset_axes in scatter_hist example. +* :ghpull:`21356`: Raise an exception when find_tex_file fails to find a file. +* :ghpull:`21362`: Simplify wording of allowed errorbar() error values +* :ghpull:`21274`: ENH: Add support to save images in WebP format +* :ghpull:`21289`: Simplify _init_legend_box. +* :ghpull:`21256`: Make image_comparison work even without the autoclose fixture. +* :ghpull:`21343`: Fix type1font docstring markup/punctuation. +* :ghpull:`21341`: Fix trivial docstring typo. +* :ghpull:`21301`: Simplify ``Colormap.__call__`` a bit. +* :ghpull:`21280`: Make ``Path.__deepcopy__`` interact better with subclasses, e.g. TextPath. +* :ghpull:`21266`: Fix #21101 Add validator to errorbar method +* :ghpull:`20921`: Fix problem with (deep)copy of TextPath +* :ghpull:`20914`: 19195 rotated markers +* :ghpull:`21276`: Add language about not assigning issues +* :ghpull:`20715`: Improve Type-1 font parsing +* :ghpull:`21218`: Parametrize/simplify test_missing_psfont. +* :ghpull:`21213`: Compress comments in make_image. +* :ghpull:`21187`: Deprecate error_msg_foo helpers. +* :ghpull:`21190`: Deprecate mlab.stride_windows. +* :ghpull:`21152`: Rename ``**kw`` to ``**kwargs``. +* :ghpull:`21087`: Move colormap examples from userdemo to images_contours_and_fields. +* :ghpull:`21074`: Deprecate MarkerStyle(None). +* :ghpull:`20990`: Explicit registration of canvas-specific tool subclasses. +* :ghpull:`21049`: Simplify setting Legend attributes +* :ghpull:`21056`: Deprecate support for no-args MarkerStyle(). +* :ghpull:`21059`: Remove dummy test command from setup.py +* :ghpull:`21015`: Prepare for rcParams.copy() returning a new RcParams instance in the future +* :ghpull:`21021`: Factor out for_layout_only backcompat support in get_tightlayout. +* :ghpull:`21023`: Inline ToolManager._trigger_tool to its sole call site. +* :ghpull:`21005`: Test the rcParams deprecation machinery. +* :ghpull:`21010`: Avoid TransformedBbox where unneeded. +* :ghpull:`21019`: Reword custom_ticker1 example. +* :ghpull:`20995`: Deprecate some backend_gtk3 helper globals. +* :ghpull:`21004`: Remove now-unused rcParams _deprecated entries. +* :ghpull:`20986`: Make HandlerLine2D{,Compound} inherit constructors from HandlerNpoints. +* :ghpull:`20974`: Rename symbol_name to glyph_name where appropriate. +* :ghpull:`20961`: Small cleanups to math_to_image. +* :ghpull:`20957`: legend_handler_map cleanups. +* :ghpull:`20955`: Remove unused HostAxes._get_legend_handles. +* :ghpull:`20851`: Try to install the Noto Sans CJK font + +Issues (202): + +* :ghissue:`23827`: backend_gtk3agg.py calls set_device_scale +* :ghissue:`23560`: [Doc]: mpl_toolkits.axes_grid still mentioned as maintained +* :ghissue:`23794`: [Doc]: Version switcher broken in devdocs +* :ghissue:`23806`: [Bug]: possible regression in axis ticks handling in matplotlib 3.6.0rc2 +* :ghissue:`22965`: [Bug]: triplot duplicates label legend +* :ghissue:`23807`: streamplot raises ValueError when the input is zeros +* :ghissue:`23761`: [Bug]: False positive legend handler warnings in 3.6.0.rc1 +* :ghissue:`23398`: [Bug]: Newer versions of matplotlib ignore xlabel on colorbar axis +* :ghissue:`23699`: [Bug]: Bug with toolbar instantiation in notebook +* :ghissue:`23745`: [Doc]: Minor rcParams/matplotlibrc doc issues +* :ghissue:`23717`: [Bug]: AxesSubplot.get_yticks not returning the actual printed ticks +* :ghissue:`21508`: [Doc]: Create diagram to show rotation directions for 3D plots +* :ghissue:`23709`: [Bug]: colorbar with unattached mappables can't steal space +* :ghissue:`23701`: [Bug]: plt.figure(), plt.close() leaks memory +* :ghissue:`22409`: [Bug]: AttributeError: 'QResizeEvent' object has no attribute 'pos' +* :ghissue:`19609`: DeprecationWarning when changing color maps +* :ghissue:`23716`: MatplotlibDeprecationWarning removal hard-breaks seaborn in 3.6rc1 +* :ghissue:`23719`: [Bug]: register_cmap deprecation message seems wrong +* :ghissue:`23707`: test_Normalize fails on aarch64/ppc64le/s390x +* :ghissue:`21107`: [MNT]: Should plt.xticks() get a minor keyword argument +* :ghissue:`23679`: [Doc]: Deprecated modules not in docs +* :ghissue:`19550`: Arc and pathpatch_2d_to_3d plots full ellipse +* :ghissue:`23329`: [Bug]: ``plt.autoscale()`` fails for partial ``Arc`` +* :ghissue:`11266`: Arc patch ignoring theta1/theta2 when added to Axes via PatchCollection +* :ghissue:`4067`: 'Poly3DCollection' object has no attribute '_facecolors2d' +* :ghissue:`23622`: [MNT]: make.bat not parsing sphinxopt +* :ghissue:`23459`: [Bug]: 'Line3D' object has no attribute '_verts3d' +* :ghissue:`23653`: [Bug]: macosx subplot tool causes segfault when window closed +* :ghissue:`23660`: [Bug]: Test test_figure.py::test_subfigure_ss[png] FAILED on ppc64le +* :ghissue:`23645`: [MNT]: Python 3.11 manylinux wheels +* :ghissue:`23650`: TTF fonts loaded from file are not embedded/displayed properly when saved to pdf +* :ghissue:`23583`: [Doc]: Document the position parameter in apply_aspect() +* :ghissue:`23386`: setuptools_scm-git-archive is obsolete +* :ghissue:`23220`: [Doc]: Clarify ``offset`` parameter in linestyle +* :ghissue:`22746`: [Doc]: Document that rcParams['font.family'] can be a list +* :ghissue:`8187`: Axes doesn't have ````legends```` attribute? +* :ghissue:`23580`: [Bug]: TypeError when plotting against list of datetime.date where 0th element of list is None +* :ghissue:`15514`: Relevant methods are only documented in base classes and thus not easily discoverable +* :ghissue:`21611`: DOC: Add conda environment instructions to developers guide +* :ghissue:`23487`: [Bug]: scatter plot color settings discarded unless c given +* :ghissue:`22977`: [Bug]: offset dash linestyle has no effect in patch objects +* :ghissue:`18883`: Matplotlib would not try to apply all the font in font list to draw all characters in the given string. +* :ghissue:`22570`: [ENH]: Provide ``axis('equal')`` for ``Axes3D``. +* :ghissue:`23433`: [Bug]: array-like linewidth raises an error for scatter3D +* :ghissue:`12388`: Legend Title Left Alignment +* :ghissue:`23375`: [Bug]: markerfacecoloralt not supported when drawing errorbars +* :ghissue:`17973`: DOC: matplotlib.__doc__ not included in online docs ? +* :ghissue:`23474`: [Bug]: ``\,`` and ``\mathrm{\,}`` are not identical in Mathtext when using CM and STIX +* :ghissue:`8715`: event handlers have different signatures across backends +* :ghissue:`18271`: PGF uses the minimal document class +* :ghissue:`23324`: [Bug]: Exception not handled in widgetlock() +* :ghissue:`15710`: doc for type of tz parameter is inconsistent throughout dates.py +* :ghissue:`21165`: Hexbin marginals need a test for linear scaling +* :ghissue:`23105`: [MNT]: Deprecate per-backend customization of draw_if_interactive +* :ghissue:`23147`: [Bug]: with setuptools>=60, cannot find msbuild +* :ghissue:`23379`: [Bug]: Offset notation on y-axis can overlap with a long title +* :ghissue:`22819`: [Doc]: Make rect argument consistent in the docstrings +* :ghissue:`23172`: [Bug]: Calling matplotlib.pyplot.show() outside of matplotlib.pyplot.rc_context no longer works +* :ghissue:`23019`: [Bug]: ``UnicodeDecodeError`` when using some special and accented characters in TeX +* :ghissue:`23334`: [Doc]: Tk embedding example crashes Spyder +* :ghissue:`23298`: [Bug]: get_backend() clears figures from Gcf.figs if they were created under rc_context +* :ghissue:`21942`: [ENH]: add width/height_ratios to subplots and friends +* :ghissue:`23028`: [ENH]: contour kwarg for negative_linestyle +* :ghissue:`19223`: Certain non-hashable parameters to text() give cryptic error messages +* :ghissue:`18351`: Add the ability to plot striped lines +* :ghissue:`23205`: [Bug]: URL-area not rotated in PDFs +* :ghissue:`23268`: [Bug]: hyphen renders different length depending on presence of MathText +* :ghissue:`23308`: [Bug]: set_visible() not working for 3d projection +* :ghissue:`23296`: Set_color method for line2d object in latest document not work +* :ghissue:`22992`: [Bug]: test_image_comparison_expect_rms nondeterministic failure +* :ghissue:`23008`: [ENH]: Use ``\genfrac`` in display style? +* :ghissue:`23214`: [MNT]: Rename examples with "test" in the name +* :ghissue:`17852`: Thin space missing after mathtext operators +* :ghissue:`12078`: Inconsistency in keyword-arguments ncol/ncols, nrow/nrows +* :ghissue:`23239`: [Doc]: steps is not implemented in line styles. +* :ghissue:`23151`: [MNT]: default date limits... +* :ghissue:`9462`: Misaligned bottoms of subplots for png output with bbox_inches='tight' +* :ghissue:`21369`: [Bug]: ax.invert_xaxis() and ax.invert_yaxis() both flip the X axis +* :ghissue:`20797`: ``macosx`` cursors break with images +* :ghissue:`23084`: [TST] Upcoming dependency test failures +* :ghissue:`22910`: [Bug]: bar_label fails with nan errorbar values +* :ghissue:`23074`: [Bug]: matplotlib crashes if ``_tkinter`` doesn't have ``__file__`` +* :ghissue:`23083`: [Bug]: Confusing error messages +* :ghissue:`22391`: [Doc]: Remove "keywords" line at the bottom of all examples +* :ghissue:`20202`: Daylocator causes frozen computer when used with FuncAnimation +* :ghissue:`22529`: Replace C++ quad contouring code with use of ContourPy +* :ghissue:`21710`: [ENH]: macosx backend does not respect rcParams["savefig.directory"] +* :ghissue:`21880`: [Doc]: rrulewrapper not included in API docs +* :ghissue:`22622`: [Bug]: Gaps and overlapping areas between bins when using float16 +* :ghissue:`23043`: [TST] Upcoming dependency test failures +* :ghissue:`17960`: Line2D object markers are lost when retrieved from legend.get_lines() when linestyle='None' +* :ghissue:`23026`: [MNT]: Require that matplotlibrc/style files use utf-8 (or have an encoding cookie) +* :ghissue:`22947`: [Bug]: Can't use ``plt.sca()`` on axes created using subfigures +* :ghissue:`22623`: [ENH]: support rect with constrained_layout ("layout only to part of the figure") +* :ghissue:`22917`: "ab;cd" missing in subplot_mosaic tutorial +* :ghissue:`22686`: [Bug]: can not give init value for RangeSlider widget +* :ghissue:`22740`: [MNT]: Add codespell to pre-commit hooks +* :ghissue:`22893`: rainbow text example is broken +* :ghissue:`21571`: [Doc]: Clarify text positioning +* :ghissue:`22092`: [Bug]: Configure subplots dialog freezes for TkAgg with toolmanager +* :ghissue:`22760`: [Bug]: Macosx legend picker doesn't work anymore +* :ghissue:`16369`: Call to input blocks slider input on osx with the default agg 'MacOSX'. It works fine on when TkAgg is used. +* :ghissue:`22915`: [Bug]: figure.raise_window rcParam does not work on MacOSX backend +* :ghissue:`22930`: [Bug]: Regression in dashes due to #22569 +* :ghissue:`22859`: [Bug]: findSystemFonts should not look in subdirectories of C:\Windows\Fonts\ +* :ghissue:`22882`: Missing ``f`` prefix on f-strings +* :ghissue:`22738`: [MNT]: make Axes.cla an alias for Axes.clear in all cases +* :ghissue:`22708`: [TST] Upcoming dependency test failures +* :ghissue:`8388`: Proposed ENH: Allow user to turn off breaking of streamlines in streamplot +* :ghissue:`20755`: [Bug]: make_norm_from_scale should create picklable classes even when used in-line. +* :ghissue:`18249`: Expand the explanation of the Object-Oriented interface +* :ghissue:`22792`: [Bug]: .eps greyscale hatching of patches when lw=0 +* :ghissue:`22630`: [ENH]: enable passing of projection keyword to Axes.inset_axes +* :ghissue:`22414`: [Bug]: bar_label overlaps bars when y-axis is inverted +* :ghissue:`22726`: [Bug]: tripcolor ignores clim +* :ghissue:`21635`: [ENH]: Add a nightly wheel build +* :ghissue:`9994`: document where nightly wheels are published +* :ghissue:`22350`: [Bug]: text.usetex Vs. DateFormatter +* :ghissue:`4976`: missing imshow() subplots when using tight_layout() +* :ghissue:`22150`: [ENH]: Tool icons are hardly visible in Tk when using a dark theme +* :ghissue:`22662`: Leave color parameter empty should be fine[ENH]: +* :ghissue:`22671`: [Doc]: plot_format adaption invalidates sphinx cache +* :ghissue:`22582`: [Bug]: FontManager.addfont doesn't accept pathlib.Path of TTF font +* :ghissue:`22657`: [ENH]: vector map +* :ghissue:`16181`: The great API cleanup +* :ghissue:`22636`: [Bug]: Infinite loop when there is single double quote in matplotlibrc +* :ghissue:`22266`: [Doc]: Improve examples in documentation +* :ghissue:`11861`: Figure does not close until script finishes execution +* :ghissue:`19288`: Escape # character in matplotlibrc +* :ghissue:`22579`: [Bug]: Replacement for epoch2num behaves differently (does not accept arrays) +* :ghissue:`22605`: [Bug]: Tool contrast low with dark theme on macosx backend +* :ghissue:`17642`: bring osx backend flush_events to feature parity with other backend +* :ghissue:`19268`: Drawing the canvas does not populate ticklabels on MacOSX backend +* :ghissue:`17445`: MacOSX does not render frames in which new artists are added when blitting +* :ghissue:`10980`: Current versions cannot reproduce rotate_axes_3d_demo.py +* :ghissue:`18451`: MacOSX backend fails with animation in certain scripts +* :ghissue:`22603`: [MNT]: Replace str(n)cpy etc with safe versions (C++) +* :ghissue:`19121`: Handle and label not created for Text with label +* :ghissue:`22563`: [Doc]: annotation_clip=None not correctly documented +* :ghissue:`12528`: Empty axes on draw after blitted animation finishes +* :ghissue:`20991`: [Bug]: Error when using path effect with a PolyCollection +* :ghissue:`19563`: path_effects kwarg triggers exception on 3D scatterplot +* :ghissue:`8650`: System Error in backend_agg. (with a fix!) +* :ghissue:`20294`: ``AxesImage.__str__`` is wrong if the image does not span the full Axes. +* :ghissue:`18066`: Document minimum supported OSX version for macos backend +* :ghissue:`17018`: Add documentation about transparency of frame +* :ghissue:`22403`: [MNT]: Confusing prompt in docs issue template +* :ghissue:`8839`: mpl_connect silently does nothing when passed an invalid event type string +* :ghissue:`22343`: [MNT]: Delay (or make pending) the deprecation of set_constrained_layout/set_tight_layout +* :ghissue:`21554`: [Bug]: ``ValueError`` upon deepcopy of a ``Figure`` object +* :ghissue:`22369`: [Doc]: Incorrect comment in example code for creating adjacent subplots +* :ghissue:`19174`: connectionstyle arc3 with high rad value pushes up data interval of x-axis and y-axis. +* :ghissue:`8351`: seaborn styles make "+", "x" markers invisible; proposed workaround for shipped styles +* :ghissue:`22278`: Deprecate/remove maxdict +* :ghissue:`19276`: imshow with very large arrays not working as expected +* :ghissue:`22035`: [ENH]: Specify a custom focal length / FOV for the 3d camera +* :ghissue:`22264`: [Bug]: new constrained_layout causes axes to go invisible(?) +* :ghissue:`21774`: [MNT]: Improvements to widget tests +* :ghissue:`18722`: Consider removing AFM+mathtext support +* :ghissue:`21540`: [Bug]: cm fontset in log scale does not use Unicode minus +* :ghissue:`22062`: [Bug]: Autopositioned title overlaps with offset text +* :ghissue:`22093`: [Bug]: AttributeError: 'AxesSubplot' object has no attribute 'add_text' +* :ghissue:`22012`: [Bug]: Mouseover coordinate/value text should be right aligned +* :ghissue:`21995`: [Bug]: triplot with 'ls' argument yields TypeError +* :ghissue:`20249`: MatplotlibDeprecationWarning when updating rcparams +* :ghissue:`15781`: MatplotlibDeprecationWarning examples.directory is deprecated +* :ghissue:`13118`: No MatplotlibDeprecationWarning for default rcParams +* :ghissue:`21978`: Remove logging debug of loaded modules +* :ghissue:`11738`: pgf backend doesn't make background transparent +* :ghissue:`18039`: Add ``_repr_html_`` for fonts +* :ghissue:`21970`: [Bug]: tight layout breaks with toolbar.push_current() +* :ghissue:`14850`: No icon showing up with macosx backend +* :ghissue:`17283`: Create Date Formatter/Locator Reference +* :ghissue:`21761`: [Doc]: add how to know available fonts... +* :ghissue:`21863`: [Doc]: Remove example "prop_cycle property markevery in rcParams" +* :ghissue:`10241`: Axes3D.view_init elevation issue between 270 and 360 degrees +* :ghissue:`14453`: add third angle to view_init() +* :ghissue:`20486`: Modifier key press events not recognized on MacOSX backend +* :ghissue:`9837`: MacOS: Key modifiers deprecated +* :ghissue:`11416`: RuntimeError: adjustable='datalim' is not allowed when both axes are shared. +* :ghissue:`17711`: inset_locator.mark_inset() misplaces box connectors +* :ghissue:`20854`: [Doc]: Incorrect copyright start year at the bottom of devdocs page +* :ghissue:`21394`: [Bug]: Subplot title does not obey padding +* :ghissue:`20998`: [Bug]: ToolManager does not respect rcParams["keymap."] set after import time +* :ghissue:`7075`: Superscripts in axis label cut when saving .eps with bbox_inches="tight" +* :ghissue:`21514`: [Doc]: Error message of validate_whiskers is not updated +* :ghissue:`21532`: [Doc]: subplot_mosaic docstring should link to the tutorial +* :ghissue:`16550`: Docs: performance discussion of tight_layout +* :ghissue:`21378`: [ENH]: use new style format strings for colorbar ticks +* :ghissue:`19323`: Streamplot color mapping fails on (near-)empty array. +* :ghissue:`19559`: Axes.get_xticks() returns a numpy array but Axes.get_xticks(minor=True) returns a plain list +* :ghissue:`21526`: [Doc]: Little Typo on Introductory Tutorial +* :ghissue:`19195`: Rotate Markers in functions like plot, scatter, etcetera +* :ghissue:`21364`: [Bug]: double free when FT2Font constructor is interrupted by KeyboardInterrupt +* :ghissue:`16581`: Can't not refresh new font in running interpreter +* :ghissue:`21162`: [ENH]: saving images in webp format +* :ghissue:`18168`: The example of the testing decorator does not work. +* :ghissue:`20943`: [Bug]: Deepcopy of TextPath fails +* :ghissue:`21101`: [Bug]: Errorbars separated from markers with negative errors +* :ghissue:`17986`: MEP22 per-backend tool registration +* :ghissue:`4938`: Feature request: add option to disable mathtext parsing +* :ghissue:`11435`: plt.subplot eats my subplots Previous GitHub statistics diff --git a/doc/users/next_whats_new/3d_plot_aspects.rst b/doc/users/next_whats_new/3d_plot_aspects.rst deleted file mode 100644 index a65160b4face..000000000000 --- a/doc/users/next_whats_new/3d_plot_aspects.rst +++ /dev/null @@ -1,33 +0,0 @@ -Set equal aspect ratio for 3D plots ------------------------------------ - -Users can set the aspect ratio for the X, Y, Z axes of a 3D plot to be 'equal', -'equalxy', 'equalxz', or 'equalyz' rather than the default of 'auto'. - -.. plot:: - :include-source: true - - import matplotlib.pyplot as plt - import numpy as np - from itertools import combinations, product - - aspects = ('auto', 'equal', 'equalxy', 'equalyz', 'equalxz') - fig, axs = plt.subplots(1, len(aspects), subplot_kw={'projection': '3d'}) - - # Draw rectangular cuboid with side lengths [1, 1, 5] - r = [0, 1] - scale = np.array([1, 1, 5]) - pts = combinations(np.array(list(product(r, r, r))), 2) - for start, end in pts: - if np.sum(np.abs(start - end)) == r[1] - r[0]: - for ax in axs: - ax.plot3D(*zip(start*scale, end*scale), color='C0') - - # Set the aspect ratios - for i, ax in enumerate(axs): - ax.set_box_aspect((3, 4, 5)) - ax.set_aspect(aspects[i]) - ax.set_title(f"set_aspect('{aspects[i]}')") - - fig.set_size_inches(13, 3) - plt.show() diff --git a/doc/users/next_whats_new/3d_plot_focal_length.rst b/doc/users/next_whats_new/3d_plot_focal_length.rst deleted file mode 100644 index 41750851dc06..000000000000 --- a/doc/users/next_whats_new/3d_plot_focal_length.rst +++ /dev/null @@ -1,31 +0,0 @@ -Give the 3D camera a custom focal length ----------------------------------------- - -Users can now better mimic real-world cameras by specifying the focal length of -the virtual camera in 3D plots. The default focal length of 1 corresponds to a -Field of View (FOV) of 90 deg, and is backwards-compatible with existing 3D -plots. An increased focal length between 1 and infinity "flattens" the image, -while a decreased focal length between 1 and 0 exaggerates the perspective and -gives the image more apparent depth. - -The focal length can be calculated from a desired FOV via the equation: - -.. mathmpl:: - - focal\_length = 1/\tan(FOV/2) - -.. plot:: - :include-source: true - - from mpl_toolkits.mplot3d import axes3d - import matplotlib.pyplot as plt - from numpy import inf - fig, axs = plt.subplots(1, 3, subplot_kw={'projection': '3d'}) - X, Y, Z = axes3d.get_test_data(0.05) - focal_lengths = [0.2, 1, inf] - for ax, fl in zip(axs, focal_lengths): - ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) - ax.set_proj_type('persp', focal_length=fl) - ax.set_title(f"focal_length = {fl}") - fig.set_size_inches(10, 4) - plt.show() diff --git a/doc/users/next_whats_new/3d_plot_roll_angle.rst b/doc/users/next_whats_new/3d_plot_roll_angle.rst deleted file mode 100644 index 66674297077b..000000000000 --- a/doc/users/next_whats_new/3d_plot_roll_angle.rst +++ /dev/null @@ -1,22 +0,0 @@ -3D plots gained a 3rd "roll" viewing angle ------------------------------------------- - -3D plots can now be viewed from any orientation with the addition of a 3rd roll -angle, which rotates the plot about the viewing axis. Interactive rotation -using the mouse still only controls elevation and azimuth, meaning that this -feature is relevant to users who create more complex camera angles -programmatically. The default roll angle of 0 is backwards-compatible with -existing 3D plots. - -.. plot:: - :include-source: true - - from mpl_toolkits.mplot3d import axes3d - import matplotlib.pyplot as plt - fig = plt.figure() - ax = fig.add_subplot(projection='3d') - X, Y, Z = axes3d.get_test_data(0.05) - ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) - ax.view_init(elev=0, azim=0, roll=30) - ax.set_title('elev=0, azim=0, roll=30') - plt.show() diff --git a/doc/users/next_whats_new/asinh_scale.rst b/doc/users/next_whats_new/asinh_scale.rst deleted file mode 100644 index 69238ebe220a..000000000000 --- a/doc/users/next_whats_new/asinh_scale.rst +++ /dev/null @@ -1,32 +0,0 @@ -New axis scale ``asinh`` (experimental) ---------------------------------------- - -The new ``asinh`` axis scale offers an alternative to ``symlog`` that -smoothly transitions between the quasi-linear and asymptotically logarithmic -regions of the scale. This is based on an arcsinh transformation that -allows plotting both positive and negative values that span many orders -of magnitude. - -.. plot:: - - import matplotlib.pyplot as plt - import numpy as np - - fig, (ax0, ax1) = plt.subplots(1, 2, sharex=True) - x = np.linspace(-3, 6, 100) - - ax0.plot(x, x) - ax0.set_yscale('symlog') - ax0.grid() - ax0.set_title('symlog') - - ax1.plot(x, x) - ax1.set_yscale('asinh') - ax1.grid() - ax1.set_title(r'$sinh^{-1}$') - - for p in (-2, 2): - for ax in (ax0, ax1): - c = plt.Circle((p, p), radius=0.5, fill=False, - color='red', alpha=0.8, lw=3) - ax.add_patch(c) diff --git a/doc/users/next_whats_new/bar_plot_labels.rst b/doc/users/next_whats_new/bar_plot_labels.rst deleted file mode 100644 index 6da57a317f59..000000000000 --- a/doc/users/next_whats_new/bar_plot_labels.rst +++ /dev/null @@ -1,16 +0,0 @@ -Easier labelling of bars in bar plot ------------------------------------- - -The ``label`` argument of `~matplotlib.axes.Axes.bar` can now -be passed a list of labels for the bars. - -.. code-block:: python - - import matplotlib.pyplot as plt - - x = ["a", "b", "c"] - y = [10, 20, 15] - - fig, ax = plt.subplots() - bar_container = ax.barh(x, y, label=x) - [bar.get_label() for bar in bar_container] diff --git a/doc/users/next_whats_new/color_support_for_math_to_image.rst b/doc/users/next_whats_new/color_support_for_math_to_image.rst deleted file mode 100644 index 3c4f376349a6..000000000000 --- a/doc/users/next_whats_new/color_support_for_math_to_image.rst +++ /dev/null @@ -1,11 +0,0 @@ -``math_to_image`` now has a *color* keyword argument --------------------------------------------------------- - -To easily support external libraries that rely on the MathText rendering of -Matplotlib to generate equation images, a *color* keyword argument was added -to `~matplotlib.mathtext.math_to_image`. - -.. code-block:: python - - from matplotlib import mathtext - mathtext.math_to_image('$x^2$', 'filename.png', color='Maroon') diff --git a/doc/users/next_whats_new/custom_cap_widths.rst b/doc/users/next_whats_new/custom_cap_widths.rst deleted file mode 100644 index 137b9b6839f8..000000000000 --- a/doc/users/next_whats_new/custom_cap_widths.rst +++ /dev/null @@ -1,16 +0,0 @@ -Custom cap widths in box and whisker plots in bxp() and boxplot() ------------------------------------------------------------------ - -New bxp() and boxplot() parameter capwidths allows to control the -widths of the caps in box and whisker plots. - -.. plot:: - :include-source: true - - import matplotlib.pyplot as plt - import numpy as np - x = np.linspace(-7, 7, 140) - x = np.hstack([-25, x, 25]) - fig, ax = plt.subplots() - ax.boxplot([x, x], notch=True, capwidths=[0.01, 0.2]) - plt.show() diff --git a/doc/users/next_whats_new/double_quotes_matplolibrc.rst b/doc/users/next_whats_new/double_quotes_matplolibrc.rst deleted file mode 100644 index e40c1be750b2..000000000000 --- a/doc/users/next_whats_new/double_quotes_matplolibrc.rst +++ /dev/null @@ -1,10 +0,0 @@ -Double-quoted strings in matplotlibrc -------------------------------------- - -You can now use double-quotes around strings. This allows using the '#' -character in strings. Without quotes, '#' is interpreted as start of a comment. -In particular, you can now define hex-colors: - -.. code-block:: none - - grid.color: "#b0b0b0" diff --git a/doc/users/next_whats_new/extending_MarkerStyle.rst b/doc/users/next_whats_new/extending_MarkerStyle.rst deleted file mode 100644 index f31585a70b1c..000000000000 --- a/doc/users/next_whats_new/extending_MarkerStyle.rst +++ /dev/null @@ -1,19 +0,0 @@ -New customization of MarkerStyle --------------------------------- - -New MarkerStyle parameters allow control of join style and cap style, and for -the user to supply a transformation to be applied to the marker (e.g. a rotation). - -.. plot:: - :include-source: true - - import matplotlib.pyplot as plt - from matplotlib.markers import MarkerStyle - from matplotlib.transforms import Affine2D - fig, ax = plt.subplots(figsize=(6, 1)) - fig.suptitle('New markers', fontsize=14) - for col, (size, rot) in enumerate(zip([2, 5, 10], [0, 45, 90])): - t = Affine2D().rotate_deg(rot).scale(size) - ax.plot(col, 0, marker=MarkerStyle("*", transform=t)) - ax.axis("off") - ax.set_xlim(-0.1, 2.4) diff --git a/doc/users/next_whats_new/figure_label_rcparams.rst b/doc/users/next_whats_new/figure_label_rcparams.rst deleted file mode 100644 index 149da1e92cf0..000000000000 --- a/doc/users/next_whats_new/figure_label_rcparams.rst +++ /dev/null @@ -1,10 +0,0 @@ -Allow setting figure label size and weight globally and separately from title ------------------------------------------------------------------------------ - -The figure labels, ``Figure.supxlabel`` and ``Figure.supylabel``, size and -weight can be set separately from the figure title. Use :rc:`figure.labelsize` -and :rc:`figure.labelweight`. - -Note that if you have locally changed :rc:`figure.titlesize` or -:rc:`figure.titleweight`, you must now also change the introduced parameters -for a consistent result. diff --git a/doc/users/next_whats_new/fix_dash_offset_Patch.rst b/doc/users/next_whats_new/fix_dash_offset_Patch.rst deleted file mode 100644 index 7be55858f70f..000000000000 --- a/doc/users/next_whats_new/fix_dash_offset_Patch.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix the dash offset of the Patch class --------------------------------------- -Traditionally, when setting the linestyle on a `.Patch` object using a dash tuple the -offset was ignored. Now the offset is passed to the draw method of Patch as expected -and it can be used as it is used with Line2D objects. diff --git a/doc/users/next_whats_new/font_fallback.rst b/doc/users/next_whats_new/font_fallback.rst deleted file mode 100644 index 51d9143147ce..000000000000 --- a/doc/users/next_whats_new/font_fallback.rst +++ /dev/null @@ -1,27 +0,0 @@ -Font fallback -------------- - -It is now possible to specify a list of fonts families and Matplotlib -will try them in order to locate a required glyph. - -.. plot:: - :caption: Demonstration of mixed English and Chinese text with font fallback. - :alt: The phrase "There are 几个汉字 in between!" rendered in various fonts. - :include-source: True - - import matplotlib.pyplot as plt - - text = "There are 几个汉字 in between!" - - plt.rcParams["font.size"] = 20 - fig = plt.figure(figsize=(4.75, 1.85)) - fig.text(0.05, 0.85, text, family=["WenQuanYi Zen Hei"]) - fig.text(0.05, 0.65, text, family=["Noto Sans CJK JP"]) - fig.text(0.05, 0.45, text, family=["DejaVu Sans", "Noto Sans CJK JP"]) - fig.text(0.05, 0.25, text, family=["DejaVu Sans", "WenQuanYi Zen Hei"]) - - plt.show() - - -This currently works with the Agg (and all of the GUI embeddings), svg, pdf, -ps, and inline backends. diff --git a/doc/users/next_whats_new/inset_axes_improvements.rst b/doc/users/next_whats_new/inset_axes_improvements.rst deleted file mode 100644 index ad4918120a84..000000000000 --- a/doc/users/next_whats_new/inset_axes_improvements.rst +++ /dev/null @@ -1,6 +0,0 @@ -Axes.inset_axes flexibility ---------------------------- - -`matplotlib.axes.Axes.inset_axes` now accepts the *projection*, *polar* and -*axes_class* keyword arguments, so that subclasses of `matplotlib.axes.Axes` may -be returned. diff --git a/doc/users/next_whats_new/layout_engine.rst b/doc/users/next_whats_new/layout_engine.rst deleted file mode 100644 index 9304ee9771e0..000000000000 --- a/doc/users/next_whats_new/layout_engine.rst +++ /dev/null @@ -1,7 +0,0 @@ -New ``layout_engine`` module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Matplotlib ships with ``tight_layout`` and ``constrained_layout`` layout -engines. A new ``layout_engine`` module is provided to allow downstream -libraries to write their own layout engines and `~.figure.Figure` objects can -now take a `.LayoutEngine` subclass as an argument to the *layout* parameter. diff --git a/doc/users/next_whats_new/legend_align.rst b/doc/users/next_whats_new/legend_align.rst deleted file mode 100644 index 4a1d479c8e27..000000000000 --- a/doc/users/next_whats_new/legend_align.rst +++ /dev/null @@ -1,6 +0,0 @@ -Legend can control alignment of title and handles -------------------------------------------------- - -`.Legend` now supports control the alignment of title and handles via the -keyword argument ``alignment``. You can also use `.Legend.set_alignment` -to control the alignment on existing Legends. diff --git a/doc/users/next_whats_new/list_font_names.rst b/doc/users/next_whats_new/list_font_names.rst deleted file mode 100644 index d3737cd8ba55..000000000000 --- a/doc/users/next_whats_new/list_font_names.rst +++ /dev/null @@ -1,10 +0,0 @@ -List of available font names ------------------------------- - -The list of available fonts are now easily accessible. Get a list of the -available font names in matplotlib with: - -.. code-block:: python - - from matplotlib import font_manager - font_manager.get_font_names() diff --git a/doc/users/next_whats_new/marker_none.rst b/doc/users/next_whats_new/marker_none.rst deleted file mode 100644 index b37f07ea1333..000000000000 --- a/doc/users/next_whats_new/marker_none.rst +++ /dev/null @@ -1,5 +0,0 @@ -``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/min_macos_version.rst b/doc/users/next_whats_new/min_macos_version.rst deleted file mode 100644 index 8d3a8f04fcdb..000000000000 --- a/doc/users/next_whats_new/min_macos_version.rst +++ /dev/null @@ -1,3 +0,0 @@ -New minimum macOS version -------------------------- -The macosx backend now requires macOS >= 10.12. diff --git a/doc/users/next_whats_new/modify_stairs_fill_edge_behaviour.rst b/doc/users/next_whats_new/modify_stairs_fill_edge_behaviour.rst deleted file mode 100644 index 1dc24a20907a..000000000000 --- a/doc/users/next_whats_new/modify_stairs_fill_edge_behaviour.rst +++ /dev/null @@ -1,9 +0,0 @@ -stairs(..., fill=True) to hide patch edge by setting lw=0 ---------------------------------------------------------- - -``stairs(..., fill=True)`` would previously hide Patch -edge by setting edgecolor="none". Calling ``set_color()`` -on the Patch after would make the Patch appear larger. -Updated treatment prevents this. Likewise calling -``stairs(..., fill=True, lw=3)`` will behave more -transparently. diff --git a/doc/users/next_whats_new/multicursor_multifigure.rst b/doc/users/next_whats_new/multicursor_multifigure.rst deleted file mode 100644 index 04b39f9d0c56..000000000000 --- a/doc/users/next_whats_new/multicursor_multifigure.rst +++ /dev/null @@ -1,8 +0,0 @@ -``MultiCursor`` now supports Axes split over multiple figures -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Previously, `.MultiCursor` only worked if all target Axes belonged to the same -figure. - -As a consequence of this change, the first argument to the `.MultiCursor` -constructor has become unused (it was previously the joint canvas of all Axes, -but the canvases are now directly inferred from the list of Axes). diff --git a/doc/users/next_whats_new/no_broken_streamlines.rst b/doc/users/next_whats_new/no_broken_streamlines.rst deleted file mode 100644 index 7160cd7caca0..000000000000 --- a/doc/users/next_whats_new/no_broken_streamlines.rst +++ /dev/null @@ -1,25 +0,0 @@ -Add option to plt.streamplot to not break streamlines ------------------------------------------------------ - -It is now possible to specify that streamplots have continuous, unbroken -streamlines. Previously streamlines would end to limit the number of lines -within a single grid cell. See the difference between the plots below: - -.. plot:: - - import matplotlib.pyplot as plt - import numpy as np - - w = 3 - Y, X = np.mgrid[-w:w:100j, -w:w:100j] - U = -1 - X**2 + Y - V = 1 + X - Y**2 - speed = np.sqrt(U**2 + V**2) - - fig, (ax0, ax1) = plt.subplots(1, 2, sharex=True) - - ax0.streamplot(X, Y, U, V, broken_streamlines=True) - ax0.set_title('broken_streamlines=True') - - ax1.streamplot(X, Y, U, V, broken_streamlines=False) - ax1.set_title('broken_streamlines=False') diff --git a/doc/users/next_whats_new/plt_xyticks_support_minor.rst b/doc/users/next_whats_new/plt_xyticks_support_minor.rst deleted file mode 100644 index fef2ce764113..000000000000 --- a/doc/users/next_whats_new/plt_xyticks_support_minor.rst +++ /dev/null @@ -1,15 +0,0 @@ -``plt.xticks`` and ``plt.yticks`` support *minor* keyword argument ------------------------------------------------------------------- - -It is now possible to set or get minor ticks using `.pyplot.xticks` and -`.pyplot.yticks` by setting ``minor=True``. - -.. plot:: - :include-source: true - - import matplotlib.pyplot as plt - plt.figure() - plt.plot([1, 2, 3, 3.5], [2, 1, 0, -0.5]) - plt.xticks([1, 2, 3], ["One", "Zwei", "Trois"]) - plt.xticks([1.414, 2.5, 3.142], - [r"$\sqrt{2}$", r"$\frac{5}{2}$", r"$\pi$"], minor=True) diff --git a/doc/users/next_whats_new/polygon_selector_box.rst b/doc/users/next_whats_new/polygon_selector_box.rst deleted file mode 100644 index 10116e6c75fb..000000000000 --- a/doc/users/next_whats_new/polygon_selector_box.rst +++ /dev/null @@ -1,6 +0,0 @@ -PolygonSelector bounding boxes ------------------------------- -`~matplotlib.widgets.PolygonSelector` now has a *draw_bounding_box* argument, which -when set to `True` will draw a bounding box around the polygon once it is -complete. The bounding box can be resized and moved, allowing the points of -the polygon to be easily resized. diff --git a/doc/users/next_whats_new/polygon_vert_setter.rst b/doc/users/next_whats_new/polygon_vert_setter.rst deleted file mode 100644 index 37dc442e79ea..000000000000 --- a/doc/users/next_whats_new/polygon_vert_setter.rst +++ /dev/null @@ -1,6 +0,0 @@ -Setting PolygonSelector vertices --------------------------------- -The vertices of `~matplotlib.widgets.PolygonSelector` can now be set -programmatically by using the `~matplotlib.widgets.PolygonSelector.verts` -property. Setting the vertices this way will reset the selector, and create -a new complete selector with the supplied vertices. diff --git a/doc/users/next_whats_new/rectangle_patch_rotation.rst b/doc/users/next_whats_new/rectangle_patch_rotation.rst deleted file mode 100644 index ba3c1b336604..000000000000 --- a/doc/users/next_whats_new/rectangle_patch_rotation.rst +++ /dev/null @@ -1,5 +0,0 @@ -Rectangle patch rotation point ------------------------------- - -The rotation point of the `~matplotlib.patches.Rectangle` can now be set to 'xy', -'center' or a 2-tuple of numbers. diff --git a/doc/users/next_whats_new/rename_ncol_keyword_in_legend.rst b/doc/users/next_whats_new/rename_ncol_keyword_in_legend.rst deleted file mode 100644 index 54db966bf8a9..000000000000 --- a/doc/users/next_whats_new/rename_ncol_keyword_in_legend.rst +++ /dev/null @@ -1,7 +0,0 @@ -``ncol`` keyword argument to ``legend`` renamed to ``ncols`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The ``ncol`` keyword argument to `~.Axes.legend` for controlling the number of -columns is renamed to ``ncols`` for consistency with the ``ncols`` and -``nrows`` keywords of `~.Figure.subplots` and `~.GridSpec`. -``ncol`` is still supported though. diff --git a/doc/users/next_whats_new/resample_colormaps.rst b/doc/users/next_whats_new/resample_colormaps.rst deleted file mode 100644 index f2fbe4da4d83..000000000000 --- a/doc/users/next_whats_new/resample_colormaps.rst +++ /dev/null @@ -1,13 +0,0 @@ -Colormap method for creating a different lookup table size ----------------------------------------------------------- -The new method `.Colormap.resampled` creates a new `.Colormap` instance -with the specified lookup table size. This is a replacement for manipulating -the lookup table size via ``get_cmap``. - -Use:: - - get_cmap(name).resampled(N) - -instead of:: - - get_cmap(name, lut=N) diff --git a/doc/users/next_whats_new/selector_improvement.rst b/doc/users/next_whats_new/selector_improvement.rst deleted file mode 100644 index f19282335705..000000000000 --- a/doc/users/next_whats_new/selector_improvement.rst +++ /dev/null @@ -1,40 +0,0 @@ -Selectors improvement: rotation, aspect ratio correction and add/remove state ------------------------------------------------------------------------------ - -The `~matplotlib.widgets.RectangleSelector` and -`~matplotlib.widgets.EllipseSelector` can now be rotated interactively between --45° and 45°. The range limits are currently dictated by the implementation. -The rotation is enabled or disabled by striking the *r* key -('r' is the default key mapped to 'rotate' in *state_modifier_keys*) or by calling -``selector.add_state('rotate')``. - -The aspect ratio of the axes can now be taken into account when using the -"square" state. This is enabled by specifying ``use_data_coordinates='True'`` when -the selector is initialized. - -In addition to changing selector state interactively using the modifier keys -defined in *state_modifier_keys*, the selector state can now be changed -programmatically using the *add_state* and *remove_state* methods. - - -.. code-block:: python - - import matplotlib.pyplot as plt - from matplotlib.widgets import RectangleSelector - import numpy as np - - values = np.arange(0, 100) - - fig = plt.figure() - ax = fig.add_subplot() - ax.plot(values, values) - - selector = RectangleSelector(ax, print, interactive=True, - drag_from_anywhere=True, - use_data_coordinates=True) - selector.add_state('rotate') # alternatively press 'r' key - # rotate the selector interactively - - selector.remove_state('rotate') # alternatively press 'r' key - - selector.add_state('square') diff --git a/doc/users/next_whats_new/snap_selector.rst b/doc/users/next_whats_new/snap_selector.rst deleted file mode 100644 index 9ff0ccd87e0c..000000000000 --- a/doc/users/next_whats_new/snap_selector.rst +++ /dev/null @@ -1,4 +0,0 @@ -SpanSelector widget can now be snapped to specified values -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The SpanSelector widget can now be snapped to values specified by the *snap_values* -argument. diff --git a/doc/users/next_whats_new/striped_lines.rst b/doc/users/next_whats_new/striped_lines.rst deleted file mode 100644 index dff1205a5db1..000000000000 --- a/doc/users/next_whats_new/striped_lines.rst +++ /dev/null @@ -1,19 +0,0 @@ -Striped lines (experimental) ----------------------------- - -New *gapcolor* parameter enables the creation of striped lines. - -.. plot:: - :include-source: true - - import matplotlib.pyplot as plt - import numpy as np - - x = np.linspace(1., 3., 10) - y = x**3 - - fig, ax = plt.subplots() - ax.plot(x, y, linestyle='--', color='orange', gapcolor='blue', - linewidth=3, label='a striped line') - ax.legend() - plt.show() diff --git a/doc/users/next_whats_new/strnorm.rst b/doc/users/next_whats_new/strnorm.rst deleted file mode 100644 index 42be191f2d55..000000000000 --- a/doc/users/next_whats_new/strnorm.rst +++ /dev/null @@ -1,6 +0,0 @@ -Setting norms with strings -~~~~~~~~~~~~~~~~~~~~~~~~~~ -Norms can now be set (e.g. on images) using the string name of the -corresponding scale, e.g. ``imshow(array, norm="log")``. Note that in that -case, it is permissible to also pass *vmin* and *vmax*, as a new Norm instance -will be created under the hood. diff --git a/doc/users/next_whats_new/url_active_areas_rotate.rst b/doc/users/next_whats_new/url_active_areas_rotate.rst deleted file mode 100644 index 6c6d29be86fa..000000000000 --- a/doc/users/next_whats_new/url_active_areas_rotate.rst +++ /dev/null @@ -1,5 +0,0 @@ -The active URL area rotates when link text is rotated -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When link text is rotated in a matplotlib figure, the active URL -area will now include the link area. Previously, the active area -remained in the original, non-rotated, position. diff --git a/doc/users/next_whats_new/use_contourpy.rst b/doc/users/next_whats_new/use_contourpy.rst deleted file mode 100644 index 31be55804d1a..000000000000 --- a/doc/users/next_whats_new/use_contourpy.rst +++ /dev/null @@ -1,27 +0,0 @@ -New external dependency ContourPy used for quad contour calculations --------------------------------------------------------------------- - -Previously Matplotlib shipped its own C++ code for calculating the contours of -quad grids. Now the external library -`ContourPy `_ is used instead. There -is a choice of four algorithms to use, controlled by the *algorithm* keyword -argument to the functions `~matplotlib.axes.Axes.contour` and -`~matplotlib.axes.Axes.contourf`. The default behaviour is to use -``algorithm='mpl2014'`` which is the same algorithm that Matplotlib has been -using since 2014. - -See the `ContourPy documentation `_ for -further details of the different algorithms. - -.. note:: - - Contour lines and polygons produced by ``algorithm='mpl2014'`` will be the - same as those produced before this change to within floating-point - tolerance. The exception is for duplicate points, i.e. contours containing - adjacent (x, y) points that are identical; previously the duplicate points - were removed, now they are kept. Contours affected by this will produce the - same visual output, but there will be a greater number of points in the - contours. - - The locations of contour labels obtained by using - `~matplotlib.axes.Axes.clabel` may also be different. diff --git a/doc/users/next_whats_new/width_height_ratios.rst b/doc/users/next_whats_new/width_height_ratios.rst deleted file mode 100644 index 017c34a55cc4..000000000000 --- a/doc/users/next_whats_new/width_height_ratios.rst +++ /dev/null @@ -1,7 +0,0 @@ -``subplots``, ``subplot_mosaic`` accept *height_ratios* and *width_ratios* arguments ------------------------------------------------------------------------------------- - -The relative width and height of columns and rows in `~.Figure.subplots` and -`~.Figure.subplot_mosaic` can be controlled by passing *height_ratios* and -*width_ratios* keyword arguments to the methods. Previously, this required -passing the ratios in *gridspec_kws* arguments. diff --git a/doc/users/next_whats_new/windows_arm64.rst b/doc/users/next_whats_new/windows_arm64.rst deleted file mode 100644 index b649872ff2e5..000000000000 --- a/doc/users/next_whats_new/windows_arm64.rst +++ /dev/null @@ -1,8 +0,0 @@ -Windows on Arm support ----------------------- - -Preliminary support for windows on arm64 target added. - -Matplotlib for windows/arm64 requires FreeType 2.11 or above. - -No binary wheels are available yet but can be built from source. diff --git a/doc/users/prev_whats_new/github_stats_3.5.3.rst b/doc/users/prev_whats_new/github_stats_3.5.3.rst new file mode 100644 index 000000000000..bafd6d5c27eb --- /dev/null +++ b/doc/users/prev_whats_new/github_stats_3.5.3.rst @@ -0,0 +1,127 @@ +.. _github-stats-3-5-3: + +GitHub statistics for 3.5.3 (Aug 10, 2022) +========================================== + +GitHub statistics for 2022/05/03 (tag: v3.5.2) - 2022/08/10 + +These lists are automatically generated, and may be incomplete or contain duplicates. + +We closed 19 issues and merged 66 pull requests. +The full list can be seen `on GitHub `__ + +The following 20 authors contributed 99 commits. + +* Antony Lee +* Biswapriyo Nath +* David Gilbertson +* DWesl +* Elliott Sales de Andrade +* GavinZhang +* Greg Lucas +* Jody Klymak +* Kayran Schmidt +* Matthew Feickert +* Nickolaos Giannatos +* Oscar Gustafsson +* Ruth Comer +* SaumyaBhushan +* Scott Jones +* Scott Shambaugh +* tfpf +* Thomas A Caswell +* Tim Hoffmann +* wsykala + +GitHub issues and pull requests: + +Pull Requests (66): + +* :ghpull:`23591`: Backport PR #23549 on branch v3.5.x (Don't clip colorbar dividers) +* :ghpull:`23593`: STY: Fix whitespace error from new flake8 +* :ghpull:`23549`: Don't clip colorbar dividers +* :ghpull:`23528`: Backport PR #23523 on branch v3.5.x (TST: Update Quantity test class) +* :ghpull:`23523`: TST: Update Quantity test class +* :ghpull:`23508`: Add explicit registration of units in examples +* :ghpull:`23515`: Backport PR #23462: Fix AttributeError for pickle load of Figure class +* :ghpull:`23518`: Backport PR #23514 on branch v3.5.x (Fix doc build) +* :ghpull:`23517`: Backport PR #23511 on branch v3.5.x (supporting IBM i OS) +* :ghpull:`23511`: supporting IBM i OS +* :ghpull:`23462`: Fix AttributeError for pickle load of Figure class +* :ghpull:`23488`: Backport PR #23066 on branch v3.5.x (BLD: Define PyErr_SetFromWindowsErr on Cygwin.) +* :ghpull:`23066`: BLD: Define PyErr_SetFromWindowsErr on Cygwin. +* :ghpull:`23479`: Pin setuptools_scm on v3.5.x +* :ghpull:`22998`: Backport PR #22987 on branch v3.5.x (CI: bump test limit from tkagg on osx) +* :ghpull:`23478`: Backport PR #23476: FIX: reset to original DPI in getstate +* :ghpull:`23476`: FIX: reset to original DPI in getstate +* :ghpull:`23458`: Backport PR #23445 on branch v3.5.x (Compare thread native ids when checking whether running on main thread.) +* :ghpull:`23440`: Backport PR #23430 on branch v3.5.x (Fix divide by 0 runtime warning) +* :ghpull:`23430`: Fix divide by 0 runtime warning +* :ghpull:`23344`: Backport PR #23333: Fix errorbar handling of nan. +* :ghpull:`23333`: Fix errorbar handling of nan. +* :ghpull:`23338`: Backport PR #23278: Remove internal use of get/set dpi +* :ghpull:`23331`: Backport PR #22835 on branch v3.5.x (Fix BoundaryNorm cursor data output) +* :ghpull:`22835`: Fix BoundaryNorm cursor data output +* :ghpull:`23292`: Backport PR #23232 on branch v3.5.x (Fix passing stem markerfmt positionally when locs are not given) +* :ghpull:`23275`: Backport PR #23260 on branch v3.5.x (Fix Colorbar extend patches to have correct alpha) +* :ghpull:`23312`: Pin to an older pydata-sphinx-theme for v3.5.x +* :ghpull:`23278`: Remove internal use of get/set dpi +* :ghpull:`23232`: Fix passing stem markerfmt positionally when locs are not given +* :ghpull:`22865`: Fix issue with colorbar extend and drawedges +* :ghpull:`23260`: Fix Colorbar extend patches to have correct alpha +* :ghpull:`23245`: Backport PR #23144 on branch v3.5.x (Only import setuptools_scm when we are in a matplotlib git repo) +* :ghpull:`23144`: Only import setuptools_scm when we are in a matplotlib git repo +* :ghpull:`23242`: Backport PR #23203 on branch v3.5.x (Honour ``panchor`` keyword for colorbar on subplot) +* :ghpull:`23203`: Honour ``panchor`` keyword for colorbar on subplot +* :ghpull:`23228`: Backport PR #23209 on branch v3.5.x (Fix the vertical alignment of overunder symbols.) +* :ghpull:`23209`: Fix the vertical alignment of overunder symbols. +* :ghpull:`23184`: Backport PR #23174: Make sure SubFigure has _cachedRenderer +* :ghpull:`23194`: Backport PR #23095: Try to unbreak CI by xfailing OSX Tk tests +* :ghpull:`23113`: Backport PR #23057 and #23106 +* :ghpull:`23185`: Backport PR #23168 on branch v3.5.x (Corrected docstring for artist.Artist.set_agg_filter) +* :ghpull:`23168`: Corrected docstring for artist.Artist.set_agg_filter +* :ghpull:`23174`: Make sure SubFigure has _cachedRenderer +* :ghpull:`23110`: Tweak subprocess_run_helper. +* :ghpull:`23138`: Backport PR #23137 on branch v3.5.x (DOC fix typo) +* :ghpull:`23137`: DOC fix typo +* :ghpull:`23125`: Backport PR #23122 on branch v3.5.x (Remove redundant rcparam default) +* :ghpull:`23120`: Backport PR #23115 on branch v3.5.x (DOC fixed duplicate/wrong default) +* :ghpull:`23095`: Try to unbreak CI by xfailing OSX Tk tests +* :ghpull:`23106`: Reuse subprocess_run_helper in test_pylab_integration. +* :ghpull:`23112`: Backport PR #23111 on branch v3.5.x (Fix _g_sig_digits for value<0 and delta=0.) +* :ghpull:`23111`: Fix _g_sig_digits for value<0 and delta=0. +* :ghpull:`23057`: FIX: ensure switching the backend installs repl hook +* :ghpull:`23075`: Backport PR #23069 on branch v3.5.x (TST: forgive more failures on pyside2 / pyside6 cross imports) +* :ghpull:`23069`: TST: forgive more failures on pyside2 / pyside6 cross imports +* :ghpull:`22981`: Backport PR #22979 on branch v3.5.x (Skip additional backend tests on import error) +* :ghpull:`23064`: Backport PR #22975 on branch v3.5.x (MNT: fix __array__ to numpy) +* :ghpull:`22975`: MNT: fix __array__ to numpy +* :ghpull:`23058`: Backport PR #23051 on branch v3.5.x (Fix variable initialization due to jump bypassing it) +* :ghpull:`23051`: Fix variable initialization due to jump bypassing it +* :ghpull:`23010`: Backport PR #23000 on branch v3.5.x (Additional details on VS install on installation page) +* :ghpull:`22995`: Backport PR #22994 on branch v3.5.x (Docs: ignore >>> on code prompts on documentation prompts) +* :ghpull:`23001`: CI: Add trivial pre-commit.ci config to avoid CI failure +* :ghpull:`22987`: CI: bump test limit from tkagg on osx +* :ghpull:`22979`: Skip additional backend tests on import error + +Issues (19): + +* :ghissue:`22864`: [Bug]: Colorbar with drawedges=True and extend='both' does not draw edges at extremities +* :ghissue:`23382`: [TST] Upcoming dependency test failures +* :ghissue:`23470`: [Bug]: fig.canvas.mpl_connect in 3.5.2 not registering events in jupyter lab unless using widget pan or zoom controls +* :ghissue:`22997`: [Bug]: Cygwin build fails due to use of Windows-only functions in _tkagg.cpp +* :ghissue:`23471`: [Bug]: DPI of a figure is doubled after unpickling on M1 Mac +* :ghissue:`23050`: [Doc]: Docstring for artist.Artist.set_agg_filter is incorrect +* :ghissue:`23307`: [Bug]: PEX warns about missing ``setuptools`` from ``install_requires`` in matplotlib +* :ghissue:`23330`: [Bug]: Missing values cause exception in errorbar plot +* :ghissue:`21915`: [Bug]: scalar mappable format_cursor_data crashes on BoundarNorm +* :ghissue:`22970`: [Bug]: Colorbar extend patches do not have correct alpha +* :ghissue:`23114`: [Bug]: matplotlib __init__.py checks for .git folder 2 levels up, then errors due to setup tools_scm +* :ghissue:`23157`: [Bug]: colorbar ignores keyword panchor=False +* :ghissue:`23229`: [Bug]: matplotlib==3.5.2 breaks ipywidgets +* :ghissue:`18085`: vertical alignment of \sum depends on the presence of subscripts and superscripts +* :ghissue:`23173`: [Bug]: Crash when adding clabels to subfigures +* :ghissue:`23108`: [Bug]: Imshow with all negative values leads to math domain errors. +* :ghissue:`23042`: [Bug]: Figures fail to redraw with IPython +* :ghissue:`23004`: [Bug]: test failure of test_cross_Qt_imports in 3.5.2 +* :ghissue:`22973`: [Bug]: v3.5.2 causing plot to crash when plotting object with ``__array__`` method diff --git a/doc/users/prev_whats_new/whats_new_3.6.0.rst b/doc/users/prev_whats_new/whats_new_3.6.0.rst new file mode 100644 index 000000000000..b7bb958d67ad --- /dev/null +++ b/doc/users/prev_whats_new/whats_new_3.6.0.rst @@ -0,0 +1,872 @@ +============================================= +What's new in Matplotlib 3.6.0 (Sep 15, 2022) +============================================= + +For a list of all of the issues and pull requests since the last revision, see +the :ref:`github-stats`. + +.. contents:: Table of Contents + :depth: 4 + +.. toctree:: + :maxdepth: 4 + +Figure and Axes creation / management +===================================== + +``subplots``, ``subplot_mosaic`` accept *height_ratios* and *width_ratios* arguments +------------------------------------------------------------------------------------ + +The relative width and height of columns and rows in `~.Figure.subplots` and +`~.Figure.subplot_mosaic` can be controlled by passing *height_ratios* and +*width_ratios* keyword arguments to the methods: + +.. plot:: + :include-source: true + + fig = plt.figure() + axs = fig.subplots(3, 1, sharex=True, height_ratios=[3, 1, 1]) + +Previously, this required passing the ratios in *gridspec_kw* arguments:: + + fig = plt.figure() + axs = fig.subplots(3, 1, sharex=True, + gridspec_kw=dict(height_ratios=[3, 1, 1])) + +Constrained layout is no longer considered experimental +------------------------------------------------------- + +The constrained layout engine and API is no longer considered experimental. +Arbitrary changes to behaviour and API are no longer permitted without a +deprecation period. + +New ``layout_engine`` module +---------------------------- + +Matplotlib ships with ``tight_layout`` and ``constrained_layout`` layout +engines. A new `.layout_engine` module is provided to allow downstream +libraries to write their own layout engines and `~.figure.Figure` objects can +now take a `.LayoutEngine` subclass as an argument to the *layout* parameter. + +Compressed layout for fixed-aspect ratio Axes +--------------------------------------------- + +Simple arrangements of Axes with fixed aspect ratios can now be packed together +with ``fig, axs = plt.subplots(2, 3, layout='compressed')``. + +With ``layout='tight'`` or ``'constrained'``, Axes with a fixed aspect ratio +can leave large gaps between each other: + +.. plot:: + + fig, axs = plt.subplots(2, 2, figsize=(5, 3), + sharex=True, sharey=True, layout="constrained") + for ax in axs.flat: + ax.imshow([[0, 1], [2, 3]]) + fig.suptitle("fixed-aspect plots, layout='constrained'") + +Using the ``layout='compressed'`` layout reduces the space between the Axes, +and adds the extra space to the outer margins: + +.. plot:: + + fig, axs = plt.subplots(2, 2, figsize=(5, 3), + sharex=True, sharey=True, layout='compressed') + for ax in axs.flat: + ax.imshow([[0, 1], [2, 3]]) + fig.suptitle("fixed-aspect plots, layout='compressed'") + +See :ref:`compressed_layout` for further details. + +Layout engines may now be removed +--------------------------------- + +The layout engine on a Figure may now be removed by calling +`.Figure.set_layout_engine` with ``'none'``. This may be useful after computing +layout in order to reduce computations, e.g., for subsequent animation loops. + +A different layout engine may be set afterwards, so long as it is compatible +with the previous layout engine. + +``Axes.inset_axes`` flexibility +------------------------------- + +`matplotlib.axes.Axes.inset_axes` now accepts the *projection*, *polar* and +*axes_class* keyword arguments, so that subclasses of `matplotlib.axes.Axes` +may be returned. + +.. plot:: + :include-source: true + + fig, ax = plt.subplots() + + ax.plot([0, 2], [1, 2]) + + polar_ax = ax.inset_axes([0.75, 0.25, 0.2, 0.2], projection='polar') + polar_ax.plot([0, 2], [1, 2]) + +WebP is now a supported output format +------------------------------------- + +Figures may now be saved in WebP format by using the ``.webp`` file extension, +or passing ``format='webp'`` to `~.Figure.savefig`. This relies on `Pillow +`_ support for WebP. + +Garbage collection is no longer run on figure close +--------------------------------------------------- + +Matplotlib has a large number of circular references (between Figure and +Manager, between Axes and Figure, Axes and Artist, Figure and Canvas, etc.) so +when the user drops their last reference to a Figure (and clears it from +pyplot's state), the objects will not immediately be deleted. + +To account for this we have long (since before 2004) had a `gc.collect` (of the +lowest two generations only) in the closing code in order to promptly clean up +after ourselves. However this is both not doing what we want (as most of our +objects will actually survive) and due to clearing out the first generation +opened us up to having unbounded memory usage. + +In cases with a very tight loop between creating the figure and destroying it +(e.g. ``plt.figure(); plt.close()``) the first generation will never grow large +enough for Python to consider running the collection on the higher generations. +This will lead to unbounded memory usage as the long-lived objects are never +re-considered to look for reference cycles and hence are never deleted. + +We now no longer do any garbage collection when a figure is closed, and rely on +Python automatically deciding to run garbage collection periodically. If you +have strict memory requirements, you can call `gc.collect` yourself but this +may have performance impacts in a tight computation loop. + +Plotting methods +================ + +Striped lines (experimental) +---------------------------- + +The new *gapcolor* parameter to `~.Axes.plot` enables the creation of striped +lines. + +.. plot:: + :include-source: true + + x = np.linspace(1., 3., 10) + y = x**3 + + fig, ax = plt.subplots() + ax.plot(x, y, linestyle='--', color='orange', gapcolor='blue', + linewidth=3, label='a striped line') + ax.legend() + +Custom cap widths in box and whisker plots in ``bxp`` and ``boxplot`` +--------------------------------------------------------------------- + +The new *capwidths* parameter to `~.Axes.bxp` and `~.Axes.boxplot` allows +controlling the widths of the caps in box and whisker plots. + +.. plot:: + :include-source: true + + x = np.linspace(-7, 7, 140) + x = np.hstack([-25, x, 25]) + capwidths = [0.01, 0.2] + + fig, ax = plt.subplots() + ax.boxplot([x, x], notch=True, capwidths=capwidths) + ax.set_title(f'{capwidths=}') + +Easier labelling of bars in bar plot +------------------------------------ + +The *label* argument of `~.Axes.bar` and `~.Axes.barh` can now be passed a list +of labels for the bars. The list must be the same length as *x* and labels the +individual bars. Repeated labels are not de-duplicated and will cause repeated +label entries, so this is best used when bars also differ in style (e.g., by +passing a list to *color*, as below.) + +.. plot:: + :include-source: true + + x = ["a", "b", "c"] + y = [10, 20, 15] + color = ['C0', 'C1', 'C2'] + + fig, ax = plt.subplots() + ax.bar(x, y, color=color, label=x) + ax.legend() + +New style format string for colorbar ticks +------------------------------------------ + +The *format* argument of `~.Figure.colorbar` (and other colorbar methods) now +accepts ``{}``-style format strings. + +.. code-block:: python + + fig, ax = plt.subplots() + im = ax.imshow(z) + fig.colorbar(im, format='{x:.2e}') # Instead of '%.2e' + +Linestyles for negative contours may be set individually +-------------------------------------------------------- + +The line style of negative contours may be set by passing the +*negative_linestyles* argument to `.Axes.contour`. Previously, this style could +only be set globally via :rc:`contour.negative_linestyles`. + +.. plot:: + :include-source: true + + delta = 0.025 + x = np.arange(-3.0, 3.0, delta) + y = np.arange(-2.0, 2.0, delta) + X, Y = np.meshgrid(x, y) + Z1 = np.exp(-X**2 - Y**2) + Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2) + Z = (Z1 - Z2) * 2 + + fig, axs = plt.subplots(1, 2) + + CS = axs[0].contour(X, Y, Z, 6, colors='k') + axs[0].clabel(CS, fontsize=9, inline=True) + axs[0].set_title('Default negative contours') + + CS = axs[1].contour(X, Y, Z, 6, colors='k', negative_linestyles='dotted') + axs[1].clabel(CS, fontsize=9, inline=True) + axs[1].set_title('Dotted negative contours') + +Improved quad contour calculations via ContourPy +------------------------------------------------ + +The contouring functions `~.axes.Axes.contour` and `~.axes.Axes.contourf` have +a new keyword argument *algorithm* to control which algorithm is used to +calculate the contours. There is a choice of four algorithms to use, and the +default is to use ``algorithm='mpl2014'`` which is the same algorithm that +Matplotlib has been using since 2014. + +Previously Matplotlib shipped its own C++ code for calculating the contours of +quad grids. Now the external library `ContourPy +`_ is used instead. + +Other possible values of the *algorithm* keyword argument at this time are +``'mpl2005'``, ``'serial'`` and ``'threaded'``; see the `ContourPy +documentation `_ for further details. + +.. note:: + + Contour lines and polygons produced by ``algorithm='mpl2014'`` will be the + same as those produced before this change to within floating-point + tolerance. The exception is for duplicate points, i.e. contours containing + adjacent (x, y) points that are identical; previously the duplicate points + were removed, now they are kept. Contours affected by this will produce the + same visual output, but there will be a greater number of points in the + contours. + + The locations of contour labels obtained by using `~.axes.Axes.clabel` may + also be different. + +``errorbar`` supports *markerfacecoloralt* +------------------------------------------ + +The *markerfacecoloralt* parameter is now passed to the line plotter from +`.Axes.errorbar`. The documentation now accurately lists which properties are +passed to `.Line2D`, rather than claiming that all keyword arguments are passed +on. + +.. plot:: + :include-source: true + + x = np.arange(0.1, 4, 0.5) + y = np.exp(-x) + + fig, ax = plt.subplots() + ax.errorbar(x, y, xerr=0.2, yerr=0.4, + linestyle=':', color='darkgrey', + marker='o', markersize=20, fillstyle='left', + markerfacecolor='tab:blue', markerfacecoloralt='tab:orange', + markeredgecolor='tab:brown', markeredgewidth=2) + +``streamplot`` can disable streamline breaks +-------------------------------------------- + +It is now possible to specify that streamplots have continuous, unbroken +streamlines. Previously streamlines would end to limit the number of lines +within a single grid cell. See the difference between the plots below: + +.. plot:: + + w = 3 + Y, X = np.mgrid[-w:w:100j, -w:w:100j] + U = -1 - X**2 + Y + V = 1 + X - Y**2 + speed = np.sqrt(U**2 + V**2) + + fig, (ax0, ax1) = plt.subplots(1, 2, sharex=True) + + ax0.streamplot(X, Y, U, V, broken_streamlines=True) + ax0.set_title('broken_streamlines=True') + + ax1.streamplot(X, Y, U, V, broken_streamlines=False) + ax1.set_title('broken_streamlines=False') + +New axis scale ``asinh`` (experimental) +--------------------------------------- + +The new ``asinh`` axis scale offers an alternative to ``symlog`` that smoothly +transitions between the quasi-linear and asymptotically logarithmic regions of +the scale. This is based on an arcsinh transformation that allows plotting both +positive and negative values that span many orders of magnitude. + +.. plot:: + + fig, (ax0, ax1) = plt.subplots(1, 2, sharex=True) + x = np.linspace(-3, 6, 100) + + ax0.plot(x, x) + ax0.set_yscale('symlog') + ax0.grid() + ax0.set_title('symlog') + + ax1.plot(x, x) + ax1.set_yscale('asinh') + ax1.grid() + ax1.set_title(r'$sinh^{-1}$') + + for p in (-2, 2): + for ax in (ax0, ax1): + c = plt.Circle((p, p), radius=0.5, fill=False, + color='red', alpha=0.8, lw=3) + ax.add_patch(c) + +``stairs(..., fill=True)`` hides patch edge by setting linewidth +---------------------------------------------------------------- + +``stairs(..., fill=True)`` would previously hide Patch edges by setting +``edgecolor="none"``. Consequently, calling ``set_color()`` on the Patch later +would make the Patch appear larger. + +Now, by using ``linewidth=0``, this apparent size change is prevented. Likewise +calling ``stairs(..., fill=True, linewidth=3)`` will behave more transparently. + +Fix the dash offset of the Patch class +-------------------------------------- + +Formerly, when setting the line style on a `.Patch` object using a dash tuple, +the offset was ignored. Now the offset is applied to the Patch as expected and +it can be used as it is used with `.Line2D` objects. + +Rectangle patch rotation point +------------------------------ + +The rotation point of the `~matplotlib.patches.Rectangle` can now be set to +'xy', 'center' or a 2-tuple of numbers using the *rotation_point* argument. + +.. plot:: + + fig, ax = plt.subplots() + + rect = plt.Rectangle((0, 0), 1, 1, facecolor='none', edgecolor='C0') + ax.add_patch(rect) + ax.annotate('Unrotated', (1, 0), color='C0', + horizontalalignment='right', verticalalignment='top', + xytext=(0, -3), textcoords='offset points') + + for rotation_point, color in zip(['xy', 'center', (0.75, 0.25)], + ['C1', 'C2', 'C3']): + ax.add_patch( + plt.Rectangle((0, 0), 1, 1, facecolor='none', edgecolor=color, + angle=45, rotation_point=rotation_point)) + + if rotation_point == 'center': + point = 0.5, 0.5 + elif rotation_point == 'xy': + point = 0, 0 + else: + point = rotation_point + ax.plot(point[:1], point[1:], color=color, marker='o') + + label = f'{rotation_point}' + if label == 'xy': + label += ' (default)' + ax.annotate(label, point, color=color, + xytext=(3, 3), textcoords='offset points') + + ax.set_aspect(1) + ax.set_title('rotation_point options') + +Colors and colormaps +==================== + +Color sequence registry +----------------------- + +The color sequence registry, `.ColorSequenceRegistry`, contains sequences +(i.e., simple lists) of colors that are known to Matplotlib by name. This will +not normally be used directly, but through the universal instance at +`matplotlib.color_sequences`. + +Colormap method for creating a different lookup table size +---------------------------------------------------------- + +The new method `.Colormap.resampled` creates a new `.Colormap` instance +with the specified lookup table size. This is a replacement for manipulating +the lookup table size via ``get_cmap``. + +Use:: + + get_cmap(name).resampled(N) + +instead of:: + + get_cmap(name, lut=N) + +Setting norms with strings +-------------------------- + +Norms can now be set (e.g. on images) using the string name of the +corresponding scale, e.g. ``imshow(array, norm="log")``. Note that in that +case, it is permissible to also pass *vmin* and *vmax*, as a new Norm instance +will be created under the hood. + +Titles, ticks, and labels +========================= + +``plt.xticks`` and ``plt.yticks`` support *minor* keyword argument +------------------------------------------------------------------ + +It is now possible to set or get minor ticks using `.pyplot.xticks` and +`.pyplot.yticks` by setting ``minor=True``. + +.. plot:: + :include-source: true + + plt.figure() + plt.plot([1, 2, 3, 3.5], [2, 1, 0, -0.5]) + plt.xticks([1, 2, 3], ["One", "Zwei", "Trois"]) + plt.xticks([np.sqrt(2), 2.5, np.pi], + [r"$\sqrt{2}$", r"$\frac{5}{2}$", r"$\pi$"], minor=True) + +Legends +======= + +Legend can control alignment of title and handles +------------------------------------------------- + +`.Legend` now supports controlling the alignment of the title and handles via +the keyword argument *alignment*. You can also use `.Legend.set_alignment` to +control the alignment on existing Legends. + +.. plot:: + :include-source: true + + fig, axs = plt.subplots(3, 1) + for i, alignment in enumerate(['left', 'center', 'right']): + axs[i].plot(range(10), label='test') + axs[i].legend(title=f'{alignment=}', alignment=alignment) + +*ncol* keyword argument to ``legend`` renamed to *ncols* +-------------------------------------------------------- + +The *ncol* keyword argument to `~.Axes.legend` for controlling the number of +columns is renamed to *ncols* for consistency with the *ncols* and *nrows* +keywords of `~.Figure.subplots` and `~.GridSpec`. *ncol* remains supported for +backwards compatibility, but is discouraged. + +Markers +======= + +``marker`` can now be set to the string "none" +---------------------------------------------- + +The string "none" means *no-marker*, consistent with other APIs which support +the lowercase version. Using "none" is recommended over using "None", to avoid +confusion with the None object. + +Customization of ``MarkerStyle`` join and cap style +--------------------------------------------------- + +New `.MarkerStyle` parameters allow control of join style and cap style, and +for the user to supply a transformation to be applied to the marker (e.g. a +rotation). + +.. plot:: + :include-source: true + + from matplotlib.markers import CapStyle, JoinStyle, MarkerStyle + from matplotlib.transforms import Affine2D + + fig, axs = plt.subplots(3, 1, layout='constrained') + for ax in axs: + ax.axis('off') + ax.set_xlim(-0.5, 2.5) + + axs[0].set_title('Cap styles', fontsize=14) + for col, cap in enumerate(CapStyle): + axs[0].plot(col, 0, markersize=32, markeredgewidth=8, + marker=MarkerStyle('1', capstyle=cap)) + # Show the marker edge for comparison with the cap. + axs[0].plot(col, 0, markersize=32, markeredgewidth=1, + markerfacecolor='none', markeredgecolor='lightgrey', + marker=MarkerStyle('1')) + axs[0].annotate(cap.name, (col, 0), + xytext=(20, -5), textcoords='offset points') + + axs[1].set_title('Join styles', fontsize=14) + for col, join in enumerate(JoinStyle): + axs[1].plot(col, 0, markersize=32, markeredgewidth=8, + marker=MarkerStyle('*', joinstyle=join)) + # Show the marker edge for comparison with the join. + axs[1].plot(col, 0, markersize=32, markeredgewidth=1, + markerfacecolor='none', markeredgecolor='lightgrey', + marker=MarkerStyle('*')) + axs[1].annotate(join.name, (col, 0), + xytext=(20, -5), textcoords='offset points') + + axs[2].set_title('Arbitrary transforms', fontsize=14) + for col, (size, rot) in enumerate(zip([2, 5, 7], [0, 45, 90])): + t = Affine2D().rotate_deg(rot).scale(size) + axs[2].plot(col, 0, marker=MarkerStyle('*', transform=t)) + +Fonts and Text +============== + +Font fallback +------------- + +It is now possible to specify a list of fonts families and Matplotlib will try +them in order to locate a required glyph. + +.. plot:: + :caption: Demonstration of mixed English and Chinese text with font fallback. + :alt: The phrase "There are 几个汉字 in between!" rendered in various fonts. + :include-source: True + + plt.rcParams["font.size"] = 20 + fig = plt.figure(figsize=(4.75, 1.85)) + + text = "There are 几个汉字 in between!" + fig.text(0.05, 0.85, text, family=["WenQuanYi Zen Hei"]) + fig.text(0.05, 0.65, text, family=["Noto Sans CJK JP"]) + fig.text(0.05, 0.45, text, family=["DejaVu Sans", "Noto Sans CJK JP"]) + fig.text(0.05, 0.25, text, family=["DejaVu Sans", "WenQuanYi Zen Hei"]) + +This currently works with the Agg (and all of the GUI embeddings), svg, pdf, +ps, and inline backends. + +List of available font names +---------------------------- + +The list of available fonts are now easily accessible. To get a list of the +available font names in Matplotlib use: + +.. code-block:: python + + from matplotlib import font_manager + font_manager.get_font_names() + +``math_to_image`` now has a *color* keyword argument +---------------------------------------------------- + +To easily support external libraries that rely on the MathText rendering of +Matplotlib to generate equation images, a *color* keyword argument was added to +`~matplotlib.mathtext.math_to_image`. + +.. code-block:: python + + from matplotlib import mathtext + mathtext.math_to_image('$x^2$', 'filename.png', color='Maroon') + +Active URL area rotates with link text +-------------------------------------- + +When link text is rotated in a figure, the active URL area will now include the +rotated link area. Previously, the active area remained in the original, +non-rotated, position. + +rcParams improvements +===================== + +Allow setting figure label size and weight globally and separately from title +----------------------------------------------------------------------------- + +For figure labels, ``Figure.supxlabel`` and ``Figure.supylabel``, the size and +weight can be set separately from the figure title using :rc:`figure.labelsize` +and :rc:`figure.labelweight`. + +.. plot:: + :include-source: true + + # Original (previously combined with below) rcParams: + plt.rcParams['figure.titlesize'] = 64 + plt.rcParams['figure.titleweight'] = 'bold' + + # New rcParams: + plt.rcParams['figure.labelsize'] = 32 + plt.rcParams['figure.labelweight'] = 'bold' + + fig, axs = plt.subplots(2, 2, layout='constrained') + for ax in axs.flat: + ax.set(xlabel='xlabel', ylabel='ylabel') + + fig.suptitle('suptitle') + fig.supxlabel('supxlabel') + fig.supylabel('supylabel') + +Note that if you have changed :rc:`figure.titlesize` or +:rc:`figure.titleweight`, you must now also change the introduced parameters +for a result consistent with past behaviour. + +Mathtext parsing can be disabled globally +----------------------------------------- + +The :rc:`text.parse_math` setting may be used to disable parsing of mathtext in +all `.Text` objects (most notably from the `.Axes.text` method). + +Double-quoted strings in matplotlibrc +------------------------------------- + +You can now use double-quotes around strings. This allows using the '#' +character in strings. Without quotes, '#' is interpreted as start of a comment. +In particular, you can now define hex-colors: + +.. code-block:: none + + grid.color: "#b0b0b0" + +3D Axes improvements +==================== + +Standardized views for primary plane viewing angles +--------------------------------------------------- + +When viewing a 3D plot in one of the primary view planes (i.e., perpendicular +to the XY, XZ, or YZ planes), the Axis will be displayed in a standard +location. For further information on 3D views, see +:ref:`toolkit_mplot3d-view-angles` and :doc:`/gallery/mplot3d/view_planes_3d`. + +Custom focal length for 3D camera +--------------------------------- + +The 3D Axes can now better mimic real-world cameras by specifying the focal +length of the virtual camera. The default focal length of 1 corresponds to a +Field of View (FOV) of 90°, and is backwards-compatible with existing 3D plots. +An increased focal length between 1 and infinity "flattens" the image, while a +decreased focal length between 1 and 0 exaggerates the perspective and gives +the image more apparent depth. + +The focal length can be calculated from a desired FOV via the equation: + +.. mathmpl:: + + focal\_length = 1/\tan(FOV/2) + +.. plot:: + :include-source: true + + from mpl_toolkits.mplot3d import axes3d + + X, Y, Z = axes3d.get_test_data(0.05) + + fig, axs = plt.subplots(1, 3, figsize=(7, 4), + subplot_kw={'projection': '3d'}) + + for ax, focal_length in zip(axs, [0.2, 1, np.inf]): + ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) + ax.set_proj_type('persp', focal_length=focal_length) + ax.set_title(f"{focal_length=}") + +3D plots gained a 3rd "roll" viewing angle +------------------------------------------ + +3D plots can now be viewed from any orientation with the addition of a 3rd roll +angle, which rotates the plot about the viewing axis. Interactive rotation +using the mouse still only controls elevation and azimuth, meaning that this +feature is relevant to users who create more complex camera angles +programmatically. The default roll angle of 0 is backwards-compatible with +existing 3D plots. + +.. plot:: + :include-source: true + + from mpl_toolkits.mplot3d import axes3d + + X, Y, Z = axes3d.get_test_data(0.05) + + fig, ax = plt.subplots(subplot_kw={'projection': '3d'}) + + ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10) + ax.view_init(elev=0, azim=0, roll=30) + ax.set_title('elev=0, azim=0, roll=30') + +Equal aspect ratio for 3D plots +------------------------------- + +Users can set the aspect ratio for the X, Y, Z axes of a 3D plot to be 'equal', +'equalxy', 'equalxz', or 'equalyz' rather than the default of 'auto'. + +.. plot:: + :include-source: true + + from itertools import combinations, product + + aspects = [ + ['auto', 'equal', '.'], + ['equalxy', 'equalyz', 'equalxz'], + ] + fig, axs = plt.subplot_mosaic(aspects, figsize=(7, 6), + subplot_kw={'projection': '3d'}) + + # Draw rectangular cuboid with side lengths [1, 1, 5] + r = [0, 1] + scale = np.array([1, 1, 5]) + pts = combinations(np.array(list(product(r, r, r))), 2) + for start, end in pts: + if np.sum(np.abs(start - end)) == r[1] - r[0]: + for ax in axs.values(): + ax.plot3D(*zip(start*scale, end*scale), color='C0') + + # Set the aspect ratios + for aspect, ax in axs.items(): + ax.set_box_aspect((3, 4, 5)) + ax.set_aspect(aspect) + ax.set_title(f'set_aspect({aspect!r})') + +Interactive tool improvements +============================= + +Rotation, aspect ratio correction and add/remove state +------------------------------------------------------ + +The `.RectangleSelector` and `.EllipseSelector` can now be rotated +interactively between -45° and 45°. The range limits are currently dictated by +the implementation. The rotation is enabled or disabled by striking the *r* key +('r' is the default key mapped to 'rotate' in *state_modifier_keys*) or by +calling ``selector.add_state('rotate')``. + +The aspect ratio of the axes can now be taken into account when using the +"square" state. This is enabled by specifying ``use_data_coordinates='True'`` +when the selector is initialized. + +In addition to changing selector state interactively using the modifier keys +defined in *state_modifier_keys*, the selector state can now be changed +programmatically using the *add_state* and *remove_state* methods. + +.. code-block:: python + + from matplotlib.widgets import RectangleSelector + + values = np.arange(0, 100) + + fig = plt.figure() + ax = fig.add_subplot() + ax.plot(values, values) + + selector = RectangleSelector(ax, print, interactive=True, + drag_from_anywhere=True, + use_data_coordinates=True) + selector.add_state('rotate') # alternatively press 'r' key + # rotate the selector interactively + + selector.remove_state('rotate') # alternatively press 'r' key + + selector.add_state('square') + +``MultiCursor`` now supports Axes split over multiple figures +------------------------------------------------------------- + +Previously, `.MultiCursor` only worked if all target Axes belonged to the same +figure. + +As a consequence of this change, the first argument to the `.MultiCursor` +constructor has become unused (it was previously the joint canvas of all Axes, +but the canvases are now directly inferred from the list of Axes). + +``PolygonSelector`` bounding boxes +---------------------------------- + +`.PolygonSelector` now has a *draw_bounding_box* argument, which when set to +`True` will draw a bounding box around the polygon once it is complete. The +bounding box can be resized and moved, allowing the points of the polygon to be +easily resized. + +Setting ``PolygonSelector`` vertices +------------------------------------ + +The vertices of `.PolygonSelector` can now be set programmatically by using the +`.PolygonSelector.verts` property. Setting the vertices this way will reset the +selector, and create a new complete selector with the supplied vertices. + +``SpanSelector`` widget can now be snapped to specified values +-------------------------------------------------------------- + +The `.SpanSelector` widget can now be snapped to values specified by the +*snap_values* argument. + +More toolbar icons are styled for dark themes +--------------------------------------------- + +On the macOS and Tk backends, toolbar icons will now be inverted when using a +dark theme. + +Platform-specific changes +========================= + +Wx backend uses standard toolbar +-------------------------------- + +Instead of a custom sizer, the toolbar is set on Wx windows as a standard +toolbar. + +Improvements to macosx backend +------------------------------ + +Modifier keys handled more consistently +....................................... + +The macosx backend now handles modifier keys in a manner more consistent with +other backends. See the table in :ref:`event-connections` for further +information. + +``savefig.directory`` rcParam support +..................................... + +The macosx backend will now obey the :rc:`savefig.directory` setting. If set to +a non-empty string, then the save dialog will default to this directory, and +preserve subsequent save directories as they are changed. + +``figure.raise_window`` rcParam support +....................................... + +The macosx backend will now obey the :rc:`figure.raise_window` setting. If set +to False, figure windows will not be raised to the top on update. + +Full-screen toggle support +.......................... + +As supported on other backends, the macosx backend now supports toggling +fullscreen view. By default, this view can be toggled by pressing the :kbd:`f` +key. + +Improved animation and blitting support +....................................... + +The macosx backend has been improved to fix blitting, animation frames with new +artists, and to reduce unnecessary draw calls. + +macOS application icon applied on Qt backend +-------------------------------------------- + +When using the Qt-based backends on macOS, the application icon will now be +set, as is done on other backends/platforms. + +New minimum macOS version +------------------------- + +The macosx backend now requires macOS >= 10.12. + +Windows on ARM support +---------------------- + +Preliminary support for Windows on arm64 target has been added. This support +requires FreeType 2.11 or above. + +No binary wheels are available yet but it may be built from source. diff --git a/doc/users/project/citing.rst b/doc/users/project/citing.rst index 572494012792..53c2591ebfbd 100644 --- a/doc/users/project/citing.rst +++ b/doc/users/project/citing.rst @@ -29,6 +29,9 @@ By version .. START OF AUTOGENERATED +v3.6.0 + .. image:: ../../_static/zenodo_cache/7084615.svg + :target: https://doi.org/10.5281/zenodo.7084615 v3.5.3 .. image:: ../../_static/zenodo_cache/6982547.svg :target: https://doi.org/10.5281/zenodo.6982547 diff --git a/doc/users/release_notes.rst b/doc/users/release_notes.rst index 397332186bea..d90756cdf9ee 100644 --- a/doc/users/release_notes.rst +++ b/doc/users/release_notes.rst @@ -9,6 +9,15 @@ Release notes .. include from another document so that it's easy to exclude this for releases .. include:: release_notes_next.rst +Version 3.6 +=========== +.. toctree:: + :maxdepth: 1 + + prev_whats_new/whats_new_3.6.0.rst + ../api/prev_api_changes/api_changes_3.6.0.rst + github_stats.rst + Version 3.5 =========== .. toctree:: @@ -19,7 +28,7 @@ Version 3.5 ../api/prev_api_changes/api_changes_3.5.3.rst ../api/prev_api_changes/api_changes_3.5.2.rst ../api/prev_api_changes/api_changes_3.5.0.rst - github_stats.rst + prev_whats_new/github_stats_3.5.3.rst prev_whats_new/github_stats_3.5.2.rst prev_whats_new/github_stats_3.5.1.rst prev_whats_new/github_stats_3.5.0.rst diff --git a/lib/matplotlib/__init__.py b/lib/matplotlib/__init__.py index fd78e6f94f19..77d25bbe3358 100644 --- a/lib/matplotlib/__init__.py +++ b/lib/matplotlib/__init__.py @@ -720,6 +720,7 @@ def find_all(self, pattern): if pattern_re.search(key)) def copy(self): + """Copy this RcParams instance.""" rccopy = RcParams() for k in self: # Skip deprecations and revalidation. dict.__setitem__(rccopy, k, dict.__getitem__(self, k)) diff --git a/tools/cache_zenodo_svg.py b/tools/cache_zenodo_svg.py index 8f264f468fe9..1a3d0493ed6d 100644 --- a/tools/cache_zenodo_svg.py +++ b/tools/cache_zenodo_svg.py @@ -63,6 +63,7 @@ def _get_xdg_cache_dir(): if __name__ == "__main__": data = { + "v3.6.0": "7084615", "v3.5.3": "6982547", "v3.5.2": "6513224", "v3.5.1": "5773480", pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy