Python Range Spline Area Charts are similar to Range Area Chart where high-low values are plotted over a period of time except that they are enclosed with smooth lines. Example shows Python Range Spline Area Chart along with Django source-code that you can run locally.
<!-- index.html --> {% load static %} <html> <head> <title>CanvasJS Python Charts</title> <script> window.onload = function () { var data = {{ btc_weekly_data|safe }}; var dataPoints = []; for(var i=0; i<data.length; i++) { dataPoints.push({ x: new Date(data[i].date), y: [data[i].low, data[i].high] }); } var chart = new CanvasJS.Chart("chartContainer", { animationEnabled: true, title: { text: "BTC Price" }, axisY: { title: "Price in USD", prefix: "$" }, data: [{ type: "rangeSplineArea", yValueFormatString: "$#,###", toolTipContent: "{x}: <br/> High: {y[0]} <br/> Low: {y[1]}", dataPoints: dataPoints }] }); chart.render(); } </script> </head> <body> <div id="chartContainer" style="width: 100%; height: 360px;"></div> <script src="{% static 'canvasjs.min.js' %}"></script> </body> </html>
from django.shortcuts import render import json import os def index(request): dir_path = os.path.dirname(os.path.realpath(__file__)) data = open(dir_path + "/static/btc-usd-weekly-2021.json").read() btc_weekly_data = json.loads(data) return render(request, "index.html", { "btc_weekly_data": btc_weekly_data})
Interval of axis labels, ticks, grid-lines can be controlled by setting interval property. You can club it with intervalType to define the unit of the interval. For example: Setting interval to 6 & intervalType to month shows labels at every 6 months.