act_2 / app.py
Elizabethcaar's picture
Create app.py
78e7bff verified
raw
history blame contribute delete
No virus
1.42 kB
import streamlit as st
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# T铆tulo de la aplicaci贸n
st.title("Simulador de Ahorros para Seguros")
# Solicitar datos al usuario
cantidad_deseada = st.slider("Selecciona la cantidad mensual deseada ($)", 100, 5000, 1000, 100)
tasa_de_interes = st.slider("Tasa de inter茅s anual (%)", 1.0, 12.0, 5.0, 0.5)
periodo_en_meses = st.slider("Periodo de tiempo (en meses)", 12, 120, 24)
# C谩lculo del dep贸sito inicial necesario
tasa_mensual = tasa_de_interes / 12 / 100
deposito_necesario = (cantidad_deseada * 12 / tasa_mensual) * (1 - (1 / (1 + tasa_mensual)**periodo_en_meses))
# Mostrar el resultado del c谩lculo
st.subheader("Resultados:")
st.write(f"Dep贸sito inicial necesario: ${deposito_necesario:,.2f}")
# Preparaci贸n de los datos para el gr谩fico
datos_grafico = pd.DataFrame({
"Mes": range(periodo_en_meses + 1),
"Flujo de Caja": [-deposito_necesario] + [cantidad_deseada] * periodo_en_meses
})
# Configuraci贸n del gr谩fico de puntos
fig, ax = plt.subplots()
ax.scatter(datos_grafico["Mes"], datos_grafico["Flujo de Caja"], color=['red'] + ['green'] * periodo_en_meses)
ax.set_title("Diagrama de Flujo de Caja")
ax.set_xlabel("Mes")
ax.set_ylabel("Flujo de Caja ($)")
for i, v in enumerate(datos_grafico["Flujo de Caja"]):
ax.annotate(f"{v:,.2f}", (i, v), textcoords="offset points", xytext=(0,10), ha='center')
st.pyplot(fig)