【问题标题】:Google Charts: How to keep options the same with dynamic combo chartGoogle Charts:如何使选项与动态组合图保持一致
【发布时间】:2015-01-22 14:13:43
【问题描述】:

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

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();

它似乎适用于我的具体情况,但是,如果我想保持所有选项相同怎么办?

【问题讨论】:

    标签: google-visualization


    【解决方案1】:

    尝试改变这个:

                      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';
                            }
                        }
    

    【讨论】:

    • 谢谢。我已经尝试过使用它来让它携带所有选项,但我无法弄清楚。我知道你已经想出了一种方法来为这个系列带来颜色,所以我想也许你会有一个更好的解决方案来保留所有选项。
    • 问题是你的标签索引和列索引不一样。您是否对代码和数据的示例感到困惑?
    • 我对它们进行了排序:labels.sort(function(a, b) { return (a[0] - b[0]); }); view.columns.sort(function(a, b) { return (a - b);
    • 我没有小提琴。但我会明白的。
    • 数据似乎工作正常,您想保持相同的颜色吗?
    猜你喜欢
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 2022-12-21
    • 2019-09-12
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多