From 7b547eacebb0d854152e0e5d1afb3edc5da5ee4d Mon Sep 17 00:00:00 2001
From: Ruth Comer <10599679+rcomer@users.noreply.github.com>
Date: Mon, 21 Oct 2024 22:09:44 +0100
Subject: [PATCH] Backport PR #28993: FIX: contourf hatches use multiple
 edgecolors

---
 lib/matplotlib/contour.py                       |   4 ++++
 .../test_contour/contourf_hatch_colors.png      | Bin 0 -> 19765 bytes
 lib/matplotlib/tests/test_contour.py            |   8 ++++++++
 3 files changed, 12 insertions(+)
 create mode 100644 lib/matplotlib/tests/baseline_images/test_contour/contourf_hatch_colors.png

diff --git a/lib/matplotlib/contour.py b/lib/matplotlib/contour.py
index 0e6068c64b62..3b2bf3843f4d 100644
--- a/lib/matplotlib/contour.py
+++ b/lib/matplotlib/contour.py
@@ -1415,12 +1415,16 @@ def draw(self, renderer):
             super().draw(renderer)
             return
         # In presence of hatching, draw contours one at a time.
+        edgecolors = self.get_edgecolors()
+        if edgecolors.size == 0:
+            edgecolors = ("none",)
         for idx in range(n_paths):
             with cbook._setattr_cm(self, _paths=[paths[idx]]), self._cm_set(
                 hatch=self.hatches[idx % len(self.hatches)],
                 array=[self.get_array()[idx]],
                 linewidths=[self.get_linewidths()[idx % len(self.get_linewidths())]],
                 linestyles=[self.get_linestyles()[idx % len(self.get_linestyles())]],
+                edgecolors=edgecolors[idx % len(edgecolors)],
             ):
                 super().draw(renderer)
 
diff --git a/lib/matplotlib/tests/baseline_images/test_contour/contourf_hatch_colors.png b/lib/matplotlib/tests/baseline_images/test_contour/contourf_hatch_colors.png
new file mode 100644
index 0000000000000000000000000000000000000000..18d949773ded79b5e931e035032c7f0ee590cd6b
GIT binary patch
literal 19765
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
I>2%@$0rsu9f&c&j

literal 0
HcmV?d00001

diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index 0622c099a20c..a3e00c30ce97 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -198,6 +198,14 @@ def test_given_colors_levels_and_extends(split_collections):
     _maybe_split_collections(split_collections)
 
 
+@image_comparison(['contourf_hatch_colors'],
+                  remove_text=True, style='mpl20', extensions=['png'])
+def test_hatch_colors():
+    fig, ax = plt.subplots()
+    cf = ax.contourf([[0, 1], [1, 2]], hatches=['-', '/', '\\', '//'], cmap='gray')
+    cf.set_edgecolors(["blue", "grey", "yellow", "red"])
+
+
 @pytest.mark.parametrize("split_collections", [False, True])
 @image_comparison(['contour_log_locator.svg'], style='mpl20', remove_text=False)
 def test_log_locator_levels(split_collections):