python - 将条形图添加到绘图时出现 Pandas TypeError
问题描述
我正在创建一个包含两个线图的情节 - 计划生产和实际生产,以及显示它们之间差异的条形图。
我创建了线图:
ax.plot_date(df['Date'], df['Planned_x'], 'b-', c='red')
ax.plot_date(df['Date'], df['Actuals'], 'b-', c='blue')
后来我在 Stack Overflow 上的一个老问题中看到,如果我将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()
...我开始收到 TypeErrors:TypeError: the dtypes of parameters x (datetime64[ns]) and width (int32) are incompatible
我环顾四周,但我发现的大部分都是关于 matplotlib 和 Pandas github 页面的错误报告,并且没有对我有任何帮助的解决方案。
编辑: 这是来自数据框的示例数据:
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')”为日期列建立了索引
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)
请记住,您的索引是您的数据框列日期。
我在这里看到的唯一问题是日期标签搞砸了,也许您需要选择显示减少的数据量左右。
推荐阅读
- python - Python 3.10:ModuleNotFoundError:没有名为“statsmodels”的模块
- java - (Java)如何按某个值(字符串)拆分数组?
- python - 在 Python / pygame 中解决项目
- sed - 如何将 sed "s" 命令从双引号翻译成单引号
- spring-boot - JPA ManyToMany 失败,“列数必须与引用的主键相同”
- javascript - 更新数组中的值并返回更新后的数组
- vue.js - 在 Vuex 中,为什么模块的状态被访问为 'store.state.module' 而不是 'store.module.state'?
- arrays - 与表示为一维数组的二维矩阵相乘
- azure-container-apps - 容器应用程序失败并出现错误“配置容器应用程序时出错。容器无法启动”
- python - Python练习元组,设置和列表