Ngx-charts 多系列折线图
Ngx-charts multi series line-chart
我正在尝试使用 Ngx-chart 模块在 angular 中创建一个多系列折线图,但目前由于以下问题而停滞不前:
当发送 Date() 格式化数据作为 "name"(x 轴)字段时,数据被预格式化为(非本地化的)UTC 字符串。预格式化会覆盖(可选)[xAxisTickFormatting] 输入字段。下面是我的图表的样子:
我已经尝试创建自定义 xAxisTickFormatting 函数 - 它仍然不起作用,下面是函数。
tickFormatting(value): string {
console.log(value);
const date = new Date(value);
const newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
const offset = date.getTimezoneOffset() / 60;
const hours = date.getHours();
newDate.setHours(hours - offset);
return newDate.toLocaleString();
}
</ngx-charts-line-chart
.....
[xAxistickFormatting]="tickFormatting.bind(this)"
>
</ngx-charts-line-chart>
我正在从 django api 中获取我的图形数据。数据的获取方式是这样的,方便理解:
"data": [
{
"series": [
{
"name": "2020-02-06T09:32:45.782Z",
"value": 1.0
},
{
"name": "2020-02-06T09:34:52.094Z",
"value": 0.0
},
{
"name": "2020-01-27T08:08:10.395Z",
"value": 1.0
},
{
"name": "2020-01-27T08:54:49.915Z",
"value": 0.0
},
{
"name": "2020-01-27T11:47:04.054Z",
"value": 1.0
},
{
"name": "2020-01-20T13:53:08.058Z",
"value": 1.0
},
{
"name": "2020-01-20T13:53:55.327Z",
"value": 1.0
}
],
"name": "Github"
}
]
谁能帮忙修复这个错误?
键名中的日期需要转换为 javascript 日期格式才能使用默认的日期 tickFormatting 函数。所以我创建了一个函数,它接受一个对象数组并将键值名称中的所有日期转换为 javascript 新日期对象。这是接收我的 JSON api 响应并将键值名称中的日期转换为 javascript 新日期对象
的打字稿函数
dateConvert(value: []) {
value.forEach((element: any) => {
element.series.forEach((item: any) => {
item.name = new Date(item.name);
});
});
}
这适用于可能遇到相同问题的任何人
我正在尝试使用 Ngx-chart 模块在 angular 中创建一个多系列折线图,但目前由于以下问题而停滞不前:
当发送 Date() 格式化数据作为 "name"(x 轴)字段时,数据被预格式化为(非本地化的)UTC 字符串。预格式化会覆盖(可选)[xAxisTickFormatting] 输入字段。下面是我的图表的样子:
我已经尝试创建自定义 xAxisTickFormatting 函数 - 它仍然不起作用,下面是函数。
tickFormatting(value): string {
console.log(value);
const date = new Date(value);
const newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
const offset = date.getTimezoneOffset() / 60;
const hours = date.getHours();
newDate.setHours(hours - offset);
return newDate.toLocaleString();
}
</ngx-charts-line-chart
.....
[xAxistickFormatting]="tickFormatting.bind(this)"
>
</ngx-charts-line-chart>
我正在从 django api 中获取我的图形数据。数据的获取方式是这样的,方便理解:
"data": [
{
"series": [
{
"name": "2020-02-06T09:32:45.782Z",
"value": 1.0
},
{
"name": "2020-02-06T09:34:52.094Z",
"value": 0.0
},
{
"name": "2020-01-27T08:08:10.395Z",
"value": 1.0
},
{
"name": "2020-01-27T08:54:49.915Z",
"value": 0.0
},
{
"name": "2020-01-27T11:47:04.054Z",
"value": 1.0
},
{
"name": "2020-01-20T13:53:08.058Z",
"value": 1.0
},
{
"name": "2020-01-20T13:53:55.327Z",
"value": 1.0
}
],
"name": "Github"
}
]
谁能帮忙修复这个错误?
键名中的日期需要转换为 javascript 日期格式才能使用默认的日期 tickFormatting 函数。所以我创建了一个函数,它接受一个对象数组并将键值名称中的所有日期转换为 javascript 新日期对象。这是接收我的 JSON api 响应并将键值名称中的日期转换为 javascript 新日期对象
的打字稿函数dateConvert(value: []) {
value.forEach((element: any) => {
element.series.forEach((item: any) => {
item.name = new Date(item.name);
});
});
}
这适用于可能遇到相同问题的任何人