Python 将条形图添加到绘图时出错

Python 将条形图添加到绘图时出错,python,pandas,matplotlib,typeerror,Python,Pandas,Matplotlib,Typeerror,我正在创建一个具有两个线条图的图-计划生产和实际生产,以及一个显示这些之间差异的条形图 我已经创建了线条图: ax.plot_date(df['Date'], df['Planned_x'], 'b-', c='red') ax.plot_date(df['Date'], df['Actuals'], 'b-', c='blue') 后来,我在关于堆栈溢出的一个老问题中看到,如果我将plot_date切换为普通plot并分别传递ax.xaxis_date(),则合并条形图将更容易,因为这是pl

我正在创建一个具有两个线条图的图-计划生产和实际生产,以及一个显示这些之间差异的条形图

我已经创建了线条图:

ax.plot_date(df['Date'], df['Planned_x'], 'b-', c='red')
ax.plot_date(df['Date'], df['Actuals'], 'b-', c='blue')
后来,我在关于堆栈溢出的一个老问题中看到,如果我将plot_date切换为普通plot并分别传递
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()
…我开始得到TypeErrors:
TypeError:参数x(datetime64[ns])和宽度(int32)的数据类型不兼容

我环顾四周,但我发现的大部分都是matplotlib和Pandas github页面上的bug报告,没有任何解决方案对我有任何帮助

编辑: 以下是来自数据帧的示例数据:

          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

我使用了您的数据并通过标记“.set_index('date')”为日期列编制了索引

我假设您已经有一些代码将plt板连接到您的数据,如:

       ax = plt.subplot(111)
然后你欺骗matplotlib,说:

       plt.bar(df.index, df.Delta)
请记住,索引是dataframe列的日期


我在这里看到的唯一问题是日期标签混乱,可能您需要选择显示较少的数据量。

您能给我们显示一些数据框中的数据吗?能够重现你的问题。谢谢,对不起。我已经用数据示例编辑了原始帖子。你能展示一个可复制的示例吗?参见或,即一段数据类型清晰的可运行代码;并说明正在使用的matplotlib和pandas的版本?谢谢!索引成功了!现在我的三个情节都很好。我使用
plt.setp(plt.xticks()。
       plt.bar(df.index, df.Delta)