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)