There was an error while loading. Please reload this page.
2 parents 59b32af + f906502 commit 2cc43e1Copy full SHA for 2cc43e1
2 files changed
lib/matplotlib/colors.py
@@ -543,7 +543,7 @@ def _warn_if_global_cmap_modified(cmap):
543
"colormap. In future versions, you will not be able to "
544
"modify a registered colormap in-place. To remove this "
545
"warning, you can make a copy of the colormap first. "
546
- f'cmap = copy.copy(mpl.cm.get_cmap("{cmap.name}"))'
+ f'cmap = mpl.cm.get_cmap("{cmap.name}").copy()'
547
)
548
549
@@ -827,6 +827,10 @@ def color_block(color):
827
f'over {color_block(self.get_over())}'
828
'</div>')
829
830
+ def copy(self):
831
+ """Return a copy of the colormap."""
832
+ return self.__copy__()
833
+
834
835
class LinearSegmentedColormap(Colormap):
836
"""
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