我正在使用 angular 2 highchart,我想在 x 轴上显示“样条”highchart,在 x 轴上显示日期,在 y 轴上显示时间,并且我的图表线呈线性,这是因为我的两个轴都有相同的日期时间刻度。我想将这些轴分隔为日期和时间,我该怎么做
这是我的示例数据如下
[{"x":1517192498650,"y":1517192498650,"name":"GS_20180129_DailyTrades_Finception"},{"x":1517190450740,"y":1517190450740,"name":"GS_20180129_DailyTrades_Finception"}, 1517105975550,"y":1517105975550,"name":"GS_20180128_DailyTrades_Finception"},{"x":1517103307507,"y":1517103307507,"name":"GS_20180128_DailyTrades_Finception"},{6x8:" 1517017629587,"name":"GS_20180127_DailyTrades_Finception"},{"x":1517017613657,"y":1517017613657,"name":"GS_20180127_DailyTrades_Finception"},{"x":1516932898280,"1516932898280,"28y:" "GS_20180126_DailyTrades_Finception"}]
这是我在打字稿中的数据操作代码
static PrepareFileTransactionsForDateTimeChart(fileTransactions: Array<FileTransactionViewModel>) {
const formattedFileTransactions = new Array<any>();
fileTransactions.forEach((_fileTransaction: FileTransactionViewModel) => {
const data = {
x: moment(_fileTransaction.DateTime).valueOf(),
y: moment(_fileTransaction.DateTime).valueOf(),
// x: moment(moment(_fileTransaction.DateTime).format('DD-MM-YYYY') + ' 12:00:00').valueOf(),
// y: moment('01-01-2018 ' + moment(_fileTransaction.DateTime).format('HH:MM:SS')).valueOf(),
name: _fileTransaction.FileName
};
formattedFileTransactions.push(data);
});
return formattedFileTransactions;
}
最后这是我绘制数据的highchart代码
async AppendChartData(data: any) {
this.options = {
chart: {
type: 'spline'
},
title: {
text: 'File transactions overview'
},
subtitle: {
text: ''
},
xAxis: {
type: 'datetime',
title: {
text: 'Date'
},
labels: {
format: '{value:%e-%b-%Y}'
},
},
yAxis: {
type: 'datetime',
title: {
text: 'Time'
},
labels: {
format: '{value:%H:%M:%S}'
},
},
tooltip: {
headerFormat: '',
pointFormat: '<b>{point.name}: </b> <br><br> {point.x:%e-%b-%Y} {point.y:%H:%M:%S}',
followPointer: true,
enabled: true,
shadow: false
},
plotOptions: {
spline: {
lineWidth: 4,
states: {
hover: {
lineWidth: 5
}
},
marker: {
enabled: false
},
}
},
series: [{
name: 'File Transaction',
data: data
}]
};
}
我的数据如下图所示 在此处输入图像描述
请让我知道这样做的好方法是什么。