Spaces:
Sleeping
Sleeping
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) | |