Example shows Python Dashed Line Chart where the connecting line between the datapoints are drawn with a dashed line. Library also supports other line types like dotted, solid, long-dash, etc. Below demo 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", {
exportEnabled: true,
animationEnabled: true,
theme: "light1",
title: {
text: "Analysis of AdWords Click"
},
subtitles: [{
text: "Click Legend to Hide or Unhide Data Series"
}],
axisY: {
title: "Cost Per Click",
titleFontColor: "#4F81BC",
lineColor: "#4F81BC",
labelFontColor: "#4F81BC",
tickColor: "#4F81BC",
includeZero: true,
prefix: "$"
},
axisY2: {
title: "Clicks",
titleFontColor: "#C0504E",
lineColor: "#C0504E",
labelFontColor: "#C0504E",
tickColor: "#C0504E"
},
toolTip: {
shared: true
},
legend: {
cursor: "pointer",
itemclick: toggleDataSeries
},
data: [{
type: "spline",
name: "Cost Per Click",
lineDashType: "dot",
showInLegend: true,
yValueFormatString: "$#,##0.00",
dataPoints: {{ cost_per_click_data|safe }}
},{
type: "spline",
lineDashType: "dashDot",
name: "Click",
axisYType: "secondary",
showInLegend: true,
dataPoints: {{ click_data|safe }}
}]
});
chart.render();
function toggleDataSeries(e) {
if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
e.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):
cost_per_click_data = [
{ "label": "Oct 1", "y": 2.2984482 },
{ "label": "Oct 2", "y": 1.6430263 },
{ "label": "Oct 3", "y": 1.7507812 },
{ "label": "Oct 4", "y": 1.5731722 },
{ "label": "Oct 5", "y": 1.1773170 },
{ "label": "Oct 6", "y": 1.2797851 },
{ "label": "Oct 7", "y": 1.4864893 },
{ "label": "Oct 8", "y": 1.7770796 },
{ "label": "Oct 9", "y": 1.4806903 },
{ "label": "Oct 10", "y": 1.5376530 }
]
click_data = [
{ "label": "Oct 1", "y": 15 },
{ "label": "Oct 2", "y": 57 },
{ "label": "Oct 3", "y": 96 },
{ "label": "Oct 4", "y": 119 },
{ "label": "Oct 5", "y": 144 },
{ "label": "Oct 6", "y": 128 },
{ "label": "Oct 7", "y": 47 },
{ "label": "Oct 8", "y": 57 },
{ "label": "Oct 9", "y": 120 },
{ "label": "Oct 10", "y": 123 }
]
return render(request, 'index.html', { "cost_per_click_data": cost_per_click_data, "click_data": click_data })
You can choose between different types of line using lineDashType property. You can also customize the color & thickness of the line by setting lineColor & lineThickness properties.