Repository: sunpy/sunpy

Issue:
`MapSequence.plot` ignores `cmap` and `norm` keyword arguments
### Describe the bug

When plotting an animation of a `MapSequence` using `MapSequence.plot`, passing `cmap` and `norm` have no effect. This is because `norm` and `cmap` are overridden by values in `plot_settings`: https://github.com/sunpy/sunpy/blob/b63d5dd17a7699650cc34b88d26f9f9cc8215293/sunpy/map/mapsequence.py#L352-L355

This is in contrast to `GenericMap.plot` which does respect these keywords. Thus, to change the colormap or the normalization of the animation, one has to manually set the appropriate plot settings keywords for every map in a sequence which is quite cumbersome.

### To Reproduce

```python
import sunpy.map
import sunpy.data.sample
from astropy.visualization import ImageNormalize

m_seq = sunpy.map.Map([
    sunpy.data.sample.AIA_193_CUTOUT01_IMAGE,
    sunpy.data.sample.AIA_193_CUTOUT02_IMAGE,
], sequence=True)

m_seq.plot(cmap='Greys', norm=ImageNormalize(vmin=0,vmax=1,))
```

### What happened?

The resulting animation has the colormap and normalization as set in the plot settings, not the keyword arguments. 

### Expected behavior

For the animation to have the colormap and normalization as specified in the keyword arguments.

### Screenshots

<img width="689" alt="image" src="https://user-images.githubusercontent.com/8676141/154163249-f1ec3123-7fd8-4391-b0da-71e6f8f517e0.png">


### System Details

- sunpy v3.1.3
- astropy v5.0
- Python 3.8
- macOS 11.5.2 (Big Sur)

### Installation method

pip


Discussion:

Resolving patch:
diff --git a/sunpy/map/mapsequence.py b/sunpy/map/mapsequence.py
--- a/sunpy/map/mapsequence.py
+++ b/sunpy/map/mapsequence.py
@@ -350,9 +350,9 @@ def updatefig(i, im, annotate, ani_data, removes):
                 removes.pop(0).remove()
 
             im.set_array(ani_data[i].data)
-            im.set_cmap(ani_data[i].plot_settings['cmap'])
+            im.set_cmap(kwargs.get('cmap', ani_data[i].plot_settings['cmap']))
 
-            norm = deepcopy(ani_data[i].plot_settings['norm'])
+            norm = deepcopy(kwargs.get('norm', ani_data[i].plot_settings['norm']))
             # The following explicit call is for bugged versions of Astropy's
             # ImageNormalize
             norm.autoscale_None(ani_data[i].data)


Test patch:
diff --git a/sunpy/map/tests/test_mapsequence.py b/sunpy/map/tests/test_mapsequence.py
--- a/sunpy/map/tests/test_mapsequence.py
+++ b/sunpy/map/tests/test_mapsequence.py
@@ -8,6 +8,7 @@
 
 import astropy.units as u
 from astropy.tests.helper import assert_quantity_allclose
+from astropy.visualization import ImageNormalize
 
 import sunpy
 import sunpy.data.test
@@ -199,6 +200,13 @@ def test_map_sequence_plot(aia171_test_map, hmi_test_map):
     seq.plot()
 
 
+@figure_test
+def test_map_sequence_plot_custom_cmap_norm(aia171_test_map, hmi_test_map):
+    seq = sunpy.map.Map([aia171_test_map, hmi_test_map], sequence=True)
+    animation = seq.plot(cmap='Greys', norm=ImageNormalize(vmin=0, vmax=100))
+    animation._step()
+
+
 def test_save(aia171_test_map, hmi_test_map, tmp_path):
     """
     Tests the MapSequence save function
diff --git a/sunpy/tests/figure_hashes_mpl_332_ft_261_astropy_421_animators_100.json b/sunpy/tests/figure_hashes_mpl_332_ft_261_astropy_421_animators_100.json
--- a/sunpy/tests/figure_hashes_mpl_332_ft_261_astropy_421_animators_100.json
+++ b/sunpy/tests/figure_hashes_mpl_332_ft_261_astropy_421_animators_100.json
@@ -9,6 +9,7 @@
   "sunpy.map.tests.test_mapbase.test_rotation_rect_pixelated_data": "3835ea8f163f8b843088524fb6f1ea7b1357ee00224bd9ea625c641d974f17b7",
   "sunpy.map.tests.test_mapsequence.test_norm_animator": "a400eef26fdd915ccf12769031bd8dadedbf8f6a93e31cd5982bffe2484702ee",
   "sunpy.map.tests.test_mapsequence.test_map_sequence_plot": "15c8aee7d3a6ff3d39856dc37e02afa983e1ebc1582f810699defd14b3f6cec7",
+  "sunpy.map.tests.test_mapsequence.test_map_sequence_plot_custom_cmap_norm": "7f115dedaf88653dff71f784b0d8173d66638e429f92239a7a6f7d6f10fd05f5",
   "sunpy.map.tests.test_plotting.test_plot_aia171": "15c8aee7d3a6ff3d39856dc37e02afa983e1ebc1582f810699defd14b3f6cec7",
   "sunpy.map.tests.test_plotting.test_plot_rotated_aia171": "dc20869be4f5d68ac01078412320b93060fcac86330126362627567e48f089ef",
   "sunpy.map.tests.test_plotting.test_plot_aia171_clip": "a99f0072685b693410bccee49f4733d312f1c397067fb85388ef5b14160b6497",
diff --git a/sunpy/tests/figure_hashes_mpl_dev_ft_261_astropy_dev_animators_dev.json b/sunpy/tests/figure_hashes_mpl_dev_ft_261_astropy_dev_animators_dev.json
--- a/sunpy/tests/figure_hashes_mpl_dev_ft_261_astropy_dev_animators_dev.json
+++ b/sunpy/tests/figure_hashes_mpl_dev_ft_261_astropy_dev_animators_dev.json
@@ -9,6 +9,7 @@
   "sunpy.map.tests.test_mapbase.test_rotation_rect_pixelated_data": "817ef0de8c17246fc4e728d55d119b08c803b6a6906d4b0923f3969eaab0177f",
   "sunpy.map.tests.test_mapsequence.test_norm_animator": "5a7217dd55ab3a593a27741fecfe0851208fd1d31baeca4cbd018d65aaf3f483",
   "sunpy.map.tests.test_mapsequence.test_map_sequence_plot": "3cdc53f41914028a4e9f23112d7e616ce8a423ef5670c8365fdadbc0e59780ca",
+  "sunpy.map.tests.test_mapsequence.test_map_sequence_plot_custom_cmap_norm": "c1276702147f4debaa14c17f6b0b2ab7f9e0b1ace309c72e767b2af071c4405e",
   "sunpy.map.tests.test_plotting.test_plot_aia171": "3cdc53f41914028a4e9f23112d7e616ce8a423ef5670c8365fdadbc0e59780ca",
   "sunpy.map.tests.test_plotting.test_plot_rotated_aia171": "9df0409afa257ebe481aa5170321072ddca349fe596f3d662208e127f39a938e",
   "sunpy.map.tests.test_plotting.test_plot_aia171_clip": "920852d09b1b0af6ed406312e8e54ce2b327d38061a0652d95df03b41e1c552d",