Spaces:
Runtime error
Runtime error
#Importamos las librerías | |
import streamlit as st | |
import numpy as np | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
# Titulo de la app | |
st.title("Pagando mi seguro con ahorros 💼") | |
# Crear los diferntes inputs (Ahorro, tasa, tiempo) | |
Ahorro = st.number_input("Cuánto quieres ahorrar al mes?") | |
tasa = st.number_input("Cual es la tasa?") | |
tiempo = int(st.number_input("Por cuántos meses quieres ahorrar?", step = 1)) | |
# Crear las operaciones a realizar | |
Pn_d = (Ahorro * 12 / tasa) * (1 - (1 / (1 + tasa/12)**tiempo)) | |
# Pn_c = (Ahorro / (np.exp(tasa/12) - 1)) * (1 - np.exp(- tasa * tiempo / 12)) | |
# Que se impriman los valores | |
st.write(f"El valor de P es {Pn_d:,.2f} con el modelo discreto") | |
# st.write(f"The value of P is {Pn_c:,.2f} with continuous model") | |
# Draw the plot | |
cf_list = [-Pn_d] + [Ahorro] * tiempo | |
cf_dict = pd.DataFrame({"cashflows": cf_list}).astype(float) | |
cf_df = st.dataframe(cf_dict.T) | |
# Gráficamos | |
colors = ["seagreen" if cf > 0 else "orchid" for cf in cf_dict.cashflows] | |
plt.scatter(range(tiempo + 1), cf_dict.cashflows, c=colors) | |
plt.title("Diagrama del flujo de dinero") | |
plt.xlabel("Periodo") | |
plt.ylabel("flujo de dinero") | |
for i, cf in enumerate(cf_dict.cashflows): | |
plt.annotate( | |
f"{cf:,.2f}", | |
(i, cf), | |
textcoords="offset points", | |
xytext=(0, tiempo), | |
ha="center", | |
) | |
st.pyplot(plt) |