Highcharts / Highstock动态添加/删除多个系列

时间:2013-05-10 12:09:38

标签: javascript dynamic highcharts highstock

我是一名Java / PHP程序员,无法掌握Javascript,所以我需要一些简单的东西。

在此处获取图表:http://www.highcharts.com/stock/demo/compare

这显示了3个系列,它们都是预定义的。我有与我自己的数据相同的设置。

我实际拥有的是150系列数据,我希望用户能够选择在没有页面刷新的情况下显示哪些数据。我知道我需要以某种方式使用Chart.addSeries(),我看了一个演示,它通过点击按钮添加了一个系列:http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/stock/members/chart-addseries/

问题是,这个按钮在网页和JS中都是硬编码的:

<button id="button">Add series</button>

<script>
$('#button').click(function() {
    var chart = $('#container').highcharts();
    chart.addSeries({
        name: 'ADBE',
        data: ADBE
    });
    $(this).attr('disabled', true);
});
</script>

我不喜欢150个按钮,但我当然不希望每个按钮有一个独特的功能。有人可以重写一个我可以蚕食的简短例子吗?我的JS真的太简陋了。

也许复选框没问题,但实际上任何类型的切换都可以。可以从图表中删除系列(除了点击图例)吗?

任何人都可以提供一些关于将150系列列表绑定到图表本身的技巧吗?

必须通过JSON单独加载每个系列。

或者,我应该只加载所有150个系列并禁用其中的149个,允许用户通过图例本身进行切换?

1 个答案:

答案 0 :(得分:6)

我使用复选框为您制作了解决方案。目标复选框是具有“选择”类的复选框。 “foreach”功能遍历所有复选框。该名称成为当前选择的“值”,并且由于您没有为数据提供任何上下文,因此当前正在手动输入数据。你可以玩它并让它适合你。

$('#button').click(function() {
    var buttons = $('.choice');
    var chart = $('#container').highcharts();

    buttons.each(function(){
        var choice = this.value;

        chart.addSeries({
            name: choice,
            data: ADBE
        });
    });
});