import streamlit as st import numpy as np import pandas as pd import matplotlib.pyplot as plt st.set_option('deprecation.showPyplotGlobalUse', False) # Desactivar la advertencia st.title('App de prueba') tasa_variable = st.checkbox("¿La tasa de interés es variable?") if not tasa_variable: # Tasa no es variable y = st.number_input("Escribe la tasa de interés nominal (%):") A = st.number_input("Escribe la cantidad que ahorrarás ($):") T = st.number_input("Escribe cuántos meses quieres ver: ", step=1) z = np.arange(T+1) r_d = A * (1 + y/(12*100))**z r_c = A * np.exp(y*z/(12*100)) new_dict = {"Mes": z, "Retorno Discreto": r_d, "Retorno Continuo": r_c} df = pd.DataFrame(new_dict) df.columns = new_dict.keys() st.dataframe(df) st.write(f"En {T} meses tendrás $ {r_c[-1]}") # Gráfico fig, ax = plt.subplots() # Crear la figura explícitamente ax.plot(z, r_c) ax.set_title('Crecimiento de la inversión a lo largo de los meses') ax.set_xlabel('Mes') ax.set_ylabel('Valor de la inversión ($)') st.pyplot(fig) else: # Tasa es variable A = st.number_input("Escribe la cantidad que ahorrarás ($):") T = st.number_input("Escribe cuántos meses quieres ver: ", step=1) tasas = [] for i in range(int(T)+1): tasa = st.number_input(f"Tasa de interés para el mes {i} (%):", key=f"tasa_{i}") tasas.append(tasa) z = np.arange(T+1) r_d = A * (1 + np.array(tasas)/(12*100))**z r_c = A * np.exp(np.array(tasas)*z/(12*100)) new_dict = {"Mes": z, "Retorno Discreto": r_d, "Retorno Continuo": r_c} df = pd.DataFrame(new_dict) df.columns = new_dict.keys() st.dataframe(df) st.write(f"En {T} meses tendrás $ {r_c[-1]}") # Gráfico fig, ax = plt.subplots() ax.plot(z, r_c) ax.set_title('Crecimiento de la inversión a lo largo de los meses') ax.set_xlabel('Mes') ax.set_ylabel('Valor de la inversión ($)') st.pyplot(fig)