Code JavaScript tạo biểu đồ/đồ thị dạng phễu

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.

Mẫu biểu đồ JavaScript dạng phễu

<!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ắc
  • indexLabelPlacement: Đặt nhãn chỉ mục
  • fillOpacity: Độ mờ khi điền thông tin
  • ...
Thứ Năm, 16/03/2023 14:25
51 👨 284
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖
    ❖ JavaScript
    Chia sẻ
    Chia sẻ FacebookChia sẻ Twitter
    Đóng