Согласно документации , bar
и barh
matplotlib принимают одно значение или массив значений ширины, по одному на каждую полосу. Я видел примеры этого вокруг. Тем не менее, он не работает при использовании оболочки pandas, и трассировка стека показывает, что арифметика, которая проверяет X-пределы (Y-пределы, соответственно, для barh
), не может обрабатывать несколько значений ширины. В чем дело?
import pandas as pd
import matplotlib.pyplot as plt
# Minimum reproducible bug
df = pd.DataFrame({'value': [3,5,4], 'width': [0.1, 0.5, 1.0]})
plt.close('all')
fig, ax = plt.subplots(1,3)
df.plot.barh(ax=ax[0], width=0.9, stacked=True) # Base case
df.plot.bar(ax=ax[1], width=df.width.values) # Throws error after drawing bars, before setting x-limits
df.plot.barh(ax=ax[2], width=df.width.values) # (Analogous to above)