Javascript 样条曲线图中类别中的多个数据
我想画一幅下图 因此,我尝试在条形图中设置数据时插入数据,但失败。Javascript 样条曲线图中类别中的多个数据,javascript,highcharts,Javascript,Highcharts,我想画一幅下图 因此,我尝试在条形图中设置数据时插入数据,但失败。 我用了两种方法 一个 // data: [YYYYMMDDhhmm, value] const sampleData = [[201906281815, 1], [201906281815, 4], [201906281815, 2], [201906281830, 10], [201906281830, 7], [201906281830, 15], [201906281845, 11], [201906281845,
我用了两种方法 一个
// data: [YYYYMMDDhhmm, value]
const sampleData = [[201906281815, 1], [201906281815, 4], [201906281815, 2], [201906281830, 10], [201906281830, 7], [201906281830, 15], [201906281845, 11], [201906281845, 8], [201906281845, 22]];
chart.series[0].setData(sampleData);
在第一种情况下,绘制了图表,但同一时区的数据重叠。时间已成功插入xAxis 两个 在xAxis中正确插入了时间,但未绘制样条曲线
如何创建像我要插入数据的图片那样的图表?您可以对数据进行预处理,以计算
xAxis上的准确x
位置:
var sampleData = [
[201906281815, 1],
[201906281815, 4],
[201906281830, 10],
[201906281830, 7],
[201906281830, 15],
[201906281845, 11],
[201906281845, 8],
[201906281845, 22]
],
repeated = 0,
newData = [],
xData = 0,
yIndex = 0,
step,
j,
categories = [];
sampleData.forEach(function(el, i) {
if (sampleData[i + 1] && sampleData[i + 1][0] === el[0]) {
repeated++
} else {
step = 1 / (repeated + 1);
for (j = -0.5 + step / 2; j <= 0.5 - step / 2; j += step) {
newData.push([
xData + j,
sampleData[yIndex][1]
]);
yIndex++;
}
xData++;
repeated = 0;
categories.push(el[0]);
}
});
Highcharts.chart('container', {
series: [{
data: newData
}],
xAxis: {
categories: categories
}
});
var sampleData=[
[201906281815, 1],
[201906281815, 4],
[201906281830, 10],
[201906281830, 7],
[201906281830, 15],
[201906281845, 11],
[201906281845, 8],
[201906281845, 22]
],
重复=0,
新数据=[],
扩展数据=0,
yIndex=0,
步
J
类别=[];
sampleData.forEach(函数(el,i){
if(sampleData[i+1]&&sampleData[i+1][0]==el[0]){
重复++
}否则{
步骤=1/(重复+1);
对于(j=-0.5+step/2;j我建议您从1970年开始以毫秒为单位将时间转换为时间,并使用highcharts datetime轴。然后您可以在不同的点之间放置实时时间。下面是一个基于您的数据的示例:,但由于您有3个相同但值不同的时间戳,因此它将它们绘制为线。@Ewalden感谢您的帮助。@y我们对我的问题的回答。在我的实际代码(不是示例)中,切换到UTC并将其插入xAxis。并且同一时区中的数据与给我的示例中的数据重叠。我希望以最快的顺序创建具有数组索引的图表,而不重叠数据。
var sampleData = [
[201906281815, 1],
[201906281815, 4],
[201906281830, 10],
[201906281830, 7],
[201906281830, 15],
[201906281845, 11],
[201906281845, 8],
[201906281845, 22]
],
repeated = 0,
newData = [],
xData = 0,
yIndex = 0,
step,
j,
categories = [];
sampleData.forEach(function(el, i) {
if (sampleData[i + 1] && sampleData[i + 1][0] === el[0]) {
repeated++
} else {
step = 1 / (repeated + 1);
for (j = -0.5 + step / 2; j <= 0.5 - step / 2; j += step) {
newData.push([
xData + j,
sampleData[yIndex][1]
]);
yIndex++;
}
xData++;
repeated = 0;
categories.push(el[0]);
}
});
Highcharts.chart('container', {
series: [{
data: newData
}],
xAxis: {
categories: categories
}
});