try
plt.yscale('log', nonposy='clip')
http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.yscale
Проблема заключается в том, нижняя часть баров находится в точке y = 0, а по умолчанию - маскировать недействительные точки (log(0)
-> undefined) при выполнении преобразования журнала (было обсуждение изменения этого, но я не помню, каким образом он пошел), поэтому, когда он пытается нарисовать прямоугольники для вашего штрихового графика, нижний край замаскирован -> нет прямоугольников.