Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2ee48ca

Browse filesBrowse files
committed
Make the ColormapRegistry available in pyplot plt.colormaps
1 parent fe2c958 commit 2ee48ca
Copy full SHA for 2ee48ca

File tree

Expand file treeCollapse file tree

12 files changed

+29
-275
lines changed
Filter options
Expand file treeCollapse file tree

12 files changed

+29
-275
lines changed

‎doc/api/pyplot_summary.rst

Copy file name to clipboardExpand all lines: doc/api/pyplot_summary.rst
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,5 @@ For a more in-depth look at colormaps, see the
2929

3030
.. currentmodule:: matplotlib.pyplot
3131

32-
.. autofunction:: colormaps
32+
.. autodata:: colormaps
33+
:no-value:
+12-9Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
11
Colormap registry (experimental)
22
--------------------------------
33

4-
Colormaps are now managed via `matplotlib.colormaps`, which is a
5-
`.ColormapRegistry`. This API is experimental and may still change in future
6-
versions.
4+
Colormaps are now managed via `matplotlib.colormaps` (or `pyplot.colormaps`),
5+
which is a `.ColormapRegistry`. While we are confident that the API is final,
6+
we formally mark it as experimental for 3.5 because we want to keep the option
7+
to still adapt the API for 3.6 should the need arise.
78

89
Colormaps can be obtained using item access::
910

10-
import matplotlib as mpl
11-
cmap = mpl.colormaps['viridis']
11+
import matplotlib.pyplot as plt
12+
cmap = plt.colormaps['viridis']
1213

1314
To register new colormaps use::
1415

15-
mpl.colormaps.register(my_colormap)
16+
plt.colormaps.register(my_colormap)
1617

17-
The use of `matplotlib.cm.get_cmap` and `matplotlib.cm.register_cmap` is
18-
discouraged in favor of the above. Within `.pyplot` the use of
19-
``plt.get_cmap()`` and ``plt.register_cmap()`` will continue to be supported.
18+
We recommend to use the new API instead of the `~.pyplot.get_cmap` and
19+
`~.pyplot.register_cmap` functions for new code. `matplotlib.cm.get_cmap` and
20+
`matplotlib.cm.register_cmap` will eventually be deprecated and removed.
21+
Within `.pyplot` ``plt.get_cmap()`` and ``plt.register_cmap()`` will continue
22+
to be supported for backward compatibility.

‎examples/images_contours_and_fields/contourf_demo.py

Copy file name to clipboardExpand all lines: examples/images_contours_and_fields/contourf_demo.py
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
How to use the `.axes.Axes.contourf` method to create filled contour plots.
77
"""
88
import numpy as np
9-
import matplotlib as mpl
109
import matplotlib.pyplot as plt
1110

1211
origin = 'lower'
@@ -87,7 +86,7 @@
8786

8887
# Illustrate all 4 possible "extend" settings:
8988
extends = ["neither", "both", "min", "max"]
90-
cmap = mpl.colormaps["winter"].with_extremes(under="magenta", over="yellow")
89+
cmap = plt.colormaps["winter"].with_extremes(under="magenta", over="yellow")
9190
# Note: contouring simply excludes masked or nan regions, so
9291
# instead of using the "bad" colormap value for them, it draws
9392
# nothing at all in them. Therefore the following would have

‎examples/images_contours_and_fields/demo_bboximage.py

Copy file name to clipboardExpand all lines: examples/images_contours_and_fields/demo_bboximage.py
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
a bounding box. This demo shows how to show an image inside a `.text.Text`'s
88
bounding box as well as how to manually create a bounding box for the image.
99
"""
10-
import matplotlib as mpl
1110
import matplotlib.pyplot as plt
1211
import numpy as np
1312
from matplotlib.image import BboxImage
@@ -39,7 +38,7 @@
3938
a = np.vstack((a, a))
4039

4140
# List of all colormaps; skip reversed colormaps.
42-
cmap_names = sorted(m for m in mpl.colormaps if not m.endswith("_r"))
41+
cmap_names = sorted(m for m in plt.colormaps if not m.endswith("_r"))
4342

4443
ncol = 2
4544
nrow = len(cmap_names) // ncol + 1

‎examples/images_contours_and_fields/pcolormesh_levels.py

Copy file name to clipboardExpand all lines: examples/images_contours_and_fields/pcolormesh_levels.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@
9494

9595
# pick the desired colormap, sensible levels, and define a normalization
9696
# instance which takes data values and translates those into levels.
97-
cmap = plt.get_cmap('PiYG')
97+
cmap = plt.colormaps['PiYG']
9898
norm = BoundaryNorm(levels, ncolors=cmap.N, clip=True)
9999

100100
fig, (ax0, ax1) = plt.subplots(nrows=2)

