javascript - 在 Chart.js 中映射数据(来自 getJSON 响应)
问题描述
我在将数据解析到图表时遇到问题。当然,这应该包含在我使用 getJSON 并且不想使用 ajax 的自动过程中,所以我有:
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLaels
});
var data = results.map(function (item) {
return item.updatedData;
});
console.log(labels)
console.log(data)
});
因此,当然标签和数据会以适当的方式记录到控制台,例如:
(5) [1,2,3,4,5]
但是如何在这部分使用它:
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
因为 index.html 会生成一个没有数据的空图表。如何以正确的方式映射标签和数据?
解决方案
labels
和data
变量是undefined
你$.getJSON
的done
callback
功能之外。
done
您可以在ie中调用一个函数,createChart(labels, data)
也可以将图表代码带入其中done
$.getJSON('file.json').done( function (results) {
var labels = [];
var data = [];
var labels = results.map(function (item) {
return item.updatedLabels
});
var data = results.map(function (item) {
return item.updatedData;
});
// Create chart
createChart(labels, data);
});
function createChart(labels, data) {
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'Example',
data: data,
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
}]
},
});
}
推荐阅读
- scala - 对排名进行分组并获取日期的最小值和最大值
- spring - 使用自定义配置时,在 Spring Cloud 负载均衡器中启用健康检查将不起作用
- discord.py - 将用户指定的消息发送到指定的频道
- jquery - 如何为 WP Query 添加自定义过滤器?
- javascript - Reactstrap 输入字段文本和占位符显示在输入中间
- python - 字典中特定列表索引中的最大值
- r - R-如何编辑重复记录?
- c# - 处理多个远程客户端的 UDP 服务器
- jq - jq 根据包含来自另一个字段的字段选择字段
- javascript - 部署到 Heroku 后,JavaScript 日期时间不同