cashflow / app.py
Skkinycalvs's picture
Update app.py
41b0f2b verified
raw
history blame contribute delete
No virus
1.34 kB
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
# Función para calcular el VPN
def calcular_vpn(costos, tasa_descuento):
vpn = 0
for t, flujo in enumerate(costos):
vpn += flujo / ((1 + tasa_descuento) ** (t + 1))
return vpn
# Calcular el VPN para cada proyecto
vpns = {proyecto: calcular_vpn(flujos, tasa_descuento) for proyecto, flujos in costos.items()}
# Imprimir los resultados
for proyecto, vpn in vpns.items():
print(f"VPN del Proyecto {proyecto}: {vpn:.2f}")
# Calcular el promedio de los VPN
promedio_vpn = sum(vpns.values()) / len(vpns)
# Imprimir el promedio
print(f"Promedio de los VPN: {promedio_vpn:.2f}")
# Button to calculate PV
if st.button('Calculate Present Value'):
if len(cashflows) != num_years:
st.warning(f"Please enter {num_years} cashflows.")
else:
present_value = calculate_present_value(cashflows, discount_rate)
st.success(f'The Present Value is: ${present_value:,.2f}')
# Plot cashflow diagram
plt.figure(figsize=(10, 6))
colors = ['green' if cf > 0 else 'red' for cf in cashflows]
plt.bar(range(1, num_years + 1), cashflows, color=colors)
plt.title('Cashflow Diagram')
plt.xlabel('Year')
plt.ylabel('Cashflow')
plt.grid(True)
st.pyplot(plt)