Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2dc6f6b

Browse files
tacaswellmeeseeksmachine
authored andcommitted
Backport PR #29442: DOC: put section headings in 3.10 whats new
1 parent fe4fb2e commit 2dc6f6b

File tree

1 file changed

+130
-93
lines changed

1 file changed

+130
-93
lines changed

doc/users/prev_whats_new/whats_new_3.10.0.rst

Lines changed: 130 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
=============================================
2+
What's new in Matplotlib 3.10.0 (Dec 14, 2024)
3+
=============================================
4+
5+
For a list of all of the issues and pull requests since the last revision, see the
6+
:ref:`github-stats`.
7+
8+
.. contents:: Table of Contents
9+
:depth: 4
10+
11+
.. toctree::
12+
:maxdepth: 4
13+
14+
Accessible Colors
15+
=================
16+
17+
118
New more-accessible color cycle
219
-------------------------------
320

@@ -43,6 +60,12 @@ colour maps version 8.0.1 (DOI: https://doi.org/10.5281/zenodo.1243862).
4360
ax[1].imshow(img, cmap=plt.cm.managua)
4461
ax[2].imshow(img, cmap=plt.cm.vanimo)
4562

63+
64+
65+
Plotting and Annotation improvements
66+
====================================
67+
68+
4669
Specifying a single color in ``contour`` and ``contourf``
4770
---------------------------------------------------------
4871

@@ -65,66 +88,6 @@ may be passed.
6588

6689
plt.show()
6790

68-
Exception handling control
69-
--------------------------
70-
71-
The exception raised when an invalid keyword parameter is passed now includes
72-
that parameter name as the exception's ``name`` property. This provides more
73-
control for exception handling:
74-
75-
76-
.. code-block:: python
77-
78-
import matplotlib.pyplot as plt
79-
80-
def wobbly_plot(args, **kwargs):
81-
w = kwargs.pop('wobble_factor', None)
82-
83-
try:
84-
plt.plot(args, **kwargs)
85-
except AttributeError as e:
86-
raise AttributeError(f'wobbly_plot does not take parameter {e.name}') from e
87-
88-
89-
wobbly_plot([0, 1], wibble_factor=5)
90-
91-
.. code-block::
92-
93-
AttributeError: wobbly_plot does not take parameter wibble_factor
94-
95-
Preliminary support for free-threaded CPython 3.13
96-
--------------------------------------------------
97-
98-
Matplotlib 3.10 has preliminary support for the free-threaded build of CPython 3.13. See
99-
https://py-free-threading.github.io, `PEP 703 <https://peps.python.org/pep-0703/>`_ and
100-
the `CPython 3.13 release notes
101-
<https://docs.python.org/3.13/whatsnew/3.13.html#free-threaded-cpython>`_ for more detail
102-
about free-threaded Python.
103-
104-
Support for free-threaded Python does not mean that Matplotlib is wholly thread safe. We
105-
expect that use of a Figure within a single thread will work, and though input data is
106-
usually copied, modification of data objects used for a plot from another thread may
107-
cause inconsistencies in cases where it is not. Use of any global state (such as the
108-
``pyplot`` module) is highly discouraged and unlikely to work consistently. Also note
109-
that most GUI toolkits expect to run on the main thread, so interactive usage may be
110-
limited or unsupported from other threads.
111-
112-
If you are interested in free-threaded Python, for example because you have a
113-
multiprocessing-based workflow that you are interested in running with Python threads, we
114-
encourage testing and experimentation. If you run into problems that you suspect are
115-
because of Matplotlib, please open an issue, checking first if the bug also occurs in the
116-
“regular” non-free-threaded CPython 3.13 build.
117-
118-
Increased Figure limits with Agg renderer
119-
-----------------------------------------
120-
121-
Figures using the Agg renderer are now limited to 2**23 pixels in each
122-
direction, instead of 2**16. Additionally, bugs that caused artists to not
123-
render past 2**15 pixels horizontally have been fixed.
124-
125-
Note that if you are using a GUI backend, it may have its own smaller limits
126-
(which may themselves depend on screen size.)
127-
12891
Vectorized ``hist`` style parameters
12992
------------------------------------
13093

@@ -259,39 +222,6 @@ Subfigures are now added in row-major order
259222
ax.set_yticks([])
260223
plt.show()
261224

262-
``svg.id`` rcParam
263-
------------------
264-
265-
:rc:`svg.id` lets you insert an ``id`` attribute into the top-level ``<svg>`` tag.
266-
267-
e.g. ``rcParams["svg.id"] = "svg1"`` results in
268-
default), no ``id`` tag is included
269-
270-
.. code-block:: XML
271-
272-
<svg
273-
xmlns:xlink="http://www.w3.org/1999/xlink"
274-
width="50pt" height="50pt"
275-
viewBox="0 0 50 50"
276-
xmlns="http://www.w3.org/2000/svg"
277-
version="1.1"
278-
id="svg1"
279-
></svg>
280-
281-
This is useful if you would like to link the entire matplotlib SVG file within
282-
another SVG file with the ``<use>`` tag.
283-
284-
.. code-block:: XML
285-
286-
<svg>
287-
<use
288-
width="50" height="50"
289-
xlink:href="mpl.svg#svg1" id="use1"
290-
x="0" y="0"
291-
/></svg>
292-
293-
Where the ``#svg1`` indicator will now refer to the top level ``<svg>`` tag, and
294-
will hence result in the inclusion of the entire file.
295225

