Google Charts,隐藏列的显示,但保留基础数据以供使用

时间:2011-05-19 16:10:04

标签: json google-visualization

在以下JSON中:

        var data = new google.visualization.DataTable(
            {
            cols: [{id: 'Option1', label: 'Manufacturer', type: 'string'},
                   {id: 'Option2', label: 'Region', type: 'string'},
                   {id: 'Option3', label: 'Option3', type: 'number'},
                   {id: 'Option4', label: 'Option4', type: 'number'},
                   {id: 'Option5', label: 'Option5', type: 'number'},
                   {id: 'Option6', label: 'Option6', type: 'number'},
                   {id: 'Option7', label: 'Option7', type: 'number'},
                   {id: 'Option8', label: 'Option8', type: 'number'}],


            rows: [{c:[{v: 'Ford'}, {v: 'South East'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'Ford'}, {v: 'South East'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'Ford'}, {v: 'South East'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'BMW'}, {v: 'South East'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'BMW'}, {v: 'North'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'BMW'}, {v: 'North'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'Citroen'}, {v: 'North'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]},
                    {c:[{v: 'Citroen'}, {v: 'South East'}, {v: 2}, {v: 3}, {v: 4}, {v: 5}, {v: 6}, {v: 7}]}
                    ]
            },
            0.6
        )

我的图表'将'显示制造商为每行有7条数据的行。

我希望能够使用从属控件过滤数据,以便只查看每个区域中的行(第1列)。

此时此图形不会绘制,因为region列不是整数,因此无法显示。

因此,我想“隐藏”区域列,使其不显示为条形图,但可以与依赖控件一起使用。

任何人都可以帮忙解决这个问题,因为我找不到任何办法吗?我认为hideColumns方法不会起作用,因为它会从数据对象中删除列,并且依赖控件无法看到它。

2 个答案:

答案 0 :(得分:19)

解决方法是使用'view'。

        // Create a bar chart, passing some options
        barChart = new google.visualization.ChartWrapper({
            'chartType': 'BarChart',
            'containerId': 'chart_div',
            'options': {
            'width': '100%',
            'height': '120%',
            'vAxis': {title: "Branch"},
            'hAxis': {title: "Cups"},
            'fontSize': 14,
            'showRowNumber' : true,
            },
            'view': {'columns': [0,2,3,4,5,6,7]}
        });

希望这可以帮助其他人解决同样的问题。

答案 1 :(得分:4)

您可以直接使用dataView,并执行以上代码

    function hideColumns (chart, data, options, colToHide) {
        dataview = new google.visualization.DataView(data);
        dataview.hideColumns(colToHide);
        // you can also use dataview.setColumns([1,2]) to show only selected columns and hide the rest
        chart.draw(dataview, options)
    };