Javascript 如何在chartjs上实现动态数据?
我需要您的帮助来学习如何将数据从json文件动态地实现到Chartjs。我需要动态填充的字段是Javascript 如何在chartjs上实现动态数据?,javascript,json,charts,chart.js,Javascript,Json,Charts,Chart.js,我需要您的帮助来学习如何将数据从json文件动态地实现到Chartjs。我需要动态填充的字段是标签和数据 JSON File <<< [ { "EFICAZ_TAB_ITEM_ID":1, "EFICAZ_PERCENTS":99 }, { "EFICAZ_TAB_ITEM_ID":2, "EFICAZ_PERCENTS":99 }, { "EFICAZ_TAB_ITEM_ID":3,
标签
和数据
JSON File <<<
[
{
"EFICAZ_TAB_ITEM_ID":1,
"EFICAZ_PERCENTS":99
},
{
"EFICAZ_TAB_ITEM_ID":2,
"EFICAZ_PERCENTS":99
},
{
"EFICAZ_TAB_ITEM_ID":3,
"EFICAZ_PERCENTS":99
}
]
CHARTJS <<<
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'line',
// The data for our dataset
data: {
labels: [???],
datasets: [{
label: "My First dataset",
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
data: [???],
}]
},
// Configuration options go here
options: {}
});
JSON文件我使用了$.ajax()
获取JSON数据,并将数据保存在两个数组中,然后您可以将这些数组用于图表标签和数据。希望这有帮助
var lbl = [];
var dta = [];
$.ajax({
url: "test.json",
dataType: 'json',
async: false,
success: function(data) {
$.each(data, function(i, field){
lbl.push(field.EFICAZ_TAB_ITEM_ID
);
dta.push(field.EFICAZ_PERCENTS);
});
}
});
$.getJSON("test.json", function(result){
$.each(result, function(i, field){
lbl.push(field.EFICAZ_TAB_ITEM_ID
);
dta.push(field.EFICAZ_PERCENTS);
});
});
var ctx = document.getElementById("myCanvas").getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'line',
// The data for our dataset
data: {
labels: lbl,
datasets: [{
label: "My First dataset",
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
data: dta,
}]
},
// Configuration options go here
options: {}
});
我使用$.ajax()
获取JSON数据,并将数据保存在两个数组中,然后您可以将这些数组用于图表标签和数据。希望这有帮助
var lbl = [];
var dta = [];
$.ajax({
url: "test.json",
dataType: 'json',
async: false,
success: function(data) {
$.each(data, function(i, field){
lbl.push(field.EFICAZ_TAB_ITEM_ID
);
dta.push(field.EFICAZ_PERCENTS);
});
}
});
$.getJSON("test.json", function(result){
$.each(result, function(i, field){
lbl.push(field.EFICAZ_TAB_ITEM_ID
);
dta.push(field.EFICAZ_PERCENTS);
});
});
var ctx = document.getElementById("myCanvas").getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'line',
// The data for our dataset
data: {
labels: lbl,
datasets: [{
label: "My First dataset",
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
data: dta,
}]
},
// Configuration options go here
options: {}
});
下面是一个例子
document.addEventListener('DOMContentLoaded',function(){
var图表数据=[
{
“EFICAZ_选项卡_项目_ID”:1,
“EFICAZ_百分比”:21
},
{
“EFICAZ_选项卡_项_ID”:2,
“EFICAZ_百分比”:55
},
{
“EFICAZ_选项卡_项目_ID”:3,
“EFICAZ_百分比”:32
}
]
var标签=[];
var值=[];
chartData.forEach(函数(el,键){
标签推送(el.EFICAZ_选项卡_项目_ID);
推力值(el.EFICAZ_百分比);
})
var ctx=document.getElementById('myChart').getContext('2d');
var图表=新图表(ctx{
//我们要创建的图表类型
键入:“行”,
//我们的数据集的数据
数据:{
标签:标签,
数据集:[{
标签:“我的第一个数据集”,
背景颜色:“rgb(255,99,132)”,
边框颜色:“rgb(255,99,132)”,
数据:价值观,
}]
},
//配置选项在这里
选项:{}
});
})
以下是示例
document.addEventListener('DOMContentLoaded',function(){
var图表数据=[
{
“EFICAZ_选项卡_项目_ID”:1,
“EFICAZ_百分比”:21
},
{
“EFICAZ_选项卡_项_ID”:2,
“EFICAZ_百分比”:55
},
{
“EFICAZ_选项卡_项目_ID”:3,
“EFICAZ_百分比”:32
}
]
var标签=[];
var值=[];
chartData.forEach(函数(el,键){
标签推送(el.EFICAZ_选项卡_项目_ID);
推力值(el.EFICAZ_百分比);
})
var ctx=document.getElementById('myChart').getContext('2d');
var图表=新图表(ctx{
//我们要创建的图表类型
键入:“行”,
//我们的数据集的数据
数据:{
标签:标签,
数据集:[{
标签:“我的第一个数据集”,
背景颜色:“rgb(255,99,132)”,
边框颜色:“rgb(255,99,132)”,
数据:价值观,
}]
},
//配置选项在这里
选项:{}
});
})
您需要从json中获取2个数组:1)标签数组2)值数组,然后必须将该数组设置为data.labels和data.dataset.data。如果不是图表的初始值,则必须使用对图表实例调用的update()方法更新图表。顺便说一句,您的问题与@Brissy类似吗?标签:ArrayLabel数据:ArrayData?您需要从json中获取2个数组:1)标签数组2)值数组,然后必须将该数组设置为data.labels和data.datasets.data。如果不是图表的初始值,则必须使用对图表实例调用的update()方法更新图表。顺便说一句,您的问题与@Brissy类似吗?标签:ArrayLabel数据:ArrayData?