Я работаю над созданием графика с двумя линейными графиками - плановым и фактическим производством и гистограммой, показывающей разницу между ними.
Я создал линейные графики:
ax.plot_date(df['Date'], df['Planned_x'], 'b-', c='red')
ax.plot_date(df['Date'], df['Actuals'], 'b-', c='blue')
Потом позже я увидел в старом вопросе о переполнении стека, что включение гистограммы будет проще, если я переключу plot_date для обычного графика и передам ax.xaxis_date()
отдельно, поскольку это все plot_date делает, и поэтому я изменил код соответствующим образом.
Все работает нормально, пока я не пытаюсь добавить гистограмму, но как только я делаю это, я так и делаю:
ax.plot(df['Date'], df['Planned_x'], 'b-', c='red')
ax.plot(df['Date'], df['Actuals'], 'b-', c='blue')
ax.bar(df['Date'], df['Delta'], c='black', width=1)
ax.xaxis_date()
... Я начинаю получать сообщения об ошибках типа: TypeError: the dtypes of parameters x (datetime64[ns]) and width (int32) are incompatible
Я оглянулся, но больше всего я нашел сообщения об ошибках на страницах matplotlib и Pandas github, и там не былорешения, которые мне помогли.
РЕДАКТИРОВАТЬ: Вот пример данных из Dataframe:
Date Planned_x Actuals ... C2P (%) Planned_y Delta
766 2019-09-19 284.000000 439.0 ... NaN NaN -155.000000
767 2019-09-20 284.000000 469.0 ... NaN NaN -185.000000
768 2019-09-21 260.000000 240.0 ... NaN NaN 20.000000
769 2019-09-22 305.000000 229.0 ... NaN NaN 76.000000
770 2019-09-23 351.000000 225.0 ... 0.533391 NaN 126.000000
771 2019-09-24 387.353430 1.0 ... NaN NaN 386.353430
772 2019-09-25 444.317519 152.0 ... NaN NaN 292.317519
773 2019-09-26 475.557830 300.0 ... NaN NaN 175.557830
774 2019-09-27 404.524517 150.0 ... NaN NaN 254.524517
775 2019-09-28 355.303705 550.0 ... NaN NaN -194.696295