Javascript Highcharts系列添加点-样条线/直线-标记可见但直线消失的问题
我已经为这个问题挣扎了一段时间,也许我可以得到一些帮助。我有一系列5个容器,每个容器中都有小图。只要数据是静态的,它就会显示良好。但是,当我使用系列[0]切换到每三秒轮询一次实时数据时,addPoint([x,y],true,true),标记就会出现,但行会消失。我已经研究并尝试了所有我能在网上找到的东西。还有谁有这个问题,你是如何解决的 这是我正在执行addPoint的代码部分Javascript Highcharts系列添加点-样条线/直线-标记可见但直线消失的问题,javascript,angularjs,highcharts,Javascript,Angularjs,Highcharts,我已经为这个问题挣扎了一段时间,也许我可以得到一些帮助。我有一系列5个容器,每个容器中都有小图。只要数据是静态的,它就会显示良好。但是,当我使用系列[0]切换到每三秒轮询一次实时数据时,addPoint([x,y],true,true),标记就会出现,但行会消失。我已经研究并尝试了所有我能在网上找到的东西。还有谁有这个问题,你是如何解决的 这是我正在执行addPoint的代码部分 array = renameArrayNameKeys(modemNickNameArray, tmpmodem)
array = renameArrayNameKeys(modemNickNameArray, tmpmodem);
var utxpDataSet = Enumerable.From(tmpmodem).Where(function(x) {
return x.Name == utxpChart.series[0].name
}).Select(function(x) {
return x
}).ToArray();
var urxlDataSet = Enumerable.From(tmpmodem).Where(function(x) {
return x.Name == urxlChart.series[0].name
}).Select(function(x) {
return x
}).ToArray();
var usnrDataSet = Enumerable.From(tmpmodem).Where(function(x) {
return x.Name == usnrChart.series[0].name
}).Select(function(x) {
return x
}).ToArray();
var dsnrDataSet = Enumerable.From(tmpmodem).Where(function(x) {
return x.Name == dsnrChart.series[0].name
}).Select(function(x) {
return x
}).ToArray();
var drxlDataSet = Enumerable.From(tmpmodem).Where(function(x) {
return x.Name == drxlChart.series[0].name
}).Select(function(x) {
return x
}).ToArray();
var tableDataSet = Enumerable.From(tmpmodem).Select(function(x) {
return {
Name: x.Name,
Color: x.Color,
Average: x.Value,
Value: x.Value,
high: x.high,
low: x.low
}
}).ToArray();
if (tableDataSet != null) {
$scope.$parent.$parent.$parent.previewType.dataSet = tableDataSet;
safeApply($scope);
}
var x = (new Date()).getTime(),
// current time
y = parseFloat(utxpDataSet[0].Value);
$scope.$parent.$parent.$parent.$parent.preview.utxpChart.series[0].addPoint([x, y], true, true);
$scope.$parent.$parent.$parent.$parent.preview.utxpChart.series[0].options.color = utxpDataSet[0].Color;
var l = $scope.$parent.$parent.$parent.$parent.preview.utxpChart.series[0].points.length;
var point = $scope.$parent.$parent.$parent.$parent.preview.utxpChart.series[0].points[l - 1];
point.update({
marker: {
fillColor: utxpDataSet[0].Color
}
});
var x = (new Date()).getTime(),
// current time
y = parseFloat(urxlDataSet[0].Value);
$scope.$parent.$parent.$parent.$parent.preview.urxlChart.series[0].addPoint([x, y], true, true);
$scope.$parent.$parent.$parent.$parent.preview.urxlChart.series[0].options.color = urxlDataSet[0].Color;
l = $scope.$parent.$parent.$parent.$parent.preview.urxlChart.series[0].points.length;
point = $scope.$parent.$parent.$parent.$parent.preview.urxlChart.series[0].points[l - 1];
point.update({
marker: {
fillColor: urxlDataSet[0].Color
}
});
var x = (new Date()).getTime(),
// current time
y = parseFloat(usnrDataSet[0].Value);
$scope.$parent.$parent.$parent.$parent.preview.usnrChart.series[0].addPoint([x, y], true, true);
$scope.$parent.$parent.$parent.$parent.preview.usnrChart.series[0].options.color = usnrDataSet[0].Color;
l = $scope.$parent.$parent.$parent.$parent.preview.usnrChart.series[0].points.length;
point = $scope.$parent.$parent.$parent.$parent.preview.usnrChart.series[0].points[l - 1];
point.update({
marker: {
fillColor: usnrDataSet[0].Color
}
});
var x = (new Date()).getTime(),
// current time
y = parseFloat(dsnrDataSet[0].Value);
$scope.$parent.$parent.$parent.$parent.preview.dsnrChart.series[0].addPoint([x, y], true, true);
$scope.$parent.$parent.$parent.$parent.preview.dsnrChart.series[0].options.color = dsnrDataSet[0].Color;
l = $scope.$parent.$parent.$parent.$parent.preview.dsnrChart.series[0].points.length;
point = $scope.$parent.$parent.$parent.$parent.preview.dsnrChart.series[0].points[l - 1];
point.update({
marker: {
fillColor: dsnrDataSet[0].Color
}
});
var x = (new Date()).getTime(),
// current time
y = parseFloat(drxlDataSet[0].Value);
$scope.$parent.$parent.$parent.$parent.preview.drxlChart.series[0].addPoint([x, y], true, true);
$scope.$parent.$parent.$parent.$parent.preview.drxlChart.series[0].options.color = time[0].Color;
l = $scope.$parent.$parent.$parent.$parent.preview.drxlChart.series[0].points.length;
point = $scope.$parent.$parent.$parent.$parent.preview.drxlChart.series[0].points[l - 1];
point.update({
marker: {
fillColor: time[0].Color
}
});
添加第一个点后,直线停止绘制,就像这样
任何帮助都将不胜感激
谢谢 是否可能在数据点之间获得空值?您能为您的addPoint记录x,y以验证正在设置的数据吗?如果将这些$scope.$parent.$parent.$parent.$parent.$parent.preview.usnrChart分配给变量,则此代码更易于阅读。console中是否有任何错误?也许会起作用?另见,芭芭拉,你是对的。正在拾取空值。我执行了一个try-catch,通过一个API获取所有值,但在添加点时出现了一个输入错误,不知怎的,它是在时间[0]中添加的。我猜这就是批量复制/粘贴的结果。一旦我将其更改为drxlDataSet[0]。颜色,点的位置就正确了。谢谢你的帮助。