将条形图添加到绘图时的Pandas TypeError

时间:2019-10-16 07:07:16

标签: python pandas matplotlib typeerror

我正在创建一个包含两个折线图的绘图-计划的和实际的生产,以及显示两者之间差异的条形图。

我已经创建了线图:

ALTER TABLE table ADD CONSTRAINT md5_is_defined CHECK(table->'jpg'->0 ? 'md5')

然后,我在一个关于Stack Overflow的老问题中看到,如果我将 plot_date 切换为常规 plot 并分别传递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()

...我开始收到TypeErrors: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()

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

编辑: 这是来自数据框的示例数据:

TypeError: the dtypes of parameters x (datetime64[ns]) and width (int32) are incompatible

1 个答案:

答案 0 :(得分:1)

我通过标记“ .set_index('Date')”来使用您的数据并为日期列建立索引

       df = pd.DataFrame(data,columns=['Date','Planned_x','Actuals','C2P','Planned_y','Delta']).set_index('Date')

我假设您已经有一些代码可以将plt板附加到您的数据上,例如:

       ax = plt.subplot(111)

然后您欺骗matplotlib,说:

       plt.bar(df.index, df.Delta)

请记住,您的索引是数据框列Date。

enter image description here

我在这里看到的唯一问题是日期标签弄乱了,也许您需要选择减少显示的数据量。