296226
``boxplot`` and ``bxp`` orientation parameter
297227
---------------------------------------------
@@ -361,6 +291,11 @@ the ``set_data`` method, enabling e.g. resampling
361291
coll.set_data(t, -t**4, t**4)
362292
fig.savefig("after.png")
363293
294+
295+
3D plotting improvements
296+
========================
297+
298+
364299
Fill between 3D lines
365300
---------------------
366301

@@ -471,6 +406,108 @@ view box is a limitation of the current renderer.
471406
ax.legend(['axlim_clip=False (default)', 'axlim_clip=True'])
472407

473408

409+
Preliminary support for free-threaded CPython 3.13
410+
==================================================
411+
412+
Matplotlib 3.10 has preliminary support for the free-threaded build of CPython 3.13. See
413+
https://py-free-threading.github.io, `PEP 703 <https://peps.python.org/pep-0703/>`_ and
414+
the `CPython 3.13 release notes
415+
<https://docs.python.org/3.13/whatsnew/3.13.html#free-threaded-cpython>`_ for more detail
416+
about free-threaded Python.
417+
418+
Support for free-threaded Python does not mean that Matplotlib is wholly thread safe. We
419+
expect that use of a Figure within a single thread will work, and though input data is
420+
usually copied, modification of data objects used for a plot from another thread may
421+
cause inconsistencies in cases where it is not. Use of any global state (such as the
422+
``pyplot`` module) is highly discouraged and unlikely to work consistently. Also note
423+
that most GUI toolkits expect to run on the main thread, so interactive usage may be
424+
limited or unsupported from other threads.
425+
426+
If you are interested in free-threaded Python, for example because you have a
427+
multiprocessing-based workflow that you are interested in running with Python threads, we
428+
encourage testing and experimentation. If you run into problems that you suspect are
429+
because of Matplotlib, please open an issue, checking first if the bug also occurs in the
430+
“regular” non-free-threaded CPython 3.13 build.
431+
432+
433+
434+
Other Improvements
435+
==================
436+
437+
``svg.id`` rcParam
438+
------------------
439+
440+
:rc:`svg.id` lets you insert an ``id`` attribute into the top-level ``<svg>`` tag.
441+
442+
e.g. ``rcParams["svg.id"] = "svg1"`` results in
443+
444+
.. code-block:: XML
445+
446+
<svg
447+
xmlns:xlink="http://www.w3.org/1999/xlink"
448+
width="50pt" height="50pt"
449+
viewBox="0 0 50 50"
450+
xmlns="http://www.w3.org/2000/svg"
451+
version="1.1"
452+
id="svg1"
453+
></svg>
454+
455+
This is useful if you would like to link the entire matplotlib SVG file within
456+
another SVG file with the ``<use>`` tag.
457+
458+
.. code-block:: XML
459+
460+
<svg>
461+
<use
462+
width="50" height="50"
463+
xlink:href="mpl.svg#svg1" id="use1"
464+
x="0" y="0"
465+
/></svg>
466+
467+
Where the ``#svg1`` indicator will now refer to the top level ``<svg>`` tag, and
468+
will hence result in the inclusion of the entire file.
469+
470+
By default, no ``id`` tag is included.
471+
472+
Exception handling control
473+
--------------------------
474+
475+
The exception raised when an invalid keyword parameter is passed now includes
476+
that parameter name as the exception's ``name`` property. This provides more
477+
control for exception handling:
478+
479+
480+
.. code-block:: python
481+
482+
import matplotlib.pyplot as plt
483+
484+
def wobbly_plot(args, **kwargs):
485+
w = kwargs.pop('wobble_factor', None)
486+
487+
try:
488+
plt.plot(args, **kwargs)
489+
except AttributeError as e:
490+
raise AttributeError(f'wobbly_plot does not take parameter {e.name}') from e
491+
492+
493+
wobbly_plot([0, 1], wibble_factor=5)
494+
495+
.. code-block::
496+
497+
AttributeError: wobbly_plot does not take parameter wibble_factor
498+
499+
Increased Figure limits with Agg renderer
500+
-----------------------------------------
501+
502+
Figures using the Agg renderer are now limited to 2**23 pixels in each
503+
direction, instead of 2**16. Additionally, bugs that caused artists to not
504+
render past 2**15 pixels horizontally have been fixed.
505+
506+
Note that if you are using a GUI backend, it may have its own smaller limits
507+
(which may themselves depend on screen size.)
508+
509+
510+
474511
Miscellaneous Changes
475512
---------------------
476513

0 commit comments

Comments
 (0)