google.charts.load('current', {packages: ['corechart', 'line']}); google.charts.setOnLoadCallback(drawBackgroundColor); document.getElementById("series").addEventListener('input', function(e){ drawBackgroundColor(); }); document.getElementById("min").addEventListener('input', function(e){ drawBackgroundColor(); }); document.getElementById("max").addEventListener('input', function(e){ drawBackgroundColor(); }); function drawBackgroundColor() { var min = parseInt(document.getElementById("min").value); var max = parseInt(document.getElementById("max").value); data = new google.visualization.DataTable(); data.addColumn('number', 'm'); data.addColumn('number', 'Sum of a_n from 1 to m'); var user_expression = document.getElementById("series").value; var partial_sum = 0; for (var n = min; n <= max; ++n) { var nth_term = parseFloat(eval(user_expression)); if (!nth_term || nth_term == Infinity || nth_term == NaN) { nth_term = 0; } partial_sum += nth_term; data.addRow([n, partial_sum]); } options = { 'legend': {'position': 'top'}, hAxis: { title: 'x' }, vAxis: { title: 'value' }, 'width': "100%", 'height': 600, 'chartArea': {'width': '80%', 'height': '80%'}, backgroundColor: '#fff' }; var chart = new google.visualization.LineChart(document.getElementById('chart_div')); chart.draw(data, options); document.getElementById("output").innerHTML = " = " + partial_sum; }
Series Definition (ex "2*n + 1" or "n * n - 1") <input id="series" size="40" value="4 * pow(-1, n) / (2 * n + 1)"><br/> Min <input id="min" type="number" size="10" value="0"><br/> Max <input id="max" type="number" size="10" value="100"><br/> <div id="output"> </div> <input type="button" value="Plot"> <div id="chart_div"></div>