1

当我将数据框过滤到最后 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 天的折线图将不会显示。

4

0 回答 0