‎examples/images_contours_and_fields/quadmesh_demo.py

Copy file name to clipboardExpand all lines: examples/images_contours_and_fields/quadmesh_demo.py
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
This demo illustrates a bug in quadmesh with masked data.
1010
"""
1111

12-
import matplotlib as mpl
1312
from matplotlib import pyplot as plt
1413
import numpy as np
1514

@@ -30,7 +29,7 @@
3029
axs[0].set_title('Without masked values')
3130

3231
# You can control the color of the masked region.
33-
cmap = mpl.colormaps[mpl.rcParams['image.cmap']].with_extremes(bad='y')
32+
cmap = plt.colormaps[plt.rcParams['image.cmap']].with_extremes(bad='y')
3433
axs[1].pcolormesh(Qx, Qz, Zm, shading='gouraud', cmap=cmap)
3534
axs[1].set_title('With masked values')
3635

‎examples/lines_bars_and_markers/horizontal_barchart_distribution.py

Copy file name to clipboardExpand all lines: examples/lines_bars_and_markers/horizontal_barchart_distribution.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def survey(results, category_names):
4343
labels = list(results.keys())
4444
data = np.array(list(results.values()))
4545
data_cum = data.cumsum(axis=1)
46-
category_colors = plt.get_cmap('RdYlGn')(
46+
category_colors = plt.colormaps['RdYlGn'](
4747
np.linspace(0.15, 0.85, data.shape[1]))
4848

4949
fig, ax = plt.subplots(figsize=(9.2, 5))

‎examples/mplot3d/polys3d.py

Copy file name to clipboardExpand all lines: examples/mplot3d/polys3d.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def polygon_under_graph(x, y):
3232

3333
# verts[i] is a list of (x, y) pairs defining polygon i.
3434
verts = [polygon_under_graph(x, poisson.pmf(l, x)) for l in lambdas]
35-
facecolors = plt.get_cmap('viridis_r')(np.linspace(0, 1, len(verts)))
35+
facecolors = plt.colormaps['viridis_r'](np.linspace(0, 1, len(verts)))
3636

3737
poly = PolyCollection(verts, facecolors=facecolors, alpha=.7)
3838
ax.add_collection3d(poly, zs=lambdas, zdir='y')

‎examples/pie_and_polar_charts/nested_pie.py

Copy file name to clipboardExpand all lines: examples/pie_and_polar_charts/nested_pie.py
+2-3Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
99
"""
1010

11-
import matplotlib as mpl
1211
import matplotlib.pyplot as plt
1312
import numpy as np
1413

@@ -31,7 +30,7 @@
3130
size = 0.3
3231
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
3332

34-
cmap = mpl.colormaps["tab20c"]
33+
cmap = plt.colormaps["tab20c"]
3534
outer_colors = cmap(np.arange(3)*4)
3635
inner_colors = cmap([1, 2, 5, 6, 9, 10])
3736

@@ -62,7 +61,7 @@
6261
# Obtain the ordinates of the bar edges
6362
valsleft = np.cumsum(np.append(0, valsnorm.flatten()[:-1])).reshape(vals.shape)
6463

65-
cmap = mpl.colormaps["tab20c"]
64+
cmap = plt.colormaps["tab20c"]
6665
outer_colors = cmap(np.arange(3)*4)
6766
inner_colors = cmap([1, 2, 5, 6, 9, 10])
6867

‎examples/userdemo/colormap_interactive_adjustment.py

Copy file name to clipboardExpand all lines: examples/userdemo/colormap_interactive_adjustment.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def adjust_colorbar(mouseevent):
5454
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
5555
Z = (0.9*Z1 - 0.5*Z2) * 2
5656

57-
cmap = plt.get_cmap('viridis').with_extremes(
57+
cmap = plt.colormaps['viridis'].with_extremes(
5858
over='xkcd:orange', under='xkcd:dark red')
5959
axesimage = plt.imshow(Z, cmap=cmap)
6060
colorbar = plt.colorbar(axesimage, ax=ax, use_gridspec=True)

‎lib/matplotlib/cm.py

Copy file name to clipboardExpand all lines: lib/matplotlib/cm.py
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ class ColormapRegistry(Mapping):
104104
105105
.. admonition:: Experimental
106106
107-
This API is experimental and may still change in future versions.
107+
While we expect the API to be final, we formally mark it as
108+
experimental for 3.5 because we want to keep the option to still adapt
109+
the API for 3.6 should the need arise.
108110
109111
The universal registry instance is `matplotlib.colormaps`. There should be
110112
no need for users to instantiate `.ColormapRegistry` themselves.
@@ -150,7 +152,6 @@ def __call__(self):
150152
"""
151153
return list(self)
152154

153-
154155
def register(self, cmap, *, name=None, force=False):
155156
"""
156157
Register a new colormap.

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.