diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index e90c119657cd..2065871157dd 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -6759,6 +6759,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 17eb624c7143..3c9b7dfc56d9 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -3065,6 +3065,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)