You have two functions called "drawChart" - rename them something else (like drawChart1 and drawChart2, or whatever suits you). In each, check the id's for the filters, charts, and dashboards. Every element must have its own unique id (and an HTML div with the same id to put the element in), so change the id's so that the different charts and controls end up in different divs. Then create a third function that calls the two drawing functions, and change the google.setOnLoadCallback() line to reference this function instead of the drawChart function.
Alternatively, you could move all of the code into one function and draw multiple charts from there (you would still need to change the element id's). As an aside, there is a newer version of the code you copied here<http://jsfiddle.net/asgallant/WaUu2/> . On Wednesday, September 5, 2012 7:00:13 PM UTC-4, vishnuuvm wrote: > > Hi > > I am very new to google charts API and have been playing around with > available tools and adapting code to suit my requirement. > > I have a condition where I need to create two interactive charts on the > same page. Mind you I found this code and have simply used it to my needs. > However, when I create two copies of the same code so that I have two > charts on the same page, it does not show. > Could someone help me on how to create two interactive charts in the same > page > > i am posting the code as follows > Thanks > > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " > http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > > <html xmlns="http://www.w3.org/1999/xhtml"> > > <head> > > <meta http-equiv="content-type" content="text/html; charset=utf-8"/> > > <script type="text/javascript" src="http://www.google.com/jsapi > "></script> > > <script type="text/javascript"> > > > google.load('visualization', '1.1', {packages: ['controls','corechart']}); > > </script> > > <script type="text/javascript"> > > > > > > google.setOnLoadCallback(drawChart); > > > > function drawChart() { > > var data = google.visualization.arrayToDataTable([ > > ['x', 'DDD', 'AAA', 'BBB'], > > ['2011', 0.013, 0.035, 0.035], > > ['2012', 0.024, 0.047, 0.0646], > > ['2013', 0.026, 0.077, 0.0977], > > ['2014', 0.037, 0.151, 0.4511], > > ['2015', 0.049, 0.155, 0.5615], > > ['2016', 0.150, 0.261, 0.8724], > > ['2017', 0.611, 0.248, 0.934], > > ['2018', 0.713, 0.337, 0.9945] > > > > > > ]); > > > > var columnsTable = new google.visualization.DataTable(); > > columnsTable.addColumn('number', 'colIndex'); > > columnsTable.addColumn('string', 'colLabel'); > > var initState = { > > selectedValues: ['AAA'] > > }; > > // put the columns into this data table (skip column 0) > > for (var i = 1; i < data.getNumberOfColumns(); i++) { > > columnsTable.addRow([i, data.getColumnLabel(i)]); > > initState.selectedValues.push(data.getColumnLabel(i)); > > } > > > > var chart = new google.visualization.ChartWrapper({ > > chartType: 'LineChart', > > containerId: 'chart_div', > > dataTable: data, > > options: { > > title: 'Total Market', > > width: 700, > > height: 470, > > legend: 'bottom', > > vAxis: {format:'#%'}, > > > > animation:{ > > duration: 1000, > > easing: 'out', > > } > > } > > }); > > > > chart.draw(); > > > > > var dash = new > google.visualization.Dashboard(document.getElementById('dash')); > > > > var columnFilter = new google.visualization.ControlWrapper({ > > controlType: 'CategoryFilter', > > containerId: 'colFilter_div', > > options: { > > filterColumnLabel: 'colLabel', > > ui: { > > label: 'Choose a Scenario', > > allowTyping: true, > > allowMultiple: true, > > selectedValuesLayout: 'belowStacked' > > } > > }, > > state: initState > > }); > > > > var junkChart = new google.visualization.ChartWrapper({ > > chartType: 'Table', > > containerId: 'junk_div' > > }); > > > > > google.visualization.events.addListener(columnFilter, 'statechange', > function() { > > var state = columnFilter.getState(); > > var row; > > var columnIndices = [0]; > > for (var i = 0; i < state.selectedValues.length; i++) { > > row = columnsTable.getFilteredRows([{ > > column: 1, > > value: state.selectedValues[i]}])[0]; > > columnIndices.push(columnsTable.getValue(row, 0)); > > } > > // sort the indices into their original order > > columnIndices.sort(function(a, b) { > > return (a - b); > > }); > > chart.setView({ > > columns: columnIndices > > }); > > chart.draw(); > > }); > > > > // bind controls to junk chart and draw dash > > dash.bind([columnFilter], [junkChart]); > > dash.draw(columnsTable); > > } > > > > </script> > > </head> > > > > <body style="font-family: Arial;border: 0 none;"> > > > > <div id="dash"> > > <table> > > <tr style='vertical-align: top'> > > <td style='width: 16px; font-size: 0.9em;'> > > <div id="colFilter_div"></div> > > </td> > > <td style='width: 60px'> > > <div style="float: left;" id="chart_div"></div> > > </td> > > </tr> > > </table> > > </div> > > <div id="junk_div" style="display: none;"></div> > > </body> > > </html> > > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " > http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > > <html xmlns="http://www.w3.org/1999/xhtml"> > > <head> > > <meta http-equiv="content-type" content="text/html; charset=utf-8"/> > > <script type="text/javascript" src="http://www.google.com/jsapi > "></script> > > <script type="text/javascript"> > > > google.load('visualization', '1.1', {packages: ['controls','corechart']}); > > </script> > > <script type="text/javascript"> > > > > > > google.setOnLoadCallback(drawChart); > > > > function drawChart() { > > var data = google.visualization.arrayToDataTable([ > > ['x', 'RRR', 'PPP', 'WWW'], > > ['2011', 4176, 4176, 5176], > > ['2012', 6018, 6018, 60018], > > ['2013', 9277, 12100, 92100], > > ['2014', 15681, 78126, 78126], > > ['2015', 17546, 41016, 41016], > > ['2016', 15164, 43623, 29873], > > ['2017', 26334, 54329, 32426], > > ['2018', 26959, 61806, 3980] > > > > > > ]); > > > > var columnsTable = new google.visualization.DataTable(); > > columnsTable.addColumn('number', 'colIndex'); > > columnsTable.addColumn('string', 'colLabel'); > > var initState = { > > selectedValues: ['PPP'] > > }; > > // put the columns into this data table (skip column 0) > > for (var i = 1; i < data.getNumberOfColumns(); i++) { > > columnsTable.addRow([i, data.getColumnLabel(i)]); > > initState.selectedValues.push(data.getColumnLabel(i)); > > } > > > > var chart = new google.visualization.ChartWrapper({ > > chartType: 'LineChart', > > containerId: 'chart_div', > > dataTable: data, > > options: { > > title: 'Total Market ', > > width: 700, > > height: 470, > > legend: 'bottom', > > vAxis: {format:'###,###'}, > > > > animation:{ > > duration: 1000, > > easing: 'out', > > } > > } > > }); > > > > chart.draw(); > > > > > var dash = new > google.visualization.Dashboard(document.getElementById('dash')); > > > > var columnFilter = new google.visualization.ControlWrapper({ > > controlType: 'CategoryFilter', > > containerId: 'colFilter_div', > > options: { > > filterColumnLabel: 'colLabel', > > ui: { > > label: 'Choose a Scenario', > > allowTyping: true, > > allowMultiple: true, > > selectedValuesLayout: 'belowStacked' > > } > > }, > > state: initState > > }); > > > > var junkChart = new google.visualization.ChartWrapper({ > > chartType: 'Table', > > containerId: 'junk_div' > > }); > > > > > google.visualization.events.addListener(columnFilter, 'statechange', > function() { > > var state = columnFilter.getState(); > > var row; > > var columnIndices = [0]; > > for (var i = 0; i < state.selectedValues.length; i++) { > > row = columnsTable.getFilteredRows([{ > > column: 1, > > value: state.selectedValues[i]}])[0]; > > columnIndices.push(columnsTable.getValue(row, 0)); > > } > > // sort the indices into their original order > > columnIndices.sort(function(a, b) { > > return (a - b); > > }); > > chart.setView({ > > columns: columnIndices > > }); > > chart.draw(); > > }); > > > > // bind controls to junk chart and draw dash > > dash.bind([columnFilter], [junkChart]); > > dash.draw(columnsTable); > > } > > > > </script> > > -- 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/-/yp43_TwMuKwJ. 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.
