Candlestick Chart hay biểu đồ/đồ thị hình nến được tạo bằng JavaScript trên CanvasJS là một cột với các đường thẳng đứng đại diện cho những giá trị mở, cao thấp & kín của một điểm dữ liệu.
Biểu đồ dạng nến cung cấp hỗ trợ trực quan nhằm giúp người dùng dễ dàng đưa ra quyết định khi giao dịch chứng khoán, đổi ngoại tệ… Biểu đồ cây nến đẹp, có thể tương tác và hỗ trợ hoạt ảnh, thu phóng, xoay và ghi chú thích.
Ví dụ bên dưới minh họa một mẫu biểu đồ cây nến được tạo bằng JavaScript kèm mã nguồn HTML mà bạn có thể chỉnh sửa trong trình duyệt hoặc lưu về máy chạy nội bộ.
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var dataPoints = [];
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light2", // Bạn có thể thay bằng "light1", "light2", "dark1", "dark2"
exportEnabled: true,
title: {
text: "Giá cổ phiếu của Netflix năm 2016"
},
subtitles: [{
text: "Trung bình hàng tuần"
}],
axisX: {
interval: 1,
valueFormatString: "MMM"
},
axisY: {
prefix: "$",
title: "Giá"
},
toolTip: {
content: "Date: {x}<br /><strong>Price:</strong><br />Open: {y[0]}, Close: {y[3]}<br />High: {y[1]}, Low: {y[2]}"
},
data: [{
type: "candlestick",
yValueFormatString: "$##0.00",
dataPoints: dataPoints
}]
});
$.get("https://canvasjs.com/data/gallery/javascript/netflix-stock-price.csv", getDataPointsFromCSV);
function getDataPointsFromCSV(csv) {
var csvLines = points = [];
csvLines = csv.split(/[\r?\n|\r|\n]+/);
for (var i = 0; i < csvLines.length; i++) {
if (csvLines[i].length > 0) {
points = csvLines[i].split(",");
dataPoints.push({
x: new Date(
parseInt(points[0].split("-")[0]),
parseInt(points[0].split("-")[1]),
parseInt(points[0].split("-")[2])
),
y: [
parseFloat(points[1]),
parseFloat(points[2]),
parseFloat(points[3]),
parseFloat(points[4])
]
});
}
}
chart.render();
}
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
</body>
</html>
Nguồn: CanvasJS
Tùy chỉnh biểu đồ
Bạn có thể thay đổi màu sắc khác nhau cho thuộc tính risingColor
hoặc Color
để biểu thị mức tăng hoặc giảm của giá cả.
Một số lựa chọn tùy biến thường được dùng khác bao gồm zoomEnabled
, animationEnabled
…
Source: https://quantrimang.com/hoc/code-javascript-tao-bieu-do-do-thi-hinh-nen-196384