Hola a todos, hoy vamos a construir una versión 2.0 de nuestra tabla de amortización de préstamos.
Con la ayuda del paquete numpy y de matplotlib incluiremos en nuestro script un par de arrays para guardar los datos relacionados con la porción correspondiente a los pagos asociados al capital y otro para extraer la porción de los intereses.
Teniendo separada esta información, la utilizaremos como un argumento en matplotlib para realizar una gráfica de barras apiladas como la que se puede ver en este ejemplo:
El código fuente modificado, nos queda de la siguiente manera:
#Calculando una tabla de amortización de un préstamo | |
import numpy_financial as npf | |
import numpy as np | |
import tabulate as tab | |
import matplotlib.pyplot as plt | |
capital = 1000000 | |
tasa = 0.03 | |
plazo = 36 | |
cuota = round(npf.pmt(tasa, plazo, -capital, 0), 0) | |
datos = [] | |
datos_num = [] | |
saldo = capital | |
tot_int = 0 | |
for i in range(1, plazo+1): | |
pago_capital = npf.ppmt(tasa, i, plazo, -capital, 0) | |
pago_int = cuota - pago_capital | |
tot_int += pago_int | |
saldo -= pago_capital | |
linea = [i, format(cuota, '0,.0f'), format(pago_capital, '0,.0f'), format(pago_int, '0,.0f'), format(saldo, '0,.0f')] | |
datos.append(linea) | |
linea_num = [i, cuota, pago_capital, pago_int, saldo] | |
datos_num.append(linea_num) | |
print(tab.tabulate(datos, headers=['Periodo', 'Cuota', 'Capital', 'Intereses', 'saldo'], tablefmt='psql')) | |
print('Valor del préstamo:', format(capital, '0,.0f')) | |
print('Total intereses a pagar:', format(tot_int, '0,.0f')) | |
print('\n') | |
datos_num = np.array(datos_num) | |
s_cap = datos_num[:,2] | |
s_int = datos_num[:,3] | |
s_per = datos_num[:,0] | |
fig, ax = plt.subplots() | |
ax.bar(s_per, s_cap, label='capital') | |
ax.bar(s_per, s_int, label='intereses', bottom=s_cap) | |
ax.set_title('Composicion Cuotas Periodicas') | |
ax.legend(loc=4) | |
plt.show() |
La salida de esta nueva tabla de amortización nos va a mostrar la tabla que ya habíamos visto antes, un mensaje con el valor total del préstamo y del total de intereses a pagar y por último la gráfica de barras con la porción de capital e intereses.
Las barras naranjas, conforman el pago de intereses en cada una de las cuotas, mientras las azules representa el abono a capital en cada periodo:
No hay comentarios.:
Publicar un comentario