javascript - Chart.js 图表位置变量为 0,即使值大于 0
问题描述
我试图通过将值分配给将在图表数据中引用的数组来显示图表。
无论出于何种原因,图表将值注册到数组中,但未在图表中正确定位该值。我认为这与变量的类型有关,所以我尝试强制转换和解析无济于事。
我能做些什么来解决这个问题?
Edit1 - 我可以使用 JSON 变量进行加减运算,因此必须是其他内容,而不是类型问题。
这是我的测试脚本
var applied = new Array();
month = ("0" + (date.getMonth() + 1)).slice(-2);
applied.push(2);
applied.push(23);
applied.push(21);
applied.push(2);
applied.push(2);
applied.push(2);
applied.push(2);
applied.push(2);
applied.push(2);
applied.push(2);
var json = $.get("../rest/hello?from=01/"+month+"/2018&to=31/"+month+"/2018", function (data){
applied.push(parseInt(data);
console.log(applied[0]);
});
这是我的图表脚本
const months = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
var chartlabels = new Array();
for(var i = 11; i > -1; i--){
var date = new Date();
date.setMonth(date.getMonth()-i)
chartlabels.push(months[date.getMonth()]);
}
var ctx = document.getElementById("approvedtoemployed");
var myChart = new Chart(ctx, {
type : 'line',
data : {
labels: chartlabels,
datasets : [ {
label : '# of approved',
data : applied,
backgroundColor : [
'rgba(255, 99, 132, 0)'
],
borderColor : [
'rgba(255, 99, 132, 1)',
],
borderWidth : 1
}]
},
options : {
responsive : false,
maintainAspectRatio : false,
legend: {
display: true,
position: 'bottom',
boxWidth: '15'
},
}
});
解决方案
问题必须在于 JSON 数据的加载方式和时间。
图表必须在$.get
方法内构建,一旦完成,图表就会正确映射变量。
推荐阅读
- java - 移动椭圆和矩形(多部分)的碰撞检测问题
- excel - 需要 VBA 帮助的剪切和粘贴循环
- android - notifyitemchanged(position) 第一次刷新列表中的项目,之后不再刷新
- unity3d - 如何知道我何时到达轮换结束
- java - 从方法返回一个迭代器
- javascript - 如何使用 JavaScript 更改烧瓶表单输出
- sql - 当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。- SQL 服务器
- acumatica - 用户在对话框中确认后插入 SO 行
- python - Python:获取具有> = 3个奇数“递归”的列表列表的数量
- javascript - 如何在 React Native 中转换日期格式?