charts - 如何创建具有不同标签的多线图
问题描述
我需要创建一个图表,其中包含来自不同站点的不同价格,而不是同时获取。实际上我使用的是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 来实现这一点。
请参阅下面的代码或小提琴-> http://jsfiddle.net/goz3jehy/4/
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);
推荐阅读
- node.js - Node.js 不通过管道传输内容
- list - F#:我需要将输出格式化为仅包含逗号分隔的整数,而不是 F# 中的列表格式
- image - 为什么 Android Studio 无法构建,图像上出现 AAPT2 错误?
- python-3.x - 使用 python 而不是 django shell
- c++ - 继承构造器
- python - 很想使用 selenium 从 webapge 获取数据并使用烧瓶显示它?
- c# - 如何使用 Linq 使用另一个列表的值对列表进行排序
- angular - 为什么将选项卡添加到 mat-tab-group 不能从单独的组件中工作?
- c++ - 在 C++ 的 fluent interface 中设置后立即调用析构函数
- javascript - 在 Node 的 GET 请求之后将数据传递给 MongoDB