Calculated columns don't work that way.  I'm not 100% certain of this, but 
I think you want to use an intermediary numberRangeFilter to control the 
pie chart.  Something like this, perhaps:

var intermediary = new google.visualization.ControlWrapper({
    controlType: 'NumberRangeFilter',
    containerId: 'hidden_div',
    options: {
        filterColumnLabel: 'Age',
        minValue: 20
    }
});

// create the other controls + dashboard

// bind slider to table and intermediary control
dashboard.bind([slider], [table, intermediary]);
// bind intermediary to pie
dashboard.bind([intermediary], [pie]);
// bind categoryPicker to pie and table
dashboard.bind([categoryPicker], [pie, table]);

// hide the intermediary control once the chart is drawn
google.visualization.events.addListener(dashboard, 'ready', function () {
    document.getElementById('hidden_div').style.display = 'none';
}); 

You might be able to bind the categoryPicker control directly to the 
intermediary control, I'm not sure.

On Thursday, March 29, 2012 4:23:36 PM UTC-4, mkanalyst_Dale wrote:
>
> I'm putting together a dashboard and trying to do something that 
> should be straight-forward. There will be Control Filters to operate 
> at the dashboard level, but I also need to specify some additional 
> filters (static, not through a control) to just a single chart. The 
> method for getFilteredRows seems to be the answer but it is not 
> working. 
>
> I've mocked up the example that Google has in the Code Playground to 
> try to get this to work. In this case, I'm trying to have the Pie 
> chart only show those that are 20 years or older. 
>
> (link to Google Code Playground: 
>
> http://code.google.com/apis/ajax/playground/?type=visualization#full_dashboard)
>  
>
>
> Code I'm trying: 
> ------------------------------------------------------------------------------------------------------
>  
>
> function drawVisualization() { 
>   // Prepare the data 
>   var data = google.visualization.arrayToDataTable([ 
>     ['Name', 'Gender', 'Age', 'Donuts eaten'], 
>     ['Michael' , 'Male', 12, 5], 
>     ['Elisa', 'Female', 20, 7], 
>     ['Robert', 'Male', 7, 3], 
>     ['John', 'Male', 54, 2], 
>     ['Jessica', 'Female', 22, 6], 
>     ['Aaron', 'Male', 3, 1], 
>     ['Margareth', 'Female', 42, 8], 
>     ['Miranda', 'Female', 33, 6] 
>   ]); 
>
>   // Define a slider control for the Age column. 
>   var slider = new google.visualization.ControlWrapper({ 
>     'controlType': 'NumberRangeFilter', 
>     'containerId': 'control1', 
>     'options': { 
>       'filterColumnLabel': 'Age', 
>     'ui': {'labelStacking': 'vertical'} 
>     } 
>   }); 
>
>   // Define a category picker control for the Gender column 
>   var categoryPicker = new google.visualization.ControlWrapper({ 
>     'controlType': 'CategoryFilter', 
>     'containerId': 'control2', 
>     'options': { 
>       'filterColumnLabel': 'Gender', 
>       'ui': { 
>       'labelStacking': 'vertical', 
>         'allowTyping': false, 
>         'allowMultiple': false 
>       } 
>     } 
>   }); 
>
>   // Define a Pie chart 
>   var pie = new google.visualization.ChartWrapper({ 
>     'chartType': 'PieChart', 
>     'containerId': 'chart1', 
>     'options': { 
>       'width': 300, 
>       'height': 300, 
>       'legend': 'none', 
>       'title': 'Donuts eaten per person', 
>       'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0}, 
>       'pieSliceText': 'label' 
>     }, 
>     // Instruct the piechart to use colums 0 (Name) and 3 (Donuts 
> Eaten) 
>     // from the 'data' DataTable. 
>      'view': { 
>        'columns': [0,3], 
>        'rows': [ 
>          { 
>            'calc': function(data) { 
>              return data.getFilteredRows({column: 2, minValue: 20}); 
>            }, 
>            'type': 'number' 
>          }] 
>      } 
>   }); 
>
>   // Define a table 
>   var table = new google.visualization.ChartWrapper({ 
>     'chartType': 'Table', 
>     'containerId': 'chart2', 
>     'options': { 
>       'width': '300px' 
>     } 
>   }); 
>
>   // Create a dashboard 
>   new 
> google.visualization.Dashboard(document.getElementById('dashboard')). 
>       // Establish bindings, declaring the both the slider and the 
> category 
>       // picker will drive both charts. 
>       bind([slider, categoryPicker], [pie, table]). 
>       // Draw the entire dashboard. 
>       draw(data); 
> } 
> ------------------------------------------------------------------------------------------------------
>  
>
>
>
> The only thing I've changed from the original example is adding to the 
> 'view' section of the Pie Chart. 
>
>  any thoughts?

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-visualization-api/-/xyB59d_j9BwJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to