Php 如何在折线图js中显示多个数据集
我正在使用linechart.js 我想显示我的折线图有两条线,实际上是动态数据集 底部带有位置和标签的底座将带有月份。 现在我的图表只显示最后的数据集 我的数据是这样的Php 如何在折线图js中显示多个数据集,php,chart.js,Php,Chart.js,我正在使用linechart.js 我想显示我的折线图有两条线,实际上是动态数据集 底部带有位置和标签的底座将带有月份。 现在我的图表只显示最后的数据集 我的数据是这样的 { location: "Apartment A", color: "#b168ac", set_data: [{ month: 1, value: 3500 },{ month: 2, value: 2700 },{ month: 3, value: 1500 }] }, { locat
{
location: "Apartment A",
color: "#b168ac",
set_data: [{
month: 1,
value: 3500
},{
month: 2,
value: 2700
},{
month: 3,
value: 1500
}]
},
{
location: "Apartment B",
color: "#b168aa",
set_data: [{
month: 1,
value: 1700
},{
month: 2,
value: 2800
},{
month: 3,
value: 3200
}]
}
我的代码是这样的:
var obj = JSON.parse(data);
$.each(obj,function(i,item){
var locate = [];
var amt = [];
var color = [];
var item_set = [];
locate.push(item.location);
var m = [];
var val = [];
var item_s = item.set_data;
$.each(item_s,function(i2,item2){
val.push(item2.value);
m.push(item2.month);
var chartdata = {
labels: m,
datasets : [{
label:locate,
data: val,
backgroundColor: item.color,
borderWidth: 1,
fill: false,
}]
};
var ctx = document.getElementById("graph_by_usage").getContext('2d');
var LineChart = new Chart(ctx,{
type : 'line',
data : chartdata,
options: {
responsive:true
}
});
});
});
数据应该是这样的
请告诉我。谢谢。假设您的数据是JSON数组,您可以按如下方式生成标签和数据集:
const labels = baseData[0].set_data.map(v => v.month);
const dataSets = [];
baseData.forEach(o => dataSets.push({
label: o.location,
data: o.set_data.map(v => v.value),
borderColor: o.color,
borderWidth: 1,
fill: false
})
);
请看下面的可运行代码示例
常量baseData=[{
地点:A公寓,
颜色:红色,
设置数据:[
{月份:1,值:3500},
{月份:2,值:2700},
{月份:3,值:1500}
]
},
{
地点:B公寓,
颜色:蓝色,
设置数据:[
{月份:1,值:1700},
{月份:2,值:2800},
{月份:3,值:3200}
]
}
];
const labels=baseData[0]。set_data.mapv=>v.month;
常量数据集=[];
baseData.forEacho=>dataSets.push{
标签:o.位置,
数据:o.set_data.mapv=>v.value,
边框颜色:o.color,
边框宽度:1,
填充:假
}
;
新图表“按使用情况绘制”{
键入:“行”,
数据:{
标签:标签,
数据集:数据集
},
选项:{
回答:对
}
};
嗨,这是工作。非常感谢你帮助我。让我开心的一天: