
datas是JSON个数对象数组,对象中间有name属性和data属性
name属性是柱状图的标签,data属性是数据
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/Chart.js/3.9.1/chart.js"></script>
</head>
<body>
<div style="width: 400px; height: 200px;">
<canvas id="myChart"></canvas>
</div>
<script>
//柱状图数据
var datas = [
{"name":"java","data":95},
{"name":"MySQL","data":88},
{"name":"C","data":80},
{"name":"WEB","data":90}
];
//JSON格式对象数组
show("myChart",datas,"考试成绩");
//绘制柱状图
function show(canvasId,datas,title)
{
const labels = []; // 设置标签
datas.forEach(function(item){
labels.push(item.name);
});
var values = [];
datas.forEach(function(item){
values.push(item.data);
});
var bgcolors = [];
datas.forEach(function(item){
bgcolors.push(createColor());
});
var borderColors = [];
datas.forEach(function(item){
borderColors.push(createColor());
});
const data = {
labels: labels,
datasets: [{
label: title,
data: values,
backgroundColor: bgcolors, // 设置每个柱形图的背景颜色
borderColor: borderColors, //设置每个柱形图边框线条颜色
borderWidth: 1 // 设置线条宽度
}]
};
const config = {
type: 'bar', // 设置图表类型
data: data, // 设置数据集
options: {
scales: {
y: {
beginAtZero: true // 设置 y 轴从 0 开始
}
}
},
};
const ctx = document.getElementById(canvasId);
const myChart = new Chart(ctx, config);
}
//生成随机颜色
function createColor()
{
var color = [];
for(var i=0;i<3;i++)
{
color.push(parseInt(100+Math.random()*156));
}
return "rgb("+color.join(",")+")";
}
</script>
</body>
</html>

0条评论
点击登录参与评论