diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 61d1eef82cb9..59f922b16128 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -2339,8 +2339,16 @@ def broken_barh(self, xranges, yrange, **kwargs): .. plot:: mpl_examples/pylab_examples/broken_barh.py """ # process the unit information - self._process_unit_info(xdata=xranges[0], - ydata=yrange[0], + if len(xranges): + xdata = six.next(iter(xranges)) + else: + xdata = None + if len(yrange): + ydata = six.next(iter(yrange)) + else: + ydata = None + self._process_unit_info(xdata=xdata, + ydata=ydata, kwargs=kwargs) xranges = self.convert_xunits(xranges) yrange = self.convert_yunits(yrange) diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 5c30e56cb5ed..20c5c0a5439f 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -4241,6 +4241,12 @@ def _helper_y(ax): assert assert_array_equal(ax_lst[0][1].get_xlim(), orig_xlim) +@cleanup +def test_broken_barh_empty(): + fig, ax = plt.subplots() + ax.broken_barh([], (.1, .5)) + + if __name__ == '__main__': import nose import sys