根据时间范围将数组值更新为图表 - javascript

时间:2014-11-09 10:39:23

标签: javascript jquery html

我需要根据时间段更新图表。

目前图表正在更新所有值。

现在我需要通过

更新图表
  • 3个月
  • 6个月
  • 9个月
  • 12个月
  • 15个月
  • 18个月

如何在javascript或jquery中进行操作。??

我创造了小提琴来解释我的情况

http://jsfiddle.net/Yq3DW/97/

这是html

<select id="SelectPeriod" >
    <option value="last3Months">Last 3 months</option>
    <option value="last6Months">Last 6 months</option>
    <option value="last9Months">Last 9 months</option>
    <option value="last12Months">Last 12 months</option>
    <option value="last15Months">Last 15 months</option>
    <option value="last18Months">Last 18 months</option>
    <option value="last24Months">Last 24 months</option>
</select>

<div id="chart"></div>

JS

     var calculation = [["Actual value","Targeted value"]],
    result = [[100, 190],[115,190],[250, 190],[23,190],[190, 190],[170,190],
[100, 190],[115,190],[250, 190],[23,190],[190, 190],[170,190],[100, 190],
[115,190],[250, 190],[23,190],[190, 190],[170,190],[100, 190],[115,190],
[250, 190],[23,190],[190, 190],[170,190]];  

    calculation = calculation.concat(result.sort(function (a, b) {  }));
    var chart = c3.generate({
        bindto: '#chart',
        data: {
            rows: calculation,
            type: 'bar',
        }
    });   

这是我的自定义,尝试

$("#SelectPeriod").change(function (evt) {
    var chartSelection = $("#SelectPeriod").val();
    var chart = c3.generate({
        data: {
            rows: calculation
        }
    });
});

详细说明

我需要根据时间范围更新图表。

如果用户选择6个月的下拉菜单,我只需要显示6个月的图表。

目前整整24个月都在更新。

现在我需要对数据进行分类。

如何在javascript或jquery中执行此操作? 请帮帮我。

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

请参阅http://jsfiddle.net/Yq3DW/99/

我更改了value个选项,以指示每个应显示多少个月,并在change事件中slice显示原始数组。我使用+ 1在数组中包含第3个,第6个等项。

$("#SelectPeriod").change(function (evt) {
    var chartSelection = $("#SelectPeriod").val();
    var chart = c3.generate({
        data: {
            rows: calculation.slice(0, parseInt(chartSelection) + 1),
            type:'bar'
        }
    });
});