我正在创建一个包含两个折线图的绘图-计划的和实际的生产,以及显示两者之间差异的条形图。
我已经创建了线图:
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
答案 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。
我在这里看到的唯一问题是日期标签弄乱了,也许您需要选择减少显示的数据量。