Hi All,
Was reading about axis scaling and then simple encoding and extended encoded. I tried those two java script functions(extended and simple encoded), but I getting some js error which says 'a[Da] is not a function [Break on this error] f=a[Da]();for(var D=a[qa](),s=f>0&&a[M....Wc(Va);if(za||za===0)j.Vc(za);e=0;d= ' I went through the encoding but didn't get much how they work and how data will be properly proportioned to each other.What i learnt is this functions converts integer data numeric and alphanumeric string. Please can some one take some time to explain me what's happening in encoding. code is <html> <head> <script type='text/javascript' src='http://www.google.com/jsapi'></ script> <script type='text/javascript'> google.load('visualization', '1', {packages:['imagelinechart']}); google.setOnLoadCallback(drawChart); var simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; // This function scales the submitted values so that // maxVal becomes the highest value. function simpleEncode(valueArray,maxValue) { var chartData = ['s:']; for (var i = 0; i < valueArray.length; i++) { var currentValue = valueArray[i]; if (!isNaN(currentValue) && currentValue >= 0) { chartData.push(simpleEncoding.charAt(Math.round((simpleEncoding.length-1) * currentValue / maxValue))); } else { chartData.push('_'); } } return chartData.join(''); } // Same as simple encoding, but for extended encoding. var EXTENDED_MAP='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.'; var EXTENDED_MAP_LENGTH = EXTENDED_MAP.length; function extendedEncode(arrVals, maxVal) { var chartData = 'e:'; for(i = 0, len = arrVals.length; i <len; i++) { // In case the array vals were translated to strings. var numericVal = new Number(arrVals[i]); // Scale the value to maxVal. var scaledVal = Math.floor(EXTENDED_MAP_LENGTH * EXTENDED_MAP_LENGTH * numericVal / maxVal); if(scaledVal > (EXTENDED_MAP_LENGTH * EXTENDED_MAP_LENGTH) - 1) { chartData += ".."; } else if (scaledVal < 0) { chartData += '__'; } else { // Calculate first and second digits and add them to the output. var quotient = Math.floor(scaledVal / EXTENDED_MAP_LENGTH); var remainder = scaledVal - EXTENDED_MAP_LENGTH * quotient; chartData += EXTENDED_MAP.charAt(quotient) + EXTENDED_MAP.charAt(remainder); } } return chartData; } function drawChart() { var valueArray = new Array(0,1,4,4,6,11,14,17,23,28,33,36,43,59,65); var maxValue = 70; var data = simpleEncode(valueArray, maxValue); //data = 's:A,B,D,D,F,K,M,P,U,Y,d,f,l,z,5'; var options = new Object(); options.width = 500; options.height = 250; options.legend = 'none'; options.colors = ['#ff7f00', '#339999', '#cc9966']; options.lineWidth=3; options.pointSize = 5; options.legend = 'bottom' alert('data : '+data); var chart = new google.visualization.ImageLineChart(document.getElementById('chart_div')); //chart.draw(data, {width: 400, height: 240, min: 0}); chart.draw(data, options); } </script> </head> <body> <div id='chart_div'></div> </body> </html> -- You received this message because you are subscribed to the Google Groups "Google Chart 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-chart-api?hl=en.
