#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)