在HighCharts中预处理动态添加的序列

时间:2012-11-03 01:50:42

标签: javascript highcharts

您好我想问一下如何在Highcharts中正确实例化和处理动态添加的系列。

我带来了一个像这样的系列实例:

var newSeries = new Highcharts.Series();
var newData = [];
date = Date.parse(newDate() +' UTC');
name = 'datapoint name';

newData.push([date, name]);

newSeries.name = 'Somename';

//newData variable processing
newSeries.data = newData;
newSeries.color = "#EEEEEE";
newSeries.showInLegend = false;
newSeries.index = -1;

chart.addSeries(newSeries);

使用此代码,我能够在Highchart对象运行时中添加新系列。但是,在将其添加到实际图表之前,我想对我的系列对象进行一些额外的处理。

我试过了:

newSeries.marker.enabled = "false";

newSeries.marker.states.hover = "false";

newSeries.index = -1; //to be able to send the series at the backmost part of the chart

但未能达到预期的效果。

如果可能,有人可以指出我正确的方向如何正确实例化series对象里面的marker对象吗? 非常感谢任何帮助。

编辑:GREG的正确回答

1 个答案:

答案 0 :(得分:1)

如果将每个点添加为对象,则可以按如下方式控制标记:

function addSeries(chart) {

        var newSeries = new Highcharts.Series();
        newSeries.name = 'Tokyo';
        newSeries.data = [{y: 1}, {y:20}, {y:23}, {y:11}];
        newSeries.zIndex = -1;

         for (var i = 0; i < newSeries.data.length; i++) {
             var datum = newSeries.data[i];
             datum.marker = {
                 enabled: false,
                 states: {
                     hover: {
                         enabled: false,
                         lineColor: '#ff0000'
                     }
                 }
            };
         }

        chart.addSeries(newSeries);     

    }

以下是一个有效的例子:http://jsfiddle.net/LrvB9/