0

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

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

用于填充图表的数据来自 AJAX 请求。旧开发人员的方法是获取数据,渲染图表,然后使用.addSeries. 我在想最好更新options.series然后将整个内容传递new Highcharts.Chart()给渲染,从而.addSeries排除等式。

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

4

1 回答 1

1

尽管您的问题表明您可能只是在寻找对严格正确/错误答案的偏好,但您的道路很好。

从我所见,除非您在页面上有交互会触发在绘制图表后更新图表的需要,否则使用的好处addSerie是添加一些视觉效果。使用addSerie,您的图表将在访问者面前直观地绘制自己 - 而他们已经被绘制。(我相信 HighCharts 演示网站有一些很好的例子。)

我最近还继承了一个 HighCharts 项目,并Highcharts.Chart()通过动态解析 AJAX 数据来生成一个新的使用动态数据。好消息是所有图表仍然有很好的视觉眩光(眩光很重要),因为它们在 AJAX 数据完全加载之前不会绘制。这个片段说明了我是如何加载动态图表、动态解析 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 一起工作,因为一旦你开始工作就会很有趣。希望这可以帮助。

于 2013-02-26T22:46:46.263 回答