JavaScript Funnel Chart - Biểu đồ phễu được tạo bằng JavaScript trong thư viện CanvasJS thường dùng cho mục đích trình bày nhiều giai đoạn trong một quá trình. Về cơ bản, nó bao gồm hai phần: phần cao hơn là đầu (hay đế), phần thấp hơn là cổ. Chúng thường được dùng để minh họa quá trình bán hàng.
Dạng biểu đồ phễu trên CanvasJS có tính tương tác, đáp ứng, tương thích chéo nền tảng, hỗ trợ hiệu ứng & xuất dưới dạng ảnh.
Ví dụ bên dưới minh họa một mẫu biểu đồ JavaScript dạng phễu. Bạn sẽ có phần mã nguồn chi tiết ở bên dưới để chỉnh sửa như ý muốn.
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light2", //"light1", "dark1", "dark2"
title:{
text: "Phân tích bán hàng - Tháng 6, 2016"
},
data: [{
type: "funnel",
indexLabelPlacement: "inside",
indexLabelFontColor: "white",
toolTipContent: "<b>{label}</b>: {y} <b>({percentage}%)</b>",
indexLabel: "{label} ({percentage}%)",
dataPoints: [
{ y: 1400, label: "Khách hàng tiềm năng" },
{ y: 1212, label: "Giao tiếp ban đầu" },
{ y: 1080, label: "Đánh giá khách hàng" },
{ y: 665, label: "Đàm phán" },
{ y: 578, label: "Nhận đơn hàng" },
{ y: 549, label: "Thanh toán" }
]
}]
});
calculatePercentage();
chart.render();
function calculatePercentage() {
var dataPoint = chart.options.data[0].dataPoints;
var total = dataPoint[0].y;
for(var i = 0; i < dataPoint.length; i++) {
if(i == 0) {
chart.options.data[0].dataPoints[i].percentage = 100;
} else {
chart.options.data[0].dataPoints[i].percentage = ((dataPoint[i].y / total) * 100).toFixed(2);
}
}
}
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>
Nguồn: CanvasJS
Tùy chỉnh biểu đồ/đồ thị
Bạn có thể thay đổi một số thuộc tính trong code JavaScript để tạo biểu đồ/đồ thị phễu như ý muốn:
neckWidth
& neckHeight
: Độ cao và rộng của phần cổ phễu.valueRepresents
: Đại diện giá trịcolor
: Màu sắcindexLabelPlacement
: Đặt nhãn chỉ mụcfillOpacity
: Độ mờ khi điền thông tin- ...
Source: https://quantrimang.com/hoc/code-javascript-tao-bieu-do-do-thi-dang-pheu-195996