Php 如何在折线图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

我正在使用linechart.js 我想显示我的折线图有两条线,实际上是动态数据集 底部带有位置和标签的底座将带有月份。 现在我的图表只显示最后的数据集

我的数据是这样的

{
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, 填充:假 } ; 新图表“按使用情况绘制”{ 键入:“行”, 数据:{ 标签:标签, 数据集:数据集 }, 选项:{ 回答:对 } };
嗨,这是工作。非常感谢你帮助我。让我开心的一天: