{#-----------------constants---------------------------#} {% set barGap = 24 %} {% set barThickness = 96 %} {% set barToValue = 6 %} {% set arrowHead = 6 %} {% set graphPadding = 48 %} {#------calculate values from template elements--------#} {% set values = elementsToValues(elements, 'tx-..-(\d+)-value') %} {% set n = values|length %} {% set nbRows = elementsToValues(elements, 'tx-..-(\d)-value')|length %} {% set nbCols = n / nbRows %} {% set maxValue = values | max %} {% set height = 240 %} {% set width = barGap + (barThickness + barGap) * nbCols %} {# bars #} {% set bar_ys = fill_array(nbCols, height) %} {% for j in range(nbRows) %} {% for i in range(nbCols) %} {% set x = barGap + (barGap + barThickness) * i %} {% set index = i * nbRows + j %} {% set barHeight = height * values[index] / 100 | round(3) %} {% set barY = bar_ys[i] - barHeight %} {{ update_array(bar_ys, i, barY) }} {% endfor %} {% endfor %} {# values #} {% set bar_ys = fill_array(nbCols, height) %} {% for j in range(nbRows) %} {% for i in range(nbCols) %} {% set x = barGap + (barGap + barThickness) * i %} {% set index = i * nbRows + j %} {% set labelIndex = i * 10 + j + 1 %} {% set barHeight = height * values[index] / 100 | round(3) %} {% set barY = bar_ys[i] - barHeight %} {{ update_array(bar_ys, i, barY) }} {% endfor %} {% endfor %} {# labels #} {%for i in range(nbCols) %} {% set index = i * 10 %} {% set textWidth = barGap + barThickness - 2 %} {% set x = barGap + barThickness/2 + textWidth/2 + (barGap + barThickness) * i %} {% endfor %} {# legend #} {%for j in range(nbRows) %} {% set index = j * 10 %} {% set y = (nbRows - j - 1) * 48 %} {% endfor %} {%for j in range(nbRows) %} {% set index = j * 10 %} {% set y = (nbRows - j - 1) * 48 %} {% endfor %} {# axes #}