Hi, the simple answer is gnc:monetary/ would divide two monetary amounts and the result is not a monetary but a simple ratio.
(define (gnc:monetary/ a b) (/ (gnc:gnc-monetary-amount a) (gnc:gnc-monetary-amount b))) This would do the trick. Afterwards, for the chart amounts you can use the unit-less ratio directly. Do feel free to attach your work and we'll help you complete it. On Mon, 29 Mar 2021, 8:00 pm Evelyn Yamanaka, <evelyn.yaman...@gmail.com> wrote: > I'm trying to create a stacked bar chart graph where the total for > each period on the x-axis is 100%, so you can easily see trends in > changes in the proportion of individual accounts relative to the > total. > > I'm using category-barchart.scm as a starting point, where account > balances are stored as a list of pairs (<account> <balance-list>) in > the variable all-data, and <balance-list> is a list of gnc:monetary > values (or something like that?) for each period on the x-axis. > > I can get totals for each period with: > > (let ((totals > (map > (lambda (l) (apply gnc:monetary+ l)) > (apply zip (map cadr all-data))))) > (set! all-data-totals (list "Total" totals))) > > However, I'm not sure how to divide gnc:monetary values by other > gnc:monetary values. I know I can add with: > > (for-each > (lambda (d) > (let ((new-data (map gnc:monetary+ (cadr d) (cadr d)))) > (set! all-data-new > (append all-data-new > (list (car d) new-data))))) > all-data) > > But I'm not sure how to divide. Something like: > (map gnc:monetary/ (cadr all-data-totals) (cadr d)) > > Of course, "gnc:monetary/" is undefined, and simply using "/" does not > work either. Is there any way to do this? Any help would be appreciated. > > Thanks, > E > _______________________________________________ > gnucash-user mailing list > gnucash-u...@gnucash.org > To update your subscription preferences or to unsubscribe: > https://lists.gnucash.org/mailman/listinfo/gnucash-user > If you are using Nabble or Gmane, please see > https://wiki.gnucash.org/wiki/Mailing_Lists for more information. > ----- > Please remember to CC this list on all your replies. > You can do this by using Reply-To-List or Reply-All. > _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel