diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index f923c8ca0fe3..55596e3eb59e 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1492,13 +1492,13 @@ def plot_date(self, x, y, fmt='o', tz=None, xdate=True, ydate=False, if not self._hold: self.cla() - ret = self.plot(x, y, fmt, **kwargs) - if xdate: self.xaxis_date(tz) if ydate: self.yaxis_date(tz) + ret = self.plot(x, y, fmt, **kwargs) + self.autoscale_view() return ret diff --git a/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png new file mode 100644 index 000000000000..aee04d055421 Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x.png differ diff --git a/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x_and_y.png b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x_and_y.png new file mode 100644 index 000000000000..b13dfc53953a Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_x_and_y.png differ diff --git a/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png new file mode 100644 index 000000000000..be77b5d0c8bc Binary files /dev/null and b/lib/matplotlib/tests/baseline_images/test_axes/date_timezone_y.png differ diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 70b2ae7a019f..9e21a8ccebcf 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -11,6 +11,8 @@ import datetime +import pytz + import numpy as np from numpy import ma from numpy import arange @@ -4335,6 +4337,55 @@ def test_pandas_indexing_hist(): fig, axes = plt.subplots() axes.hist(ser_2) +@image_comparison(baseline_images=['date_timezone_x'], extensions=['png']) +def test_date_timezone_x(): + # Tests issue 5575 + time_index = [pytz.timezone('Canada/Eastern').localize(datetime.datetime( + year=2016, month=2, day=22, hour=x)) for x in range(3)] + + # Same Timezone + fig = plt.figure(figsize=(20, 12)) + plt.subplot(2, 1, 1) + plt.plot_date(time_index, [3] * 3, tz='Canada/Eastern') + + # Different Timezone + plt.subplot(2, 1, 2) + plt.plot_date(time_index, [3] * 3, tz='UTC') + + +@image_comparison(baseline_images=['date_timezone_y'], + extensions=['png']) +def test_date_timezone_y(): + # Tests issue 5575 + time_index = [pytz.timezone('Canada/Eastern').localize(datetime.datetime( + year=2016, month=2, day=22, hour=x)) for x in range(3)] + + # Same Timezone + fig = plt.figure(figsize=(20, 12)) + plt.subplot(2, 1, 1) + plt.plot_date([3] * 3, + time_index, tz='Canada/Eastern', xdate=False, ydate=True) + + # Different Timezone + plt.subplot(2, 1, 2) + plt.plot_date([3] * 3, time_index, tz='UTC', xdate=False, ydate=True) + + +@image_comparison(baseline_images=['date_timezone_x_and_y'], + extensions=['png']) +def test_date_timezone_x_and_y(): + # Tests issue 5575 + time_index = [pytz.timezone('UTC').localize(datetime.datetime( + year=2016, month=2, day=22, hour=x)) for x in range(3)] + + # Same Timezone + fig = plt.figure(figsize=(20, 12)) + plt.subplot(2, 1, 1) + plt.plot_date(time_index, time_index, tz='UTC', ydate=True) + + # Different Timezone + plt.subplot(2, 1, 2) + plt.plot_date(time_index, time_index, tz='US/Eastern', ydate=True) if __name__ == '__main__': import nose