diff --git a/doc/_static/zenodo_cache/8118151.svg b/doc/_static/zenodo_cache/8118151.svg
new file mode 100644
index 000000000000..e9d33ec5bf34
--- /dev/null
+++ b/doc/_static/zenodo_cache/8118151.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/doc/api/font_manager_api.rst b/doc/api/font_manager_api.rst
index 3e043112380b..ba1d785ca939 100644
--- a/doc/api/font_manager_api.rst
+++ b/doc/api/font_manager_api.rst
@@ -7,9 +7,9 @@
:undoc-members:
:show-inheritance:
- .. data:: fontManager
+.. data:: fontManager
- The global instance of `FontManager`.
+ The global instance of `FontManager`.
.. autoclass:: FontEntry
:no-undoc-members:
diff --git a/doc/api/style_api.rst b/doc/api/style_api.rst
index 84bbe8b25c84..08d8d5ec1c4d 100644
--- a/doc/api/style_api.rst
+++ b/doc/api/style_api.rst
@@ -20,13 +20,13 @@ the builtin styles.
.. imported variables have to be specified explicitly due to
https://github.com/sphinx-doc/sphinx/issues/6607
-.. data:: matplotlib.style.library
+.. data:: library
- A dict mapping from style name to `.RcParams` defining that style.
+ A dict mapping from style name to `.rcParams` defining that style.
This is meant to be read-only. Use `.reload_library` to update.
-.. data:: matplotlib.style.available
+.. data:: available
List of the names of the available styles.
diff --git a/doc/devel/documenting_mpl.rst b/doc/devel/documenting_mpl.rst
index b814e67cd308..ad9ba885a3f4 100644
--- a/doc/devel/documenting_mpl.rst
+++ b/doc/devel/documenting_mpl.rst
@@ -187,9 +187,24 @@ nor the ````literal```` role:
Referring to other documents and sections
-----------------------------------------
-Sphinx_ allows internal references_ between documents.
+Sphinx_ supports internal references_:
-Documents can be linked with the ``:doc:`` directive:
+========== =============== ===========================================
+Role Links target Representation in rendered HTML
+========== =============== ===========================================
+|doc-dir|_ document link to a page
+|ref-dir|_ reference label link to an anchor associated with a heading
+========== =============== ===========================================
+
+.. The following is a hack to have a link with literal formatting
+ See https://stackoverflow.com/a/4836544
+
+.. |doc-dir| replace:: ``:doc:``
+.. _doc-dir: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-doc
+.. |ref-dir| replace:: ``:ref:``
+.. _ref-dir: https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-ref
+
+Examples:
.. code-block:: rst
@@ -207,7 +222,7 @@ will render as:
See the example :doc:`/gallery/lines_bars_and_markers/simple_plot`
-Sections can also be given reference names. For instance from the
+Sections can also be given reference labels. For instance from the
:doc:`/users/installing/index` link:
.. code-block:: rst
diff --git a/doc/users/project/citing.rst b/doc/users/project/citing.rst
index b0491cf05e42..89b9b5193784 100644
--- a/doc/users/project/citing.rst
+++ b/doc/users/project/citing.rst
@@ -29,6 +29,9 @@ By version
.. START OF AUTOGENERATED
+v3.7.2
+ .. image:: ../../_static/zenodo_cache/8118151.svg
+ :target: https://doi.org/10.5281/zenodo.8118151
v3.7.1
.. image:: ../../_static/zenodo_cache/7697899.svg
:target: https://doi.org/10.5281/zenodo.7697899
diff --git a/examples/README.txt b/examples/README.txt
index 8e41fb83d300..bab703b4168e 100644
--- a/examples/README.txt
+++ b/examples/README.txt
@@ -1,3 +1,4 @@
+
.. _examples-index:
.. _gallery:
@@ -5,6 +6,7 @@
========
Examples
========
+For an overview of the plotting methods we provide, see :ref:`plot_types`
This page contains example plots. Click on any image to see the full image
and source code.
diff --git a/examples/misc/packed_bubbles.py b/examples/misc/packed_bubbles.py
index 12f51e9569cb..65ec206899ab 100644
--- a/examples/misc/packed_bubbles.py
+++ b/examples/misc/packed_bubbles.py
@@ -76,8 +76,7 @@ def check_collisions(self, bubble, bubbles):
def collides_with(self, bubble, bubbles):
distance = self.outline_distance(bubble, bubbles)
- idx_min = np.argmin(distance)
- return idx_min if type(idx_min) == np.ndarray else [idx_min]
+ return np.argmin(distance, keepdims=True)
def collapse(self, n_iterations=50):
"""
diff --git a/examples/showcase/anatomy.py b/examples/showcase/anatomy.py
index f53aa2bb9d9e..c8c4fab6e721 100644
--- a/examples/showcase/anatomy.py
+++ b/examples/showcase/anatomy.py
@@ -71,7 +71,7 @@ def annotate(x, y, text, code):
color = 'white' if path_effects else royal_blue
ax.text(x, y-0.2, text, zorder=100,
ha='center', va='top', weight='bold', color=color,
- style='italic', fontfamily='Courier New',
+ style='italic', fontfamily='monospace',
path_effects=path_effects)
color = 'white' if path_effects else 'black'
diff --git a/examples/style_sheets/style_sheets_reference.py b/examples/style_sheets/style_sheets_reference.py
index 8557cc10a203..49667e6996d5 100644
--- a/examples/style_sheets/style_sheets_reference.py
+++ b/examples/style_sheets/style_sheets_reference.py
@@ -5,8 +5,19 @@
This script demonstrates the different available style sheets on a
common set of example plots: scatter plot, image, bar graph, patches,
-line plot and histogram,
+line plot and histogram.
+Any of these style sheets can be imported (i.e. activated) by its name.
+For example for the ggplot style:
+
+>>> plt.style.use('ggplot')
+
+The names of the available style sheets can be found
+in the list `matplotlib.style.available`
+(they are also printed in the corner of each plot below).
+
+See more details in :ref:`Customizing Matplotlib
+using style sheets`.
"""
import numpy as np
diff --git a/lib/matplotlib/dviread.py b/lib/matplotlib/dviread.py
index cbd3b542a003..a37a60613903 100644
--- a/lib/matplotlib/dviread.py
+++ b/lib/matplotlib/dviread.py
@@ -622,7 +622,7 @@ def __init__(self, scale, tfm, texname, vf):
for char in range(nchars)]
def __eq__(self, other):
- return (type(self) == type(other)
+ return (type(self) is type(other)
and self.texname == other.texname and self.size == other.size)
def __ne__(self, other):
diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py
index 7f958089f3e4..e570add89271 100644
--- a/lib/matplotlib/font_manager.py
+++ b/lib/matplotlib/font_manager.py
@@ -851,7 +851,7 @@ def set_fontconfig_pattern(self, pattern):
pattern syntax for use here.
"""
for key, val in parse_fontconfig_pattern(pattern).items():
- if type(val) == list:
+ if type(val) is list:
getattr(self, "set_" + key)(val[0])
else:
getattr(self, "set_" + key)(val)
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index cef1c76af666..cf33d31c6f77 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -2834,12 +2834,12 @@ def _as_mpl_axes(self):
# testing axes creation with plt.axes
ax = plt.axes([0, 0, 1, 1], projection=prj)
- assert type(ax) == PolarAxes
+ assert type(ax) is PolarAxes
plt.close()
# testing axes creation with subplot
ax = plt.subplot(121, projection=prj)
- assert type(ax) == PolarAxes
+ assert type(ax) is PolarAxes
plt.close()
diff --git a/lib/matplotlib/tests/test_cbook.py b/lib/matplotlib/tests/test_cbook.py
index 3a70358e2530..39868e5dcb8b 100644
--- a/lib/matplotlib/tests/test_cbook.py
+++ b/lib/matplotlib/tests/test_cbook.py
@@ -224,7 +224,7 @@ def test_callback_complete(self, pickle):
# test that we can add a callback
cid1 = self.connect(self.signal, mini_me.dummy, pickle)
- assert type(cid1) == int
+ assert type(cid1) is int
self.is_not_empty()
# test that we don't add a second callback
@@ -249,7 +249,7 @@ def test_callback_disconnect(self, pickle):
# test that we can add a callback
cid1 = self.connect(self.signal, mini_me.dummy, pickle)
- assert type(cid1) == int
+ assert type(cid1) is int
self.is_not_empty()
self.disconnect(cid1)
@@ -267,7 +267,7 @@ def test_callback_wrong_disconnect(self, pickle):
# test that we can add a callback
cid1 = self.connect(self.signal, mini_me.dummy, pickle)
- assert type(cid1) == int
+ assert type(cid1) is int
self.is_not_empty()
self.disconnect("foo")
diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
index 2860a558d83e..9198c2b91994 100644
--- a/lib/matplotlib/tests/test_image.py
+++ b/lib/matplotlib/tests/test_image.py
@@ -1461,6 +1461,6 @@ def test_str_norms(fig_test, fig_ref):
axrs[3].imshow(t, norm=colors.SymLogNorm(linthresh=2, vmin=.3, vmax=.7))
axrs[4].imshow(t, norm="logit", clim=(.3, .7))
- assert type(axts[0].images[0].norm) == colors.LogNorm # Exactly that class
+ assert type(axts[0].images[0].norm) is colors.LogNorm # Exactly that class
with pytest.raises(ValueError):
axts[0].imshow(t, norm="foobar")
diff --git a/lib/matplotlib/tests/test_scale.py b/lib/matplotlib/tests/test_scale.py
index 7f1130560581..727397367762 100644
--- a/lib/matplotlib/tests/test_scale.py
+++ b/lib/matplotlib/tests/test_scale.py
@@ -37,22 +37,22 @@ def test_symlog_mask_nan():
x = np.arange(-1.5, 5, 0.5)
out = slti.transform_non_affine(slt.transform_non_affine(x))
assert_allclose(out, x)
- assert type(out) == type(x)
+ assert type(out) is type(x)
x[4] = np.nan
out = slti.transform_non_affine(slt.transform_non_affine(x))
assert_allclose(out, x)
- assert type(out) == type(x)
+ assert type(out) is type(x)
x = np.ma.array(x)
out = slti.transform_non_affine(slt.transform_non_affine(x))
assert_allclose(out, x)
- assert type(out) == type(x)
+ assert type(out) is type(x)
x[3] = np.ma.masked
out = slti.transform_non_affine(slt.transform_non_affine(x))
assert_allclose(out, x)
- assert type(out) == type(x)
+ assert type(out) is type(x)
@image_comparison(['logit_scales.png'], remove_text=True)
diff --git a/tools/cache_zenodo_svg.py b/tools/cache_zenodo_svg.py
index b644192dd990..6cc9be01078e 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.7.2": "8118151",
"v3.7.1": "7697899",
"v3.7.0": "7637593",
"v3.6.3": "7527665",