我有X和这样的轴,其15秒图。
["2020-05-22 14:20:22", "173.9"]
["2020-05-22 14:20:40", "175.3"]
["2020-05-22 14:20:58", "172.4"]
我试图添加如下
for(var key in json)
{
var xTime = stringToDate(json[key][0]);
var yVal = parseFloat(json[key][1]);
series.add({ x: timer, y: yVal})
}
function stringToDate(s) {
s = s.split(/[-: ]/);
return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
}
但是图表在x轴上呈现奇怪的值
LightningChart JS的DateTime轴期望以毫秒值接收数据。它不Date
直接支持对象。因此,如果您将时间作为Date
对象,则需要调用getTime()
method来获取时间(以毫秒为单位)。然后,在AxisTickStrategies.DateTime
具有时间值的轴上使用a时,可以在图表中将这些数据显示为时间。如果要在向图表添加序列时默认使用DateTime轴刻度策略,则可以使用,defaultAxisXTickStrategy
或者defaultAxisYTickStrategy
时间在Y轴上。
当显示当前时间或接近当前时间时,您将需要使用aorigin
作为值,并将时间添加为与该原始时间的偏移量。
const dateOrigin = new Date()
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: AxisTickStrategies.DateTime(dateOrigin)
})
const series = chart.addLineSeries()
const xTime = new Date(new Date().getTime() + 100000000)
const yVal = 1
series.add({ x: xTime.getTime() - dateOrigin.getTime(), y: yVal})
请参阅下面的工作示例。
const {
lightningChart,
AxisTickStrategies
} = lcjs
// Create a XY Chart.
const dateOrigin = new Date()
const chart = lightningChart().ChartXY({
defaultAxisXTickStrategy: AxisTickStrategies.DateTime(dateOrigin)
})
const series = chart.addLineSeries()
series.setCursorInterpolationEnabled(false)
const data = [
["2020-05-22 14:20:22", "173.9"],
["2020-05-22 14:20:40", "175.3"],
["2020-05-22 14:20:58", "172.4"]
]
function stringToDate(s) {
s = s.split(/[-: ]/);
return new Date(s[0], s[1]-1, s[2], s[3], s[4], s[5]);
}
for(var key in data)
{
var xTime = stringToDate(data[key][0]);
var yVal = parseFloat(data[key][1]);
series.add({ x: xTime.getTime() - dateOrigin.getTime(), y: yVal})
}
<script src="https://unpkg.com/@arction/[email protected]/dist/lcjs.iife.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句