From 3c6d39d489513036b311c83f9b5893e4cbc0b8aa Mon Sep 17 00:00:00 2001 From: ConstableCatnip <38230539+ConstableCatnip@users.noreply.github.com> Date: Fri, 8 Dec 2023 21:38:18 +0000 Subject: [PATCH 1/2] Added smoke test for Axes.imshow to test_datetime.py --- lib/matplotlib/tests/test_datetime.py | 40 +++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/tests/test_datetime.py b/lib/matplotlib/tests/test_datetime.py index 529244c9656b..77ec67bfb179 100644 --- a/lib/matplotlib/tests/test_datetime.py +++ b/lib/matplotlib/tests/test_datetime.py @@ -530,11 +530,45 @@ def test_hlines(self): xmin=0.45, xmax=0.65) - @pytest.mark.xfail(reason="Test for imshow not written yet") @mpl.style.context("default") def test_imshow(self): - fig, ax = plt.subplots() - ax.imshow(...) + mpl.rcParams["date.converter"] = "concise" + a = np.diag(range(5)) + fig, axes = plt.subplots(nrows=2, ncols=2) + + ax = axes[0, 0] + dt_start = datetime.datetime(1980, 4, 15) + dt_end = datetime.datetime(2010, 11, 11) + extent = (dt_start, dt_end, dt_start, dt_end) + ax.imshow(a, extent=extent) + for label in ax.get_xticklabels(): + label.set_rotation(90) + + ax = axes[0, 1] + dt_start = datetime.datetime(2010, 4, 15) + dt_end = datetime.datetime(2010, 11, 11) + extent = (dt_start, dt_end, dt_start, dt_end) + ax.imshow(a, extent=extent) + for label in ax.get_xticklabels(): + label.set_rotation(90) + + ax = axes[1, 0] + dt_start = datetime.datetime(2010, 11, 1) + dt_end = datetime.datetime(2010, 11, 11) + extent = (dt_start, dt_end, dt_start, dt_end) + ax.imshow(a, extent=extent) + for label in ax.get_xticklabels(): + label.set_rotation(90) + + ax = axes[1, 1] + dt_start = datetime.datetime(2010, 11, 10) + dt_end = datetime.datetime(2010, 11, 11) + extent = (dt_start, dt_end, dt_start, dt_end) + ax.imshow(a, extent=extent) + for label in ax.get_xticklabels(): + label.set_rotation(90) + + fig.tight_layout() @pytest.mark.xfail(reason="Test for loglog not written yet") @mpl.style.context("default") From e0f5b239bedd0f8b367970081b5eac1530348aa5 Mon Sep 17 00:00:00 2001 From: ConstableCatnip <38230539+ConstableCatnip@users.noreply.github.com> Date: Mon, 11 Dec 2023 17:34:54 +0000 Subject: [PATCH 2/2] Updates based on suggestions. By constraining the date range to a few days, the axes labels now look like dates instead of just the year. --- lib/matplotlib/tests/test_datetime.py | 34 ++------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/lib/matplotlib/tests/test_datetime.py b/lib/matplotlib/tests/test_datetime.py index 77ec67bfb179..07711644a85d 100644 --- a/lib/matplotlib/tests/test_datetime.py +++ b/lib/matplotlib/tests/test_datetime.py @@ -532,43 +532,13 @@ def test_hlines(self): @mpl.style.context("default") def test_imshow(self): - mpl.rcParams["date.converter"] = "concise" + fig, ax = plt.subplots() a = np.diag(range(5)) - fig, axes = plt.subplots(nrows=2, ncols=2) - - ax = axes[0, 0] - dt_start = datetime.datetime(1980, 4, 15) - dt_end = datetime.datetime(2010, 11, 11) - extent = (dt_start, dt_end, dt_start, dt_end) - ax.imshow(a, extent=extent) - for label in ax.get_xticklabels(): - label.set_rotation(90) - - ax = axes[0, 1] - dt_start = datetime.datetime(2010, 4, 15) - dt_end = datetime.datetime(2010, 11, 11) - extent = (dt_start, dt_end, dt_start, dt_end) - ax.imshow(a, extent=extent) - for label in ax.get_xticklabels(): - label.set_rotation(90) - - ax = axes[1, 0] dt_start = datetime.datetime(2010, 11, 1) dt_end = datetime.datetime(2010, 11, 11) extent = (dt_start, dt_end, dt_start, dt_end) ax.imshow(a, extent=extent) - for label in ax.get_xticklabels(): - label.set_rotation(90) - - ax = axes[1, 1] - dt_start = datetime.datetime(2010, 11, 10) - dt_end = datetime.datetime(2010, 11, 11) - extent = (dt_start, dt_end, dt_start, dt_end) - ax.imshow(a, extent=extent) - for label in ax.get_xticklabels(): - label.set_rotation(90) - - fig.tight_layout() + ax.tick_params(axis="x", labelrotation=90) @pytest.mark.xfail(reason="Test for loglog not written yet") @mpl.style.context("default")