Charts 如何创建具有不同标签的多行图

Charts 如何创建具有不同标签的多行图,charts,chart.js,line,multiline,Charts,Chart.js,Line,Multiline,我需要创建一个图表,其中包含不同网站的不同价格,而不是在同一时刻采取。实际上,我使用的是javascript库chart.js。我想知道是否有可能在同一天有不同的分数和不同的点数 "{ "site1":[ { "datetime":"2019-01-09 14:43:58", "price":"649.99" }, { "datetime":"2019-01

我需要创建一个图表,其中包含不同网站的不同价格,而不是在同一时刻采取。实际上,我使用的是javascript库chart.js。我想知道是否有可能在同一天有不同的分数和不同的点数

    "{
      "site1":[
         {
           "datetime":"2019-01-09 14:43:58",
           "price":"649.99"
         },
         {
           "datetime":"2019-01-09 14:44:17",
           "price":"649.99"
         },
         {
           "datetime":"2019-01-09 15:02:59",
           "price":"649.99"
          },
          {
            "datetime":"2019-01-09 15:05:43",
            "price":"649.99"
          },
          {
            "datetime":"2019-01-09 15:08:52",
            "price":"649.99"
          },
          {
            "datetime":"2019-01-09 15:16:51",
            "price":"649.99"
          }
       ],
       "site2":[
         {
           "datetime":"2019-01-09 15:03:05",
           "price":"0"
         },
         {
           "datetime":"2019-01-09 15:05:52",
           "price":"804.91"
         },
         {
           "datetime":"2019-01-09 15:09:00",
           "price":"804.91"
         },
         {
           "datetime":"2019-01-09 15:16:58",
           "price":"804.91"
         }
       ]
     }"
这是图表的数据示例

如果我的解释不简单,我很抱歉


谢谢

在绘制图表时,使用Chart.js+Moment.js可以实现这一点

请参见下面的代码或小提琴->


这可以通过在绘制图表时使用Chart.js+Moment.js来实现

请参见下面的代码或小提琴->


是的,这可以通过使用。您需要重新建模数据以适应所需的输入格式;下面的代码段中使用了一个示例

需要注意的是,Chart.js需要Moment.js来处理日期时间。确保在Chart.js之前包含Moment.js,或者使用Chart.js

设j={
“站点1”:[{
“日期时间”:“2019-01-09 14:43:58”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 14:44:17”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:02:59”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:05:43”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:08:52”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:16:51”,
“价格”:“649.99”
}
],
“站点2”:[{
“日期时间”:“2019-01-09 15:03:05”,
“价格”:“0”
},
{
“日期时间”:“2019-01-09 15:05:52”,
“价格”:“804.91”
},
{
“日期时间”:“2019-01-09 15:09:00”,
“价格”:“804.91”
},
{
“日期时间”:“2019-01-09 15:16:58”,
“价格”:“804.91”
}
]
},
k=对象键(j),
数据集=[];
//重新建模数据,以便直接提供给Chart.js
k、 forEach(函数(val){
设d={
标签:val,
数据:[]
};
j[val].forEach(函数(val2){
d、 数据推送({
x:val2.datetime,
y:val2.price
});
});
数据集.推送(d);
});
//创建图表。
新图表(document.getElementById('canvas'){
键入:“行”,
数据:{
数据集:数据集
},
选项:{
比例:{
xAxes:[{
键入:“时间”
}]
}
}
});

是的,可以使用。您需要重新建模数据以适应所需的输入格式;下面的代码段中使用了一个示例

需要注意的是,Chart.js需要Moment.js来处理日期时间。确保在Chart.js之前包含Moment.js,或者使用Chart.js

设j={
“站点1”:[{
“日期时间”:“2019-01-09 14:43:58”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 14:44:17”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:02:59”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:05:43”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:08:52”,
“价格”:“649.99”
},
{
“日期时间”:“2019-01-09 15:16:51”,
“价格”:“649.99”
}
],
“站点2”:[{
“日期时间”:“2019-01-09 15:03:05”,
“价格”:“0”
},
{
“日期时间”:“2019-01-09 15:05:52”,
“价格”:“804.91”
},
{
“日期时间”:“2019-01-09 15:09:00”,
“价格”:“804.91”
},
{
“日期时间”:“2019-01-09 15:16:58”,
“价格”:“804.91”
}
]
},
k=对象键(j),
数据集=[];
//重新建模数据,以便直接提供给Chart.js
k、 forEach(函数(val){
设d={
标签:val,
数据:[]
};
j[val].forEach(函数(val2){
d、 数据推送({
x:val2.datetime,
y:val2.price
});
});
数据集.推送(d);
});
//创建图表。
新图表(document.getElementById('canvas'){
键入:“行”,
数据:{
数据集:数据集
},
选项:{
比例:{
xAxes:[{
键入:“时间”
}]
}
}
});

var config = {
  type: 'line',
  data: {
    datasets: [{
        label: "site1",
        backgroundColor: 'red',
        borderColor: 'pink',
        fill: false,
        data: [{
            x: '2019-01-09 14:43:58',
            y: 649.99
          },
          {
            x: '2019-01-09 14:44:17',
            y: 649.99
          },
          {
            x: "2019-01-09 15:02:59",
            y: 649.99
          },
          {
            x: "2019-01-09 15:05:43",
            y: 649.99
          },
          {
            x: "2019-01-09 15:08:52",
            y: 649.99
          },
          {
            x: "2019-01-09 15:16:51",
            y: 700
          }
        ],
      },
      {
        label: "site2",
        backgroundColor: 'orange',
        borderColor: 'yellow',
        fill: false,
        data: [{
            x: "2019-01-09 15:03:05",
            y: 0
          },
          {
            x: "2019-01-09 15:05:52",
            y: 804.91
          },
          {
            x: "2019-01-09 15:09:00",
            y: 804.91
          },
          {
            x: "2019-01-09 15:16:58",
            y: 804.91
          }
        ],
      }
    ]
  },
  options: {
    scales: {
      xAxes: [{
        type: 'time',
        time: {          
        }
      }],
    },
  }
};

var ctx = document.getElementById("myChart").getContext("2d");
new Chart(ctx, config);