Thanks. I can successfully make another columnchart but the table show this
error: [object HTMLDivElement] does not fit either the Control or
Visualization specification.
I remove the wrapper and also reduce the columns but still not showing the
table?!
On Friday, October 19, 2012 9:38:11 PM UTC+4:30, asgallant wrote:
>
> There are two problems:
>
> 1) you use "table1" for the containerId in the table, but the div has the
> id "table2"
> 2) you need to pass an array to the bind method when binding multiple
> charts:
>
> new google.visualization.Dashboard(document.getElementById('dashboard')).
> bind([namePicker], [myChart, table1]).
> draw(data);
>
> On Friday, October 19, 2012 12:47:00 PM UTC-4, Qasim Rasouli wrote:
>>
>> Thanks. I think it's better to remove PieChart and instead of that I used
>> ColumnChart.
>> Now I want to use several ColumnCharts and also some tables in my
>> dashboard but only CloumnChart rendering and there's no Table? Here's my
>> Code:
>> <html><head>
>> <title>Renewable Energy Projects</title>
>>
>> <!--Load the AJAX API-->
>> <script type="text/javascript" src="https://www.google.com/jsapi
>> "></script>
>> <script type="text/javascript">
>>
>> // Load the Visualization API and the controls package.
>> // Packages for all the other charts you need will be loaded
>> // automatically by the system.
>> google.load('visualization', '1.1', {packages:['controls','corechart',
>> 'table']});
>>
>> // Set a callback to run when the Google Visualization API is loaded.
>> google.setOnLoadCallback(initialize);
>>
>> function initialize() {
>> // Replace the data source URL on next line with your data source URL.
>> var query = new google.visualization.Query('
>> http://spreadsheets.google.com/pub?key=0AvGcVM8k_RwUdExOclVzaEVDSlVvSTlEU2UxdTJOdFE&gid=11'
>> );
>>
>>
>> // Send the query with a callback function.
>> query.send(drawDashboard);
>> }
>>
>>
>> function drawDashboard(response) {
>> var data = response.getDataTable();
>>
>> // Everything is loaded. Assemble your dashboard...
>> var namePicker = new google.visualization.ControlWrapper({
>> 'controlType': 'CategoryFilter',
>> 'containerId': 'filter_div',
>> 'options': {
>> 'filterColumnLabel': 'Province',
>> 'ui': {
>> 'labelStacking': 'horizontal',
>> 'allowTyping': false,
>> 'allowMultiple': false
>> }
>> },
>> 'state': {'selectedValues': ['Kabul']}
>> });
>> var table1 = new google.visualization.ChartWrapper({
>> chartType: 'Table',
>> containerId: 'table1',
>> option: {
>> width: '920px',
>> height: 53
>> },
>> view: {columns: [5, 6, 7, 8, 9, 10] }
>> });
>> var myChart = new google.visualization.ChartWrapper({
>> chartType: 'ColumnChart',
>> containerId: 'chart_div',
>> options: {
>> colors:['#29abe2','#fcee21', '#8cc63f'],
>> legend: {position: 'bottom', textStyle: {color: '#666',
>> fontSize: 10}},
>> chartArea:{left:80,top:10,width:"100%",height:"50%"},
>> },
>> view: {columns: [0, 5, 7, 9]},
>> });
>>
>> new
>> google.visualization.Dashboard(document.getElementById('dashboard')).
>> bind(namePicker, myChart, table1).
>> draw(data)
>>
>> }
>> </script>
>>
>> <style type="text/css">
>> .warpper {
>> width: 600px;
>> font-family: Arial, Helvetica, sans-serif;
>> font-size: 12px;
>> margin:0px auto;
>> padding: 10px;
>> background-color: #FFF;
>> }
>> .header {
>> height: 150px;
>> }
>> #filter_div {
>> height: 20px;
>> border-bottom: 1px #EEE solid;
>> border-top: 1px #EEE solid;
>> margin-bottom: 10px;
>> padding: 10px 5px 5px 5px;
>> }
>> #chart_div {
>> width: 600px;
>> }
>> </style>
>> </head>
>> <body>
>> <div class="warpper">
>> <div class="header">
>> <div class="qasim">
>> </div>
>> </div>
>> <!--Div that will hold the dashboard-->
>> <div id="dashboard"></div>
>> <!--Divs that will hold each control and chart-->
>> <div id="filter_div"></div>
>> <h4>Project Completed (Potential [kW])</h4>
>> <div id="chart_div">
>> </div>
>> <div id="table2"></div>
>> </div>
>> <body>
>> </html>
>>
>> Can you please help me again?
>>
>> On Friday, October 19, 2012 9:49:30 AM UTC+4:30, asgallant wrote:
>>>
>>> The answer to your first question is rather complicated, so I'll start
>>> with the second: yes, you can have multiple pie charts. You just need to
>>> create chart objects for each one and have a separate container div for
>>> each one.
>>>
>>> To the first question, this is possible, but requires a bit of hackery
>>> to make it work. Basically, you have to set things up so that you get the
>>> value from the control, and then use that to group the data from the
>>> DataTable, then draw the pie based on the grouped data. This doesn't
>>> really work in the context of a Dashboard; the control can be a part of
>>> one, controlling other charts, but the pie cannot be bound to the same
>>> dashboard (the pie could be part of a second dashboard driven by the
>>> grouped data, but that's a bit beyond this discussion - for now, just
>>> assume the pie cannot be bound to a dashboard). Here's an example doing it
>>> without the dashboard: http://jsfiddle.net/asgallant/ttDGz/5/
>>>
>>> On Thursday, October 18, 2012 10:26:55 PM UTC-4, Qasim Rasouli wrote:
>>>>
>>>> Thanks so much. I tried myself a lot but didn't find this. :D
>>>> Two more questions:
>>>> 1- How can I have another value to complete my province value to become
>>>> 100%. I mean having two values for my pie chart. One is the province value
>>>> and another for showing total remaining percentage?
>>>> 2- Can I use several pie charts (for example 5) inside one dashboard?
>>>>
>>>> Thanks agin for your help.
>>>>
>>>> On Friday, October 19, 2012 3:45:29 AM UTC+4:30, asgallant wrote:
>>>>>
>>>>> Making the pie chart work on the Percentage of Total Area column is
>>>>> fairly simple. Set the pie chart's view.columns option to an array of
>>>>> the
>>>>> column indices you want to use (in this case, 0 and 3). With your
>>>>> filter,
>>>>> though, that would make a pie with a single value, which generally isn't
>>>>> very useful. Here's a working example using your code:
>>>>> http://jsfiddle.net/asgallant/ttDGz/
>>>>>
>>>>> On Thursday, October 18, 2012 5:45:40 PM UTC-4, Qasim Rasouli wrote:
>>>>>>
>>>>>> Hi everyone,
>>>>>>
>>>>>> I'm trying to create my first dashboard using my google spreadsheets.
>>>>>> I'm not too much familiar with google visualization API:
>>>>>> I create this:
>>>>>> <html><head>
>>>>>> <title>Renewable Energy Projects</title>
>>>>>>
>>>>>> <!--Load the AJAX API-->
>>>>>> <script type="text/javascript" src="https://www.google.com/jsapi
>>>>>> "></script>
>>>>>> <script type="text/javascript">
>>>>>>
>>>>>> // Load the Visualization API and the controls package.
>>>>>> // Packages for all the other charts you need will be loaded
>>>>>> // automatically by the system.
>>>>>> google.load('visualization', '1.1',
>>>>>> {'packages':['controls','linechart']});
>>>>>>
>>>>>> // Set a callback to run when the Google Visualization API is
>>>>>> loaded.
>>>>>> google.setOnLoadCallback(initialize);
>>>>>>
>>>>>> function initialize() {
>>>>>> // Replace the data source URL on next line with your data source
>>>>>> URL.
>>>>>> var query = new google.visualization.Query('
>>>>>> http://spreadsheets.google.com/pub?key=0AvGcVM8k_RwUdExOclVzaEVDSlVvSTlEU2UxdTJOdFE&gid=11'
>>>>>> );
>>>>>>
>>>>>>
>>>>>> // Send the query with a callback function.
>>>>>> query.send(drawDashboard);
>>>>>> }
>>>>>>
>>>>>>
>>>>>> function drawDashboard(response) {
>>>>>> var data = response.getDataTable();
>>>>>> // Everything is loaded. Assemble your dashboard...
>>>>>> var namePicker = new google.visualization.ControlWrapper({
>>>>>> 'controlType': 'CategoryFilter',
>>>>>> 'containerId': 'filter_div',
>>>>>> 'options': {
>>>>>> 'filterColumnLabel': 'Province',
>>>>>> 'ui': {
>>>>>> 'labelStacking': 'horizontal',
>>>>>> 'allowTyping': false,
>>>>>> 'allowMultiple': false
>>>>>> }
>>>>>> }
>>>>>> });
>>>>>>
>>>>>> var pieChart = new google.visualization.ChartWrapper({
>>>>>> 'chartType': 'PieChart',
>>>>>> 'containerId': 'chart_div',
>>>>>> 'options': {
>>>>>> 'width': 300,
>>>>>> 'height': 300,
>>>>>> 'pieSliceText': 'value',
>>>>>> 'legend': 'right'
>>>>>> }
>>>>>> });
>>>>>> var dashboard = new
>>>>>> google.visualization.Dashboard(document.getElementById('dashboard_div')).
>>>>>> bind(namePicker, pieChart).
>>>>>> draw(data)
>>>>>>
>>>>>> }
>>>>>> </script>
>>>>>>
>>>>>> <style type="text/css">
>>>>>> .warpper {
>>>>>> width: 600px;
>>>>>> font-family: Arial, Helvetica, sans-serif;
>>>>>> font-size: 12px;
>>>>>> margin:0px auto;
>>>>>> padding: 10px;
>>>>>> background-color: #EEE;
>>>>>> }
>>>>>> .header {
>>>>>> height: 150px;
>>>>>> }
>>>>>> #filter_div {
>>>>>> height: 20px;
>>>>>> border-bottom: 1px #FFFFFF solid;
>>>>>> border-top: 1px #FFFFFF solid;
>>>>>> margin-bottom: 10px;
>>>>>> padding: 10px 5px 5px 5px;
>>>>>> }
>>>>>> #chart_div {
>>>>>> width: 190px;
>>>>>> }
>>>>>> </style>
>>>>>> </head>
>>>>>> <body>
>>>>>> <div class="warpper">
>>>>>> <div class="header">
>>>>>> <div class="qasim">
>>>>>> </div>
>>>>>> </div>
>>>>>> <!--Div that will hold the dashboard-->
>>>>>> <div id="dashboard_div">
>>>>>> <!--Divs that will hold each control and chart-->
>>>>>> <div id="filter_div"></div>
>>>>>> <div id="chart_div"></div>
>>>>>> </div>
>>>>>> </div>
>>>>>> <body>
>>>>>> </html>
>>>>>>
>>>>>> I have a filter that filtering using Province column in my sheet
>>>>>> (filter is working). So, I need to make a pie chart from *Percentage
>>>>>> of Total Area (%) *column that to show a percentage of each province
>>>>>> area. So I need a pie chart to show the percentage of each province and
>>>>>> total percentage that is the sum of the column.
>>>>>> Can anyone help me?
>>>>>> Thanks in advance.
>>>>>>
>>>>>
--
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/-/9Zmnw8APbGwJ.
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.