【问题标题】:Python make plotPython制作情节
【发布时间】:2022-01-14 17:28:46
【问题描述】:

我有这个抵押贷款计算器的代码。我想使用 Matplotlib 将此代码制作成绘图。我想要的值是“已付本金”和“已付利息”作为一条线,在 x 上显示美元,在 y 上显示年份/日期。我不知道如何开始,因为我有输入值,有人可以帮忙吗?

import pandas as pd
import numpy_financial as npf
from datetime import date

def fixed_rate_mortgage(interest: float, years: int, payments_year: int, mortgage: int, start_date: str):
 
rng = pd.date_range(start_date, periods=years * payments_year, freq='MS')
rng.name = "Payment Date"
df = pd.DataFrame(index=rng, columns=['Payment', 'Principal Paid', 'Interest Paid', 'Ending Balance'], dtype='float')
df.reset_index(inplace=True)
df.index += 1
df.index.name = "Period"

df["Payment"] = -1 * npf.pmt(interest/12, years*payments_year,mortgage)
df["Interest Paid"] = -1 * npf.ipmt(interest/payments_year, df.index, years*payments_year,mortgage)
df["Principal Paid"] = -1 * npf.ppmt(interest/payments_year, df.index, years*payments_year,mortgage)
df["Ending Balance"] = 0
df.loc[1, "Ending Balance"] = mortgage - df.loc[1, "Principal Paid"]
df = df.round(2)
df['Ending Balance'] = mortgage - df['Principal Paid'].cumsum()
df[df['Ending Balance'] < 0] = 0  
return df

payments_year = 12

years = input("Write how many years \n")
years = float(years)

interest = input("Write the interest \n")
interest = float(interest)

loan = input("Write the amount you want to loan \n")
loan = float(loan)

start_date = input("What is the starte date, put it in YYYY-MM-DD format")
year, month, day = map(int, start_date.split("-"))
start_date = date(year, month, day)

fixed_rate_mortgage(interest, years, payments_year, loan, start_date)

【问题讨论】:

  • 什么是典型的输入值?对于我的输入 10、0.1、10000、2020-01-01,我得到了荒谬的“已支付本金”值
  • 我的代码是另一种语言的原始代码,所以我只是快速编辑成英文。这一定是为什么

标签: python pandas dataframe matplotlib


【解决方案1】:

假设fixed_rate_mortgage函数返回的df是正确的,下面的代码可以作为起点使用matplotlib绘制数据框。

import matplotlib.pyplot as plt

x1 = df['Principal Paid']
x2 = df['Interest Paid']
y = df['Payment Date']

plt.plot(x1,y,label="Principal Paid")
plt.plot(x2,y,label="Interest Paid")
plt.legend()
plt.show()

可以参考matplotlibdocumentation进一步自定义绘图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2019-06-18
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多