Spaces:
Sleeping
Sleeping
File size: 1,421 Bytes
78e7bff |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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)
|