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)