Google Charts:如何使用动态组合图保持选项相同

时间:2015-01-22 14:13:43

标签: google-visualization

我使用了以下代码http://jsfiddle.net/asgallant/WaUu2/,它允许我从我的组合图表中打开和关闭系列。我遇到的问题是,我的组合图表使用了line和bar系列类型。当我打开和关闭图表中的系列时,我将失去我的系列类型设置。我将以下内容放在一起,将平均列保持为折线图,其余列为条形图。

function setChartView() {
    var state = columnFilter.getState();
    var row;
    var view = {
        columns: [0],
    };
    var labels = [];
    for (var i = 0; i < state.selectedValues.length; i++) {
        row = columnsTable.getFilteredRows([{
            column: 1,
            value: state.selectedValues[i]
        }])[0];
        view.columns.push(columnsTable.getValue(row, 0));
        labels.push([columnsTable.getValue(row, 0), columnsTable.getValue(row, 1)]);
    }
    // sort the indices into their original order
    labels.sort(function(a, b) {
        return (a[0] - b[0]);
    });
    view.columns.sort(function(a, b) {
        return (a - b);
    });

    chart.setView(view);

    for (var i = 0; i < labels.length; i++) {
        chart.setOption('series.' + i + '.type', 'bars');
        if (labels[i][1] == 'Average') {
            chart.getOptions().series[i].type = 'line';
        }
    }

    chart.draw();
}

google.visualization.events.addListener(columnFilter, 'statechange', setChartView);

setChartView();
columnFilter.draw();

但是,如果我想保留所有选项,该怎么办呢?

1 个答案:

答案 0 :(得分:0)

尝试更改此内容:

                  for(var i = 0; i < view.columns.length; i++){
                        var col = view.columns[i]
                        chart.setOption('series.' + col + '.type', 'bars');
                        if(col == yourAverageColumnOriginalIndex){
                            chart.getOptions().series[col].type = 'line';
                        }
                    }