diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index 8b737e564f77..c2230d3b44a4 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -6758,6 +6758,8 @@ def hist(self, x, bins=None, range=None, density=None, weights=None, labels = [None] elif isinstance(label, str): labels = [label] + elif not np.iterable(label): + labels = [str(label)] else: labels = [str(lab) for lab in label] diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 8efe0b11786c..49e0a9826c4c 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -3073,6 +3073,21 @@ def test_hist_emptydata(): ax.hist([[], range(10), range(10)], histtype="step") +def test_hist_labels(): + # test singleton labels OK + fig, ax = plt.subplots() + l = ax.hist([0, 1], label=0) + assert l[2][0].get_label() == '0' + l = ax.hist([0, 1], label=[0]) + assert l[2][0].get_label() == '0' + l = ax.hist([0, 1], label=None) + assert l[2][0].get_label() == '_nolegend_' + l = ax.hist([0, 1], label='0') + assert l[2][0].get_label() == '0' + l = ax.hist([0, 1], label='00') + assert l[2][0].get_label() == '00' + + @image_comparison(baseline_images=['transparent_markers'], remove_text=True) def test_transparent_markers(): np.random.seed(0)