I’m not understanding what’s wrong here in create_spend_chart:
def create_spend_chart(categories):
categories_withdrawals = [[transact['amount'] for transact in category.ledger if transact['amount'] < 0] for category in categories]
total_withdrawals = [sum(withdrawals) for withdrawals in categories_withdrawals]
total_balances = [x.get_balance() - y for x,y in zip(categories, total_withdrawals)]
percentage_spent = [abs(x) / y for x, y in zip(total_withdrawals, total_balances)]
#print(total_balances)
#print(total_withdrawals)
#print(percentage_spent)
x = ["Percentage spent by category"]
# constructing labels of bar chart
for i in range(110,0,-10):
x.append((str(i-10)+'|').rjust(4))
# filling the bar chart according to percentage spent
for i in range(1,12):
for j in range(len(categories)):
if percentage_spent[j] * 100 > (11-i)*10:
x[i] += ' o '
x.append(' ' + '--'*(2 + len(categories)))
# constructing category name
#list of categories names
names = [name.category_name for name in categories]
vertical_names = zip_longest(*names, fillvalue = ' ')
for row in vertical_names:
x.append(' ' + ' '.join(list(row)))
print(x[0])
for row in x[1:]:
print(row)
Here’s the link:
Thanks in advance for any help