{% set stroke_width = 4 %}
{% set margin = 2 %}
{% macro path(data_points, vb_height) %}
{% for value, position in data_points %}
{% set x = (position * vb_width)+margin %}
{% set y = (vb_height - value)+margin %}
{% if loop.first %}M{{ x | int }} {{ y | int }}{% else %} L{{ x | int }} {{ y | int }}{% endif %}
{% endfor %}
{% endmacro %}
{% macro circles_with_skipped_points(data_points, color) %}
{% for i in range(data_points|length) %}
{% set current_value, current_position = data_points[i] %}
{% set prev_value = data_points[i - 1][0] if i > 0 else None %}
{% set next_value = data_points[i + 1][0] if i < data_points|length - 1 else None %}
{# Plot the circle only if the current value is different from both previous and next values #}
{% if next_value != prev_value or (next_value == prev_value and next_value != current_value) %}
{% set x=(current_position * vb_width) + margin %}
{% set y=(vb_height - current_value) + margin %}