I get inconsistent behavior when plotting multiple sets of data with plt.hist. Here's a quick example:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(10)
y = np.random.randn(9)
plt.hist([x, y])
The above code plots two sets of histograms, as expected. My data sets have different lengths, but by coincidence, I had two data sets with the same length. When you call hist on data sets with the same length
plt.hist([x[:-1], y])
then hist actually transposes the data; for the above, you get 9 sets of data instead of two.
Below is a patch that fixes the issue, but unfortunately, it'll probably break other peoples' code; in fact, it breaks the example code (histogram_demo_extended.py). I'm not sure what's worse: dealing with the inconsistency or breaking a lot of code. But if there's a time to break code, MPL 1.0 might be it
Best,
-Tony
Index: lib/matplotlib/axes.py
ยทยทยท
===================================================================
--- lib/matplotlib/axes.py (revision 8187)
+++ lib/matplotlib/axes.py (working copy)
@@ -7122,7 +7122,7 @@
try:
# make sure a copy is created: don't use asarray
- x = np.transpose(np.array(x))
+ x = np.array(x)
if len(x.shape)==1:
x.shape = (1,x.shape[0])
elif len(x.shape)==2 and x.shape[1]<x.shape[0]: