You can create combination of any Charts that have same orientation of X and Y axis. Creating combination of different Graphs is very similar to creating multi series graph. The given example combines jQuery Column, Line & Area Chart. It also contains source code that you can edit in-browser or save to run locally.
window.onload = function () {
var options = {
animationEnabled: true,
theme: "light2",
title: {
text: "Monthly Sales Data"
},
axisX: {
valueFormatString: "MMM"
},
axisY: {
prefix: "$",
labelFormatter: addSymbols
},
toolTip: {
shared: true
},
legend: {
cursor: "pointer",
itemclick: toggleDataSeries
},
data: [
{
type: "column",
name: "Actual Sales",
showInLegend: true,
xValueFormatString: "MMMM YYYY",
yValueFormatString: "$#,##0",
dataPoints: [
{ x: new Date(2017, 0), y: 20000 },
{ x: new Date(2017, 1), y: 25000 },
{ x: new Date(2017, 2), y: 30000 },
{ x: new Date(2017, 3), y: 70000, indexLabel: "High Renewals" },
{ x: new Date(2017, 4), y: 40000 },
{ x: new Date(2017, 5), y: 60000 },
{ x: new Date(2017, 6), y: 55000 },
{ x: new Date(2017, 7), y: 33000 },
{ x: new Date(2017, 8), y: 45000 },
{ x: new Date(2017, 9), y: 30000 },
{ x: new Date(2017, 10), y: 50000 },
{ x: new Date(2017, 11), y: 35000 }
]
},
{
type: "line",
name: "Expected Sales",
showInLegend: true,
yValueFormatString: "$#,##0",
dataPoints: [
{ x: new Date(2017, 0), y: 32000 },
{ x: new Date(2017, 1), y: 37000 },
{ x: new Date(2017, 2), y: 40000 },
{ x: new Date(2017, 3), y: 52000 },
{ x: new Date(2017, 4), y: 45000 },
{ x: new Date(2017, 5), y: 47000 },
{ x: new Date(2017, 6), y: 42000 },
{ x: new Date(2017, 7), y: 43000 },
{ x: new Date(2017, 8), y: 41000 },
{ x: new Date(2017, 9), y: 42000 },
{ x: new Date(2017, 10), y: 50000 },
{ x: new Date(2017, 11), y: 45000 }
]
},
{
type: "area",
name: "Profit",
markerBorderColor: "white",
markerBorderThickness: 2,
showInLegend: true,
yValueFormatString: "$#,##0",
dataPoints: [
{ x: new Date(2017, 0), y: 4000 },
{ x: new Date(2017, 1), y: 7000 },
{ x: new Date(2017, 2), y: 12000 },
{ x: new Date(2017, 3), y: 40000 },
{ x: new Date(2017, 4), y: 20000 },
{ x: new Date(2017, 5), y: 35000 },
{ x: new Date(2017, 6), y: 33000 },
{ x: new Date(2017, 7), y: 20000 },
{ x: new Date(2017, 8), y: 25000 },
{ x: new Date(2017, 9), y: 16000 },
{ x: new Date(2017, 10), y: 29000 },
{ x: new Date(2017, 11), y: 20000 }
]
}]
};
$("#chartContainer").CanvasJSChart(options);
function addSymbols(e) {
var suffixes = ["", "K", "M", "B"];
var order = Math.max(Math.floor(Math.log(Math.abs(e.value)) / Math.log(1000)), 0);
if (order > suffixes.length - 1)
order = suffixes.length - 1;
var suffix = suffixes[order];
return CanvasJS.formatNumber(e.value / Math.pow(1000, order)) + suffix;
}
function toggleDataSeries(e) {
if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
e.chart.render();
}
}
You can control the visibility of a data-series by setting visible property. Other frequently used customization options are color, showInLegend, legendText etc.
Note For step by step instructions, follow our jQuery Integration Tutorial