如何在画布 js 中循环以制作多系列图表
How to loop in canvas js to make a multiple series chart?
我正在尝试使用 Canvasjs 制作多系列图表。我的问题是我无法在数据点内进行循环,所以我对所有内容进行了硬编码。有没有办法使用循环?
以下是 Json 数据:
[{"name":"Grace","label":"A","y":0},{"name":"Grace","label":"B","y":3},{"name":"Grace","label":"C","y":0},{"name":"Grace","label":"D","y":0},{"name":"Mirriam","label":"A","y":0},{"name":"Mirriam","label":"B","y":5},{"name":"Mirriam","label":"C","y":2},{"name":"Mirriam","label":"D","y":0},{"name":"Mar","label":"A","y":0},{"name":"Mar","label":"B","y":5},{"name":"Mar","label":"C","y":2},{"name":"Mar","label":"D","y":0},{"name":"Jejomar","label":"A","y":0},{"name":"Jejomar","label":"B","y":5},{"name":"Jejomar","label":"C","y":2},{"name":"Jejomar","label":"D","y":0}]
这是我的代码:
<script type='text/javascript'>
$(document).ready(function () {
$.getJSON('data.php', function (result) {
var chart1 = new CanvasJS.Chart('Container', {
title:{
text: 'Results of Survey',
},
data: [
{
type: 'column',
dataPoints: [
{ label:"A", y: result[0].y},
{ label:"B", y: result[1].y},
{ label:"C", y: result[2].y},
{ label:"D", y: result[3].y},
]
},{
type: 'column',
dataPoints: [
{ label:"A", y: result[4].y},
{ label:"B", y: result[5].y},
{ label:"C", y: result[6].y},
{ label:"D", y: result[7].y},
]
},{
type: 'column',
dataPoints: [
{ label:"A", y: result[8].y},
{ label:"B", y: result[9].y},
{ label:"C", y: result[10].y},
{ label:"D", y: result[11].y},
]
},{
type: 'column',
dataPoints: [
{ label:"A", y: result[12].y},
{ label:"B", y: result[13].y},
{ label:"C", y: result[14].y},
{ label:"D", y: result[15].y},
]
}
]
});
chart1.render();
});
});
</script>
</head>
<body>
<div id="Container" style="width: 800px; height: 380px;"></div>
</body>
</html>
这应该有效:
var persons = {}
json.forEach(d => {
if (!(d.name in persons)) persons[d.name] = []
persons[d.name].push({label: d.label, y: d.y})
})
var data = Object.keys(persons).map(name => {
return {type: 'column', dataPoints: persons[name]}
})
首先,我们获取所有数据点并按名称对它们进行分组。然后,我们通过映射人员姓名来构建最终的数据数组。
- jQuery:循环一个具有不同超时值的循环
- 在循环中分配json值时,值被覆盖
- 如何在下面的ES6循环中获得前面的文本
- 为什么“;未定义的“;在JavaScript中结束循环
- Javascript循环不会自我更新
- 如何使用jquery处理php循环通过元素
- 而循环只设置php中输入字段中的第一个值
- 循环遍历数组中的特定索引
- Javascript返回值只在循环中返回一次
- 按照选项卡索引的顺序循环一个jQuery选择
- 循环遍历以数组为值的Javascript对象
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 循环结束/推送到数组之前在页面上呈现EJS
- 循环比赛位置算法
- 如何在画布 js 中循环以制作多系列图表
- 异步每个系列如何在完成循环后传递 var
- 循环数组并设置系列对象jVectormap的值
- highchart系列在php的while循环中给出错误
- Javascript Highcharts:系列数据标签格式化程序函数,用于循环数据,而不是格式化数组中的所有数据