熊猫子图日期时间开始和结束

时间:2020-01-16 11:32:37

标签: python pandas matplotlib

我正在尝试使用直方图绘制多个数据帧,这些数据帧的日期时间为索引,成本为单列。最重要的是,我希望将累积量绘制为实线。我有多个基于公司名称的数据框。 x_ticks应该是受限制的,并且从df.index.min()datetime.datetime.now()开始。 当前,x_ticks完全不受控制,跳到子图的顶部,并且不听控制。我认为这与axs2有关。 enter image description here

fig, axs = plt.subplots(int(np.ceil(len(clients)/4)), 4, figsize=(20, 15), facecolor='w', edgecolor='k')
axs = axs.ravel()
datemin = df_riko_split['Date'].min()
for i in range(len(clients)):
  if df_riko_split[df_riko_split['Klantnaam'] == clients[i]]['Total Cost'].sum() != 0:
    df_date_cost = df_riko_split[df_riko_split['Klantnaam'] == clients[i]][['Total Cost','Date']].sort_values(['Date'])
    df_date_sum = df_date_cost.groupby('Date').sum()
    df_date_cumsum = pd.DataFrame(df_date_sum['Total Cost'].cumsum())

    axs[i].set_xlim(datemin, datetime.datetime.now())
    axs[i].xaxis.set_major_locator(dates.MonthLocator(bymonthday=1))
    axs[i].xaxis.set_major_formatter(dates.DateFormatter('%Y-%b'))

    axs2 = axs[i].twinx().twiny()
    axs2.set_xticklabels([])
    df_date_cumsum.plot(ax = axs[i], stacked=True)
    df_date_sum.plot(ax=axs2, kind='bar')
    axs[i].set_title(str(clients[i] + ' €' + "%.2f" % round(df_date_cumsum.values[-1][0],2)))
plt.tight_layout()

0 个答案:

没有答案