I am a newbie to the visualization API, so appologies if this has been covered. I couldn't find a thread exactly about what I am trying to do. I am trying to use the chartrangefilter to use it to manipulate multiple graphs. I have taken the ChartRangFilter Control Example, and added a scatter plot of open and close stock prices. I had hoped that using the slider would also change the scatter plot to show only the points (high vs. low) during the selected date range. Any help is appreciated.
<!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"/ > <title> Google Visualization API Sample </title> <script type="text/javascript" src="http://www.google.com/jsapi"></ script> <script type="text/javascript"> google.load('visualization', '1.1', {packages: ['corechart', 'controls']}); </script> <script type="text/javascript"> function drawVisualization() { var dashboard = new google.visualization.Dashboard( document.getElementById('dashboard')); var control = new google.visualization.ControlWrapper({ 'controlType': 'ChartRangeFilter', 'containerId': 'control', 'options': { // Filter by the date axis. 'filterColumnIndex': 0, 'ui': { 'chartType': 'LineChart', 'chartOptions': { 'chartArea': {'width': '90%'}, 'hAxis': {'baselineColor': 'none'} }, // Display a single series that shows the closing value of the stock. // Thus, this view has two columns: the date (axis) and the stock value (line series). 'chartView': { 'columns': [0, 3] }, // 1 day in milliseconds = 24 * 60 * 60 * 1000 = 86,400,000 'minRangeSize': 86400000 } }, // Initial range: 2012-02-09 to 2012-03-20. 'state': {'range': {'start': new Date(2012, 1, 9), 'end': new Date(2012, 2, 20)}} }); var chart = new google.visualization.ChartWrapper({ 'chartType': 'CandlestickChart', 'containerId': 'chart', 'options': { // Use the same chart area width as the control for axis alignment. 'chartArea': {'height': '80%', 'width': '90%'}, 'hAxis': {'slantedText': false}, 'vAxis': {'viewWindow': {'min': 0, 'max': 2000}}, 'legend': {'position': 'none'} }, }); //data table for time-dependent range selector var data = new google.visualization.DataTable(); data.addColumn('date', 'Date'); data.addColumn('number', 'Stock low'); data.addColumn('number', 'Stock open'); data.addColumn('number', 'Stock close'); data.addColumn('number', 'Stock high'); //data table for high vs low scatter plot var data2 = new google.visualization.DataTable(); data2.addColumn('number', 'Stock open'); data2.addColumn('number', 'Stock close'); // Create random stock values, just like it works in reality. var open, close = 300; var low, high; for (var day = 1; day < 121; ++day) { var change = (Math.sin(day / 2.5 + Math.PI) + Math.sin(day / 3) - Math.cos(day * 0.7)) * 150; change = change >= 0 ? change + 10 : change - 10; open = close; close = Math.max(50, open + change); low = Math.min(open, close) - (Math.cos(day * 1.7) + 1) * 15; low = Math.max(0, low); high = Math.max(open, close) + (Math.cos(day * 1.3) + 1) * 15; var date = new Date(2012, 0 ,day); data.addRow([date, Math.round(low), Math.round(open), Math.round(close), Math.round(high)]); data2.addRow([Math.round(open), Math.round(close)]); } // Create and draw the visualization for Open vs Close stock price var ac = new google.visualization.ScatterChart(document.getElementById('visualization')); ac.draw(data2, { title : 'Open vs Close', isStacked: true, width: 915, height: 400, vAxis: {title: "Open"}, hAxis: {title: "Close"} }); dashboard.bind(control, chart); dashboard.draw(data); } google.setOnLoadCallback(drawVisualization); </script> </head> <body style="font-family: Arial;border: 0 none;"> <div id="visualization" style="width: 915px; height: 400px;"></ div> <div id="dashboard"> <div id="chart" style='width: 915px; height: 300px;'></div> <div id="control" style='width: 915px; height: 50px;'></div> </div> </body> </html> -- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. 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.
