There was an error while loading. Please reload this page.
2 parents 969a12c + 6218e55 commit fba5d15Copy full SHA for fba5d15
2 files changed
lib/matplotlib/colors.py
@@ -561,7 +561,7 @@ def _warn_if_global_cmap_modified(cmap):
561
"colormap. In future versions, you will not be able to "
562
"modify a registered colormap in-place. To remove this "
563
"warning, you can make a copy of the colormap first. "
564
- f'cmap = copy.copy(mpl.cm.get_cmap("{cmap.name}"))'
+ f'cmap = mpl.cm.get_cmap("{cmap.name}").copy()'
565
)
566
567
@@ -845,6 +845,10 @@ def color_block(color):
845
f'over {color_block(self.get_over())}'
846
'</div>')
847
848
+ def copy(self):
849
+ """Return a copy of the colormap."""
850
+ return self.__copy__()
851
+
852
853
class LinearSegmentedColormap(Colormap):
854
"""
lib/matplotlib/tests/test_colors.py
@@ -150,6 +150,16 @@ def test_colormap_copy():
150
with np.errstate(invalid='ignore'):
151
ret2 = copied_cmap([-1, 0, .5, 1, np.nan, np.inf])
152
assert_array_equal(ret1, ret2)
153
+ # again with the .copy method:
154
+ cmap = plt.cm.Reds
155
+ copied_cmap = cmap.copy()
156
+ with np.errstate(invalid='ignore'):
157
+ ret1 = copied_cmap([-1, 0, .5, 1, np.nan, np.inf])
158
+ cmap2 = copy.copy(copied_cmap)
159
+ cmap2.set_bad('g')
160
161
+ ret2 = copied_cmap([-1, 0, .5, 1, np.nan, np.inf])
162
+ assert_array_equal(ret1, ret2)
163
164
165
def test_colormap_endian():
0 commit comments