Example shows Python Multi Series Step Line Chart with null data. Library provides an option to connect adjacent non-null datapoints or to break whenever null datapoint is encountered. Below demo shows connecting adjacent non-null data. It also includes Django MVT source-code that you can try running locally.
- <!-- index.html -->
- {% load static %}
- <html>
- <head>
- <script>
- window.onload = function () {
- var chart= new CanvasJS.Chart("chartContainer", {
- animationEnabled: true,
- theme: "light2",
- title:{
- text: "Multi-Series StepLine Chart with Null Data"
- },
- axisX: {
- valueFormatString: "DD MMM"
- },
- axisY: {
- lineThickness: 1
- },
- axisY2: {
- minimum:25,
- lineThickness: 1
- },
- toolTip: {
- shared: true
- },
- data: [{
- type: "stepLine",
- connectNullData: true,
- xValueFormatString: "MMM",
- xValueType: "dateTime",
- dataPoints: {{ datapoints1|safe }}
- },{
- type: "stepLine",
- axisYType: "secondary",
- connectNullData: true,
- xValueFormatString: "MMM",
- xValueType: "dateTime",
- dataPoints: {{ datapoints2|safe }}
- }]
- });
- 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
- def index(request):
- datapoints1 = [
- { "x": 1646073000000, "y": 15.00 },
- { "x": 1648751400000, "y": 14.50 },
- { "x": 1651343400000, "y": 14.00 },
- { "x": 1654021800000, "y": 14.50 },
- { "x": 1656613800000, "y": 14.75 },
- { "x": 1659292200000, "y": "null" },
- { "x": 1661970600000, "y": 15.80 },
- { "x": 1664562600000, "y": 17.50 }
- ]
- datapoints2 = [
- { "x": 1646073000000, "y": 41.00 },
- { "x": 1648751400000, "y": 43.50 },
- { "x": 1651343400000, "y": 41.00 },
- { "x": 1654021800000, "y": "null" },
- { "x": 1656613800000, "y": 47.55 },
- { "x": 1659292200000, "y": 45.00 },
- { "x": 1661970600000, "y": 40.70 },
- { "x": 1664562600000, "y": 37.00 }
- ]
- return render(request, 'index.html', { "datapoints1": datapoints1, "datapoints2": datapoints2 })
connectNullData property lets you decide whether to break the line whenever null datapoint is encountered or to connect adjacent non-null datapoints. You can customize the dash-type of the line connecting adjacent non-null data using nullDataLineDashType property. Dataseries can be attached to either primary or secondary y-axis using axisYType property.