8000 FIX: Fix shape of hist output when input consists of multiple empty l… · matplotlib/matplotlib@45f29b7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 45f29b7

Browse files
committed
FIX: Fix shape of hist output when input consists of multiple empty lists.
1 parent ed8e70e commit 45f29b7

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Modify output of Axes.hist when input consists of multiple empty lists
2+
``````````````````````````````````````````````````````````````````````
3+
4+
Input that consists of multiple empty lists will now return a list of histogram
5+
values for each one of the lists. For example, an input of ``[[],[]]`` will
6+
return 2 lists of histogram values. Previously, a single list was returned.

lib/matplotlib/axes/_axes.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6625,10 +6625,7 @@ def hist(self, x, bins=None, range=None, density=None, weights=None,
66256625
# basic input validation
66266626
input_empty = np.size(x) == 0
66276627
# Massage 'x' for processing.
6628-
if input_empty:
6629-
x = [np.array([])]
6630-
else:
6631-
x = cbook._reshape_2D(x, 'x')
6628+
x = cbook._reshape_2D(x, 'x')
66326629
nx = len(x) # number of datasets
66336630

66346631
# Process unit information

lib/matplotlib/tests/test_axes.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,6 +1665,20 @@ def test_hist_datetime_datasets():
16651665
ax.hist(data, stacked=False)
16661666

16671667

1668+
@pytest.mark.parametrize('data, expected_number_of_hists',
1669+
[([], 1),
1670+
([[]], 1),
1671+
([[], []], 2)])
1672+
def test_hist_with_empty_input(data, expected_number_of_hists):
1673+
hists, _, _ = plt.hist(data)
1674+
hists = np.asarray(hists)
1675+
1676+
if hists.ndim == 1:
1677+
assert 1 == expected_number_of_hists
1678+
else:
1679+
assert hists.shape[0] == expected_number_of_hists
1680+
1681+
16681682
def contour_dat():
16691683
x = np.linspace(-3, 5, 150)
16701684
y = np.linspace(-3, 5, 120)

0 commit comments

Comments
 (0)
0