Matplotlib Candlestick (Intraday) Chart is One Big Blob
Just change your width on the chart and it will be fine:
candlestick_ohlc(ax1, ohlc, width=0.001, colorup='#77d879', colordown='#db3f3f')
Tested using your data and it looks good.
It seems the undocumented width
argument to candlestick_ohlc
is the key. Multiply it by the fraction of a day between each of your data points. Since your data is in minute increments, this should do:
candlestick_ohlc(ax, tuples, width=.6/(24*60), colorup='g', alpha =.4);
To automate, use the difference between dates of successive data points. For example:
width=0.6/(mdates.date2num(dates[1])-mdates.date2num(dates[0]))
Note this turns out to be an FAQ, though the links are not obvious. See: