Today This Free Friday I am working on a project on YouTube a Personal Finance Tracker part 4.
if choice == "1":
add()
elif choice == "2":
start_date = get_date("Enter the start date (dd-mm-yyyy): ")
end_date = get_date("Enter the end date (dd-mm-yyyy):")
df = CSV.get_transactions(start_date, end_date)
if input("Do you want to see a plot? (y/n) ").lower() == "y":
plot_transactions(df)
- This part of the code is to ask the user if they want to plot it and they want to see it on a graph.
def plot_transactions(df):
df.set_index("date", inplace=True)
income_df = (
df[df["category"] == "Income"]
.resample("D")
.sum()
.reindex(df.index, fil_value=0)
)
expense_df = (
df[df["category"] == "Expense"]
.resample("D")
.sum()
.reindex(df.index, fil_value=0)
)
plt.figure(figsize=(10, 5))
plt.plot(income_df.index, income_df["amount"], label="Income", color="g")
plt.plot(expense_df.index, expense_df["amount"], label="Expense", color="r")
plt.xlabel("Date")
plt.ylabel("Amount")
plt.title('Income and Expenses Over Time')
plt.legend()
plt.grid(True)
plt.show()
- this part of the code is the data frame is going contain all of the transactions that user want to plot.