Highchart:addSeries与chart.options.series

时间:2013-02-26 20:35:38

标签: javascript

我继承了一个使用Highcharts的项目。

之前的开发人员使用.addSeries方法将所有系列添加到正在呈现的每个图表中。从我读过的Highcharts来看,似乎.addSeries实际上是动态添加数据。

用于填充图表的数据来自AJAX请求。旧开发人员的方法是获取数据,渲染图表,然后使用.addSeries添加系列。我认为更新options.series然后将整个事项传递给new Highcharts.Chart()进行渲染可能会更好,将.addSeries排除在等式之外。

然而,由于我是Highcharts的新手,我希望得到一些关于更好的方法的反馈。

1 个答案:

答案 0 :(得分:1)

你走的路很好,但你的问题表明你可能只是在寻找偏好而不是严格的正确/错误答案。

从我所看到的情况来看,除非您在页面上进行了相互作用,这会引发在绘制图表后需要更新图表,否则使用addSerie的好处就是添加一些视觉效果。使用addSerie,您的图表将在访客面前直观地绘制 - 与已经绘制的图表相比。 (我相信HighCharts演示网站有一些很好的例子。)

我最近还继承了一个HighCharts项目,并通过动态解析AJAXed数据来使用动态数据生成新的Highcharts.Chart()。好消息是所有图表仍然具有良好的视觉效果(耀斑很重要)因为它们在AJAXed数据完全加载之前不会绘制。这个片段说明了我如何加载动态图表,即时解析JSON数据:

   $(function () {
        var visitsChart;
        $(document).ready( function() {
            $.getJSON('/json-data-url', function(json){        
                var visitsChart = new Highcharts.Chart({
                    chart: {
                        renderTo: 'visitsContainer',
                        type: 'spline',
                    },
                    title: {
                        text: 'Test Widget'
                    },
                    series: [{
                        name: 'Speed',
                        data: [parseInt(json.visits)],
                    }],
                ...
                });     
            });   
        });
    });

我不会说谎...当我开始时我有几分钟的头发拉动,但现在我希望我有更多的时间与Highcharts合作,因为一旦你开始滚动它就很有趣。希望这会有所帮助。