当我将数据框向下过滤到最后7个日期时,我很难获得此代码来生成条形图和顶部的折线图。目前,我可以单独运行每个图形,并且它们都可以正常运行,但是当我将它们同时运行时,可以得到没有折线图的条形图。我该如何纠正?
import pandas as pd
import matplotlib.pyplot as plt; plt.rcdefaults()
import matplotlib.dates as mdates
import numpy as np
# CSV's from report server. Change name accordingly.
quotes = pd.read_csv("PO25474.csv")
sales = pd.read_csv("SO.csv", encoding ='Latin-1')
today = pd.datetime.today().date()
selected_date = pd.date_range(today - pd.to_timedelta(6, unit='d'), today, freq='D')
#Apply to any price columns
def convert_currency(val):
"""
Convert the string number value to a float
- Remove $
- Remove commas
- Convert to float type
"""
new_val = val.replace(',','')
return float(new_val)
#Convert dates and price column data types.
quotes["ENTRY_DATE"] = quotes["ENTRY_DATE"].astype("datetime64")
quotes["EXT_PRICE"] = quotes['EXT_PRICE'].apply(convert_currency)
df_selected = quotes[quotes["ENTRY_DATE"].isin(selected_date)]
plt.figure(figsize=(12, 5))
ax = (df_selected.groupby(['ENTRY_DATE'])['QTY'].sum().plot(kind="bar",
use_index='index'))
ax.set_xlabel("Quotes")
ax.set_ylabel("Total")
ax.set_title("PO25474")
ax2 = ax.twinx()
ax2 = (df_selected.groupby([df_selected['ENTRY_DATE'].dt.day])['EXT_PRICE'].sum().plot(kind='line', marker='o', color='k'))
plt.show()
编辑 当我无日期限制地运行此数据框时,它运行良好。现在,我已将其更改为最近7天,折线图将不会显